Jump to content

Kubik

Developer
  • Posts

    1983
  • Joined

  • Last visited

Reputation Activity

  1. Metagross31 liked a post in a topic by Kubik in Better filtering of Cards in the forge   
    "!(color=(neutral))" 

  2. Metagross31 liked a post in a topic by Kubik in Community Update - April 2025   
    If you check the last 3 posts, you will notice, that it is not capable of exporting the models fully with everything...
    So knowing the exact structure of the models would be enough to add new, but the emphasis is on exact for a reason, because a single bit incorrect might mean it will not work.
  3. Appollonir liked a post in a topic by Kubik in Small units with spears attacking XL units from the walls.   
    I doubt anyone can answer that before finishing and testing the implementation of it.
  4. Delendar liked a post in a topic by Kubik in One mixed orb Lost Souls/Stonekin/Bandit/Amii   
    Impossible right now, because we do not know how exactly the game chooses the color of first token, so without being able to change that logic the card would either be neutral (if the dual color token would not affect it), as it is right now, or the first primary color would be used in order: shadow, nature, frost, fire.
    Not possible for same reason as above, we do not control the selection logic, so we do not even know, if that logic know the card it is choosing for, because it might not have idea about the card, in which case there wouldn't even be a affinity to use.
  5. Kubik liked a post in a topic by kggx in If you like video games: This is important.   
    Hello!
    First of all, I apologize for the clickbait title, but I believe this is a very important topic in our community. As we all know, BattleForge was shut down by EA in late 2013. While we were fortunate that dedicated people worked countless hours to bring it back, many other games are not as lucky. This is why Ross Scott started the "Stop Killing Games" campaign.
    Here’s a quick summary taken from their website:
    If you are interested in taking action, feel free to learn more at https://www.stopkillinggames.com/. Currently, there is an EU initiative (https://eci.ec.europa.eu/045/public/#/screen/home) running until July 31, 2025. You must be a European citizen and meet the age requirements). It only takes 5 minutes to participate, and your voice can make a real impact!
    While you're at it, do share this with your friends and spread the word. Thank you!

    ~kggx / Kilian
  6. Laertes liked a post in a topic by Kubik in DP20 Overhaul   
    Not so simple, Eruption can do only 12 DMG total to 13 targets having: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1000 HP each (in order closest to furthest to the eruption center), so the last target will take no damage, because all the damage was wasted on first 12 targets, and I did not even start on targets being figures of a squad that have more than one figure, that gets even more complicated quite quickly.
    Sorry for shattering your idea of simplicity, but you picked my favorite anti-example of damage calculation.
  7. Kubik liked a post in a topic by Cocofang in DP20 Overhaul   
    Some of you may be aware that the DP20 values that you find on ranged entities are not always reliable. While it is fine that they are rounded, some cards have values that are impossible for these cards to achieve.
    It's been a topic for some time and I started compiling all values the other day in order to finally tackle this problem with the goal of updating tooltips, DP20 values and formulas used to calculate those. Let's begin by establishing what works.
    Current formulas
    Generic
    The typical ranged attack in Skylords has an amount of damage it inflicts on the main target as well as an upper limit of damage it simultaneously inflicts in an AoE. And of course a time between attacks.
    There are different ways to write this and still come to the same result but it's essentially this.
    You take the damage the attack deals to a single target and add the total damage the attack can deal in an AoE. You then average that value out by dividing it by 2. Finally you take the time between attacks and divide it by 20 to get the amount of times the entity can attack within 20 seconds. Divide the previous result through this and you have your DP20.
    Alternatively divide 20 by the time between attacks and multiply the previous result by this.
    This formula works for the vast majority of ranged entities in the game. Unfortunately It just sometimes uses inaccurate values.
    Ranged attacks without AoE and Flamethrowers
    Used for any ranged attack that either does not have an AoE component or is purely AoE, in that the fixed damage value is distributed among all affected targets.
    In that case "time between attacks" should technically be "Interval between damage application" but same difference.
    Squads
    Used for ranged Squads. There are no ranged squads with AoE but if there were they would use the generic formula multiplied by the number of entities in the squad.
    You calculate the damage value as usual and then multiply it by the number of entities in the Squad. This is also the reason why damage output from a squad drops if individual squad members were killed.
     
    Inconsistent values
    Usually the AoE value of a ranged attack is 150% of the single target damage. So for example, an attack that deals 100 damage to the main target would consequently have an upper damage cap of 150 for its AoE.
    Pretty straight forward but unfortunately far from consistent. Many entities in the game are off by a few digits, so they range from 148% - 152% on their AoE. Some of them because the single target damage value doesn't have a clean 150% value, which is fine. The recently released Bedrock for example has 633 single target damage on U3, the AoE being rounded from 949.5 to 950. But in many other instances the numbers are simply off. For example, Armored Tower has 110-170 damage but really it should be 110-165.
    Another inconsistency is the attack time. After extensive testing there seem to be three internal values that define this. Cast Steps (the wind-up part of the attack animation after which the projectile fires), Resolve Steps (the wind-down part of the attack animation) and Recast Steps (independent balancing lever and cooldown between attacks), all expressed in milliseconds. The actual attack time appears to be:
    But take Cannon Tower as an example. It has 200 Cast Steps, 1000 Resolve Steps and 2300 Recast Steps. The highest value being Cast Steps + Recast Steps, which is 2500ms. But the description and DP20 calculation assumes an attack speed of 2000ms, or 2s. Which is of course completely wrong.
    Additionally, there is a small random delay added to every attack. This is an important aesthetic choice as it makes ranged battles feel much more frantic and organic. But it obviously affects DP20 and should be included in the calculation. Interestingly, this RNG delay doesn't affect entities that have higher Resolve than Recast Steps. Most airborne entities are in that category.
    Abilities
    As a general rule of thumb the DP20 calculation ignores abilities like Multishot or effects applied by the attack, like poison or debuffs that increase damage taken. Windweavers are notoriously powerful because their on-paper DP20 is doubled when they get to attack two targets. Same goes for Lost Horror or Rioter's Retreat. Other units like Gemeye P or Spirit Hunters have a powerful DoT attached to their abilities that drastically elevates their damage output.
    This makes some entities look worse on paper than they are. Going back to Spirit Hunters, their measly 192 DP20 is actually 792 or 692 depending on the affinity. And that doesn't even consider the ability to attack multiple targets one after another in order to apply the poison to several enemies simultaneously. For Gemeye P the actual DP20 is somewhere around 5250 instead of 3250. But that assumes targets stay within the AoE.
    Considering the huge variance it would introduce to DP20 calculations in addition to some affinity-variants getting different base stats they are simply not factored in. Sucks for cards that would get more attractive numbers but it's the most straight forward approach.
     
    Outliers
    This is where the real fun is. Ignoring abilities is simple enough but what if crazy variance is built into the attack itself?
    For these entities there is no established norm as to how to even approach the calculation. The formula has to somewhat reflect the expected damage output when using the card. But how?
    Let's look at all the relevant Outliers that are currently in the game and consider their damage output in various scenarios.
    Single Target: Only one target available
    Small AoE: Multiple targets available, all in one direction. Meaning while AoE is applied the same amount of turrets are active as if there was only one target.
    Split Single Target: Multiple targets available, surrounded. Meaning all turrets are active (where applicable) but no AoE is applied.
    Average AoE: Multiple targets available, surrounded. Average AoE overlap (Single Target DMG + AoE DMG) / 2)
    Max: Full damage application
    Battleship

    4 directional turrets, each dealing 100-150 damage every 2 seconds. 2 turrets can attack a single target simultaneously. All turrets can attack if surrounded.
    Single Target: 2000
    Small AoE: 2500
    Split Single Target: 4000
    Average AoE: 5000
    Max: 6000
    Ravenship (Ravenheart summons)

    4 directional turrets, each dealing 70-120 damage every 2.5 seconds. 2 turrets can attack a single target simultaneously. All turrets can attack if surrounded.

    Single Target: 1120
    Small AoE: 1520
    Split Single Target: 2240
    Average AoE: 3040
    Max: 3840
    Corsair

    6 directional turrets, each dealing 25-38 damage every 2 seconds. 3 turrets can attack a single target simultaneously. Except when the Big Fat Cannon cycles through. At which point all 6 turrets can attack a single target simultaneously. All turrets can attack if surrounded.
    Single Target: 1125
    Small AoE: 1417
    The above values are already wonky because they assume 4.5 turrets firing, as the average between the 3 drive-by turrets and all 6 blasting while Big Fat Cannon cycles.
    Split Single Target: 1500
    Average AoE: 1890
    Max: 2280
    Big Fat Cannon (regular formula)
    Single Target: 580
    Average AoE: 725
    Max: 870
    Ravenheart

    6 directional turrets, each dealing 90-120 damage every 2 seconds. 3 turrets can attack a single target simultaneously. All turrets can attack if surrounded.
    Single Target: 2700
    Small AoE: 3150
    Split Single Target: 5400
    Average AoE: 6300
    Max: 7200
    Spitfire

    8 directional turrets, each dealing 75-110 damage every 2 seconds. 2 turrets can attack a single target simultaneously. All turrets can attack if surrounded. Only affects air targets.
    Regular ranged attack with an AoE component, dealing 466-700 damage every 5 seconds. Only affects ground targets.
    Single Target: 1500
    Small AoE: 1850
    Split Single Target: 6000
    Average AoE: 7400
    Max: 8800
    Ground Bomb (regular formula)
    Single Target: 1864
    Average AoE: 2332
    Max: 2800
    Lost Spirit Ship

    8 directional turrets, each dealing 80-100 damage every 2 seconds. 2 turrets can attack a single target simultaneously. All turrets can attack if surrounded.
    Single Target: 1600
    Small AoE: 1800
    Split Single Target: 6400
    Average AoE: 7200
    Max: 8000
    Howling Shrine

    4 directional turrets, each dealing 750-1125 damage every 11 seconds. 1 turret, rarely 2, can attack a single target simultaneously, depending on positioning. All turrets can attack if surrounded.
    Single Target: 1705
    Small AoE: 2131
    The above values assume 1.25 turrets firing.
    Split Single Target: 5455
    Average AoE: 6818
    Max: 8182
    Primeval Watcher

    Chain attack dealing 660 - 330 - 220 - 165 - 132 damage as it affects up to 5 targets. Can only hit each target once per attack.
    Single Target: 4400
    Second Target: 2200
    Third Target: 1467
    Fourth Target: 1100
    Fifth Target: 880
    Max: 10047
    Rocket Tower

    4 omni-directional shots, each dealing 75 damage every 4 seconds. Cannot attack a single target simultaneously. Can shoot all if 4 or more enemies are in range.
    Functionally similar to Multishot.
    Single Target: 375
    Max: 1500
    Stronghold

    8 directional turrets, each dealing 164-246 damage every 2 seconds. 3 turret, rarely 4, can attack a single target simultaneously, depending on positioning. All turrets can attack if surrounded.
    Single Target: 3553
    Small AoE: 4442
    The above values assume 3.25 turrets firing.
    Split Single Target: 8747
    Average AoE: 10933
    Max: 13120
    Thunder Wagon

    1 turret, dealing 350-525 damage every 4 seconds. 1 flamethrower dealing 150 damage every second.
    Thunder Bomb (regular formula)
    Single Target: 1750
    Average AoE: 2188
    Max: 2625
    Flamethrower (regular formula)
    AoE: 3000


    What now?
    A big problem with some of these outliers it the drastically different damage output depending on how many turrets can shoot at any given time, as they are directional. How do you account for that sort of variance in a static formula? Thunder Wagon is the most straight forward with its current design: Just add up the two AoE values. Rocket Tower could get a nasty low number like 375 DP20 or the rounded average between single target and max, which is 940.
    There can be different formulas depending on the setup but ideally several outliers should be covered by one formula.
    The questions to solve are:
    Once the RNG delay is considered in the DP20 calculation, many ranged entities will end up with a lower DP20 value. This wouldn't affect their functionality at all though. Would that still be something to be concerned about?
    Should the relation between single target and AoE be updated across the board to get as close to 150% as possible?
    Which formulas could express the DP20 value of the outlier cards most accurately? They are clearly more tailored towards AoE clearing but a needlessly inflated DP20 value would give a false impression about their actual strength.
    Do the outliers need expanded tooltips to clear up their mechanics or is the DP20 value enough?
    How should the DP20 value be rounded? Single digit? Even 10? Even 100? Different rounding depending on the tier of the card?
    Important to keep in mind that this is all just about the visual representation of numbers. The actual mechanical values are untouched (aside from potentially minor changes to achieve the 150% AoE value). But depending on which formulas you use you get a higher or lower number printed on the card. Which is certainly important for the "feel" and first impression.
    If you have any ideas or opinions regarding this topic, feel free to share. Especially potential formulas for the outlier cards that can be used going forward would be valuable.
  8. Kubik liked a post in a topic by Majora in Statement about antivirus programs flagging Skylords Reborn as unsafe   
    I remember back in the EA days, I had to complete certain campaign maps (slave master comes to mind) super fast with my ex gf because her laptop would consistently overheat at a certain point. To my knowledge, BattleForge has always been weirdly heavy on certain CPU's. 
  9. Nerokin liked a post in a topic by Kubik in Autocast for toggleable global effects, or the ability to group 2 into 1 hotkey.   
    oh you just misunderstood me I think.
    What you call "global persistant buff" are at least 2 "abilities". ("ability" the game's terminology for any non instant effect, to simplify the definition, and "spell" is an instant one time effect)
    1. ability is relatively simple make another ability apply to all players
    2. ability will do the actual thing, but to do actual thing, which might be complicated chain of abilities...
    so for a card with 4 upgrade levels (0, 1, 2, 3) such thing is at least 8 new abilities, that will need to be maintained. (Not saying it is impossible, just pointing out the ammount of work)
    And as I said before there is no way for ability to behave differently based on map, and I do not think, that we should even try to add such thing, because it would only lead to a confusion, why card does not work on map X like on map Y.
  10. Nerokin liked a post in a topic by Kubik in Modifying Gold so that it can be converted from Gold to BFP - say 100 -> 1 or 1000 -> 1   
    and introduce bilions of out of nowhere in an instant? No thanks. As was stated in previous discusions about this topic even 10000 to 1 would not be good enough, so people you want to target it on would not be able to afford it, and other people would be swimming in instantly.
  11. Hrdina_Imperia liked a post in a topic by Kubik in Statement about antivirus programs flagging Skylords Reborn as unsafe   
    well no, it is not only the login credential, but everything, what cards you have, what maps you played, what actions you trying to do during match, .... everything, login credential are just the most obvious example. There is no EA's server to respond to these packets either, and there never was EA's server that would answer to things we added, like quests, achievements, cosmetics, booster history, ...
    So there is no other way to do this. But we have been doing it like this since the begining, so no idea, why AVs started to trigger so much more now.
  12. Potato_Hoarder liked a post in a topic by Kubik in Statement about antivirus programs flagging Skylords Reborn as unsafe   
    well no, it is not only the login credential, but everything, what cards you have, what maps you played, what actions you trying to do during match, .... everything, login credential are just the most obvious example. There is no EA's server to respond to these packets either, and there never was EA's server that would answer to things we added, like quests, achievements, cosmetics, booster history, ...
    So there is no other way to do this. But we have been doing it like this since the begining, so no idea, why AVs started to trigger so much more now.
  13. Majora liked a post in a topic by Kubik in Different Icons for ranged Cards based on what they can attack   
    I think we understood each other on most parts, I think that logic would be easy to do for more than half of the cards, but even with some thinking about it and handling edge cases it would not be enough to do all automatically, and there would be at least 100s left to do manually, but more likely over 1000, either way, it would be quite some work.
  14. Metagross31 liked a post in a topic by Kubik in Modifying Gold so that it can be converted from Gold to BFP - say 100 -> 1 or 1000 -> 1   
    and introduce bilions of out of nowhere in an instant? No thanks. As was stated in previous discusions about this topic even 10000 to 1 would not be good enough, so people you want to target it on would not be able to afford it, and other people would be swimming in instantly.
  15. Potato_Hoarder liked a post in a topic by Kubik in Autocast for toggleable global effects, or the ability to group 2 into 1 hotkey.   
    oh you just misunderstood me I think.
    What you call "global persistant buff" are at least 2 "abilities". ("ability" the game's terminology for any non instant effect, to simplify the definition, and "spell" is an instant one time effect)
    1. ability is relatively simple make another ability apply to all players
    2. ability will do the actual thing, but to do actual thing, which might be complicated chain of abilities...
    so for a card with 4 upgrade levels (0, 1, 2, 3) such thing is at least 8 new abilities, that will need to be maintained. (Not saying it is impossible, just pointing out the ammount of work)
    And as I said before there is no way for ability to behave differently based on map, and I do not think, that we should even try to add such thing, because it would only lead to a confusion, why card does not work on map X like on map Y.
  16. Alishmass liked a post in a topic by Kubik in logging in from Iran   
    you can try pinging the server `162.55.91.56`
    If your internet service provider is blocking something by IP you can try asking them to stop, or choose different provider, or using an VPN to avoid them knowing to what you are connecting. Proton VPN is free https://protonvpn.com/free-vpn
  17. bergerb liked a post in a topic by Kubik in Add Fullscreen/Window Mode   
    @Omega1001 but EA did not write the game in C#, and they did not give us source code for the game, do you also have some example on how to add it to game without changing a source code?
  18. Metagross31 liked a post in a topic by Kubik in Community Update - March 2024   
    As you can see above people are excited for it.
  19. Metagross31 liked a post in a topic by Kubik in AI generated art as a solution to quicker generation of new content?   
    AI generated images have a lot of issues, for example do you have legal rights to distribute them?
    How 3rd parties may came and claim rights for the image, because the AI was trained from their work?
    Can EA use it as reason to shut the project down?
    While textures and images will not take much time to convert to format BF would understand, I am not sure I heard about AI that could generate models in the format BF uses.
    Also have you considered memory usage, BF is 32 bit process, so it is impossible to address more than 4 GB of memory, so having too many options, that look almost identical would only waste memory.
  20. Metagross31 liked a post in a topic by Kubik in BUG where if I select only frost when you scroll down you see all kinds of other factions   
    Hello @XanderLord, can you be more specific, how did you "select only frost"?
    I can guess you "only" unselected the other other orbs on the left side, which shows frost and neutral cards, which I think would not be correct to say "all kinds of other factions", so not sure that is the case. Or maybe you mean something else by "factions"?
    Can you include a screenshot please?
  21. Majora liked a post in a topic by Kubik in BUG where if I select only frost when you scroll down you see all kinds of other factions   
    Hello @XanderLord, can you be more specific, how did you "select only frost"?
    I can guess you "only" unselected the other other orbs on the left side, which shows frost and neutral cards, which I think would not be correct to say "all kinds of other factions", so not sure that is the case. Or maybe you mean something else by "factions"?
    Can you include a screenshot please?
  22. Askeroth94 liked a post in a topic by Kubik in Units not attacking   
    server crashed few minutes before you write that post. Commanding units is command that BF do not care about, to inform you when it lose connection to the server. Leaving match unfortunately is also command that BF just wait for confirmation from server without any timeout.
  23. Thingol liked a post in a topic by Kubik in Skylords Reborn PvP AI programming contest - Phase 1   
    Thanks for the reply, that is actually a good point, I got the invite link on discord, where it shows the server, so there no confusion that it is a different server.
    @Metagross31 you should also add the information, that it is different server, because people that already are on SR discord might not notice, and not click on the link.
  24. Thingol liked a post in a topic by Kubik in Skylords Reborn PvP AI programming contest - Phase 1   
    🤔 45 people filled the questionnaire, but only 13 14 participants on discord so far.
    What is working:
    Rust, C#, python, have full API with 2 examples for both Rust, and C#, and only 1 for python. These 3 languages are tested with every version. (at least a bit) Types are mostly documented. Typescript (javascript) have the required types generated for each version, but no testing is done. Participants are already trying to make their bots. What is still missing:
    More documentation. More examples. Improvements are prioritized based on requests from participants. Can I ask what are the reasons to not join yet?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Terms of Use