What do you think Ship Scores need to take into account?

    Joined
    Jul 15, 2014
    Messages
    506
    Reaction score
    110
    With the coming fleet update ship scores are going to become more relevant as they will be the basis of who wins AI vs AI battles in unloaded sectors, but I think we can all agree that in their current form they're a little... underwhelming. So I thought I'd make a thread to get some discussion going as to what the community thinks would be the best way to numerically represent how good a ship (or fleet) is.

    I'd say the big thing that needs to be accounted for before any changes to the categories can be made is whether or not the ship's power supply can actually account for the weapons, shields and thrust. This would require a way to see how much power is being supplied by docked reactors, which I will get to later.

    Weapons and defence I feel need to be split into further categories, to account for output at various ranges, whether you're shield or armour tanking, damage against blocks splitted from damage against shields, how effective passive systems like Ion are etc. We need the system to be accounting for as many variables as possible. Likewise I feel support should be split into exactly what it's supporting with.

    Docked entities need to be handled a little differently too, one of the things I think needs to happen first of all is for basic parametres for what the docked entity is there for. Turrets is an easy one, but for example docked ships and docked reactors need to be accounted for differently. Ships I feel like we could use whatever the carrier system will be when implemented, so if it's hooked up to a rail that's connected to one of the massless launch rails the rating system will class it as a separate entity, and if not the object will be classed as a support module. Support modules could class as a bit of extra defence, or if they have power supply beams on board they add the score of that power beam to the ships power rating (assuming the reactor can cover the energy cost)

    One thing that should be taken into account as well is formation set up, ie whether the ships better at long range combat are at the back of a formation etc. But I haven't really put too much thought into it really. What do you think the system needs to account for?
     
    Joined
    Nov 1, 2014
    Messages
    317
    Reaction score
    98
    • Legacy Citizen
    • Purchased!
    Here are what I think are important:
    • Damage Per Second (DPS): This should also factor in power reactors. If you don't have enough power for sustained fire, DPS is reduced as a result.
    • Shield Recharge Per Second: Simply put, DPS values less than this will never hurt the ship on their own.
    • Hull/Armor/Structure: or whatever you call it. Hit points basically.
    • Speed
    I'm sure there's more, but to me these seem to be the four biggest factors.
     

    Lecic

    Convicted Lancake Abuser
    Joined
    Apr 14, 2013
    Messages
    5,105
    Reaction score
    1,222
    • Thinking Positive Gold
    • Purchased!
    • Legacy Citizen 10
    I think ship scores are completely insufficient for unloaded fleet battles. We need one of the "minimal load" battles that were suggested that allow things like armor placement and thickness, system placement, turret angles, interior placement, etc, to function, without causing a ton of lag.
     
    Joined
    Nov 1, 2014
    Messages
    317
    Reaction score
    98
    • Legacy Citizen
    • Purchased!
    I think ship scores are completely insufficient for unloaded fleet battles. We need one of the "minimal load" battles that were suggested that allow things like armor placement and thickness, system placement, turret angles, interior placement, etc, to function, without causing a ton of lag.
    Agreed. Trying to simplify it all down to a few stats and some probabilities WILL cause annoying oddities. I think it was Star Wars: Empire at War where I'd let it auto-simulate battles and it would sometimes have a lone Corellian Corvette wipe out an entire fleet of Star Destroyers all on its own because of a series of lucky PRNG rolls...I don't think we want that happening in StarMade.

    So what the game needs is a fast way of approximating a ship for combat. It won't be as accurate as combat between loaded, piloted entities, but should be "good enough" to give reasonable results without bringing the server's CPU to its knees.
     
    Joined
    Jul 15, 2014
    Messages
    506
    Reaction score
    110
    I think ship scores are completely insufficient for unloaded fleet battles. We need one of the "minimal load" battles that were suggested that allow things like armor placement and thickness, system placement, turret angles, interior placement, etc, to function, without causing a ton of lag.
    It would have to be pretty "minimal" for it to be sufficient for reducing lag though. If for example a conflict breaks out between two large factions that might be a fairly large number of battles happening simultaneously, and there's nothing to say that won't be the other conflict happening. It's also been said that the AI factions will be doing their own thing as well, so that's another potential load of unloaded battles in the background. Even if the game treats them differently, what happens if several of them attack several different player faction territories, or several different player factions send unloaded fleets to attack AI territories?

    I guess the game could incorporate a hybrid, ie check some numbers, and if one side overwhelms the other by a certain amount go by the stat comparison, if not play out the minimum load battle.

    Even if the game doesn't go by stats for unloaded battles it would still be handy to have them for other stuff, such as determining difficulty for AI waves, and how quickly salvage fleets gather materials etc.
     

    Lecic

    Convicted Lancake Abuser
    Joined
    Apr 14, 2013
    Messages
    5,105
    Reaction score
    1,222
    • Thinking Positive Gold
    • Purchased!
    • Legacy Citizen 10
    It's also been said that the AI factions will be doing their own thing as well, so that's another potential load of unloaded battles in the background.
    AI factions will have set ships, yes? They're also not as important. So they can just have score-based battles.

    what happens if several of them attack several different player faction territories, or several different player factions send unloaded fleets to attack AI territories?
    AI vs Player battles would be treated like player battles.

    I guess the game could incorporate a hybrid, ie check some numbers, and if one side overwhelms the other by a certain amount go by the stat comparison, if not play out the minimum load battle.
    Definitely. The game shouldn't waste its time doing a heavier load for something like an unarmed freighter or a lone fighter running into a major station.
     

    Lukwan

    Human
    Joined
    Oct 30, 2015
    Messages
    691
    Reaction score
    254
    I used to play a RPG called Top Secret that had an interesting system. Many encounters were decided by a roll-off between an attacker's stat and the defenders. To streamline things during a combat various tertiary stats are calculated ahead of time and used as the modifiers for the roll-off.

    Eg. Attacker rolls off using their modifier then the defender tries to roll 'under' using the defensive modifier. ( basic idea...its been awhile)

    Each player would have several tertiary modifiers for:
    -Basic blocking & defense.
    -Attack (melee) & attack (range)
    -Dodging/Saving throw.
    -I.Q. rolls, detect lies etc.

    Now each modifier has been pre-calculated using two or three of your basic stats combined then averaged. Your tertiary Defensive stat would be a combination of your armour-rating & your dexterity. Attack might use sword-skill plus strength plus dexterity.

    With Starmade the trick is to compare two complex systems. Your defensive rating would need to include Shields plus Armour plus Defensive-systems. A bonus would need to be factored in for transfer-beams between entities. Speed would be a factor in all offence and defense or any DPS calculation. It is not enough to have high DPS if you are not agile enough to line-up your target.
    Multiple roll-offs would reduce fluke-out comes.

    Clever tactical designs will not be able to be factored in. I have a design that is utterly dependent on my tactical flying using logic systems in real time. An AI unit would never be able to use this ship as effectively as myself. (Not much we can do about this).
     
    Joined
    Aug 23, 2013
    Messages
    380
    Reaction score
    67
    Hi,

    There's a huge compromise between modelling a 100% realistic simulation (extremely expensive/complicated), and just randomly selecting ships that die until all remaining ships are on the same side (extremely fast). The goal be to find something between these extremes - a low cost compromise that's plausible.

    Note that if the system is too complicated, we'll end up with AI fleet battles nerfed all the way back to "only happens very rarely" to reduce server load, and that would be boring (much less boring than many "only barely plausible" battles occurring simultaneously all over the galaxy).

    To start I'd forget about damaged ships - either a ship is unscathed or is killed (disappears). This avoids the need to modify blueprints.

    I'd have an offence rating and a defence rating for each ship; and record them as part of the blueprint to avoid calculating it for every ship. The offence rating would take into account DPS, and then apply modifiers based on weapon range, projectile speed, etc. The defence rating would take into account shield capacity, shield regen and hull strength, and then apply modifiers based on manoeuvring/thrust. These 2 ratings will be the only things taken into account.

    When a battle starts I'd find the weakest ship (lowest "offence + defence") on both sides, and calculate how long its defence can last against all of the opposing ship's offence; to give me 2 time periods. Whichever time period is first indicates the first ship that dies first. From that ship's "time until death" I'd calculate backwards to determine how damaged the other side's weakest ship would be at the time the first ship dies.

    From here I'd select a new weakest ship (for whichever side lost a ship last) and do essentially the same "time until each weakest ships dies" calculations as before. I'd repeat this until all remaining ships are on the same side.

    This would be extremely fast (e.g. able to handle thousands of ships fighting each other), and would give "plausible enough" results, but would only be the beginning.

    The next step would be to add "fleeing". Each time a ship dies, the side that lost the ship does "if (the sum of "offence+defence" for all remaining ships on our side < (the sum of "offence+defence" for all remaining ships on the opposing side) * 0.75)", to determine if they want to flee. If they decide to flee, then the game uses a random number (and maybe a calculation involving thrust ratings) to determine if they succeed or fail. If they succeed the fleet is "teleported" to a nearby sector.

    Then, I'd add a little more "random" for the battles; by multiplying the calculated "time until death" by a random number from 1.0 to 3.0.

    Finally, I'd be tempted to keep track of the number of ships killed, and add an appropriate quantity of randomly generated loot to the winning side's cargo holds (if they have space).

    Of course if a player gets too close during any of this, you'd have to switch over to "actually simulate" mode; which would involve placing/spawning ships in random positions (and doing the same for "loot clouds" for each killed ship). Hopefully this would happen when the player is far enough away, so that ships can get "realistically damaged" before the player becomes close enough to get a proper look at them.
     
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    I personally wouldn't let these scores directly indicate anything. IMO they should be a guideline for the player, but they shouldn't actually end up deciding battles, as they can't encompass enough aspects to have the gap between live AI battles and simulated AI battles be inconsequential enough. What I am referring to by 'inconsequential enough' is the situation of 2 equal ships[same 'class', mass, and system distribution, but one is optimized for live AI battle, while the other is optimized for simulated AI battle] facing against each other being determined by whether or no the battle is live or not, assuming an RNG will be involved in simulated battle to a degree.
    In a 'perfect' simulation, the odds for either winning in live are 50%:50%, and in simulated the same.
    In a 'disjointed' simulation, the odds for either winning in live are 100%:0%, and in simulated 0%:100%.
    Neither 'class' of simulation is realistic to actually end up being the case for starmade.
    So long as performance doesn't matter, I think everyone would agree, that a 'perfect' simulation is the best, and a by definition guaranteed 'perfect' simulation is just having a live battle. However, performance does matter, so we end up with 2 approaches to the optimal simulation:
    1. reduce the amount of calculations necessary for the 'perfect' simulation as much as possible, by replacing specific intense calculations with less intense, but still (very) accurate approximations
    2. design the least calculation heavy simulation possible(likely also closest to the 'disjointed simulation), and approximate it to a live AI battle as well as possible
    I personally favor the former method, as it is very likely to result in a simulation closer to a 'perfect' simulation, than a 'disjointed' simulation. Additionally, the latter method poses the risk of being very close to a 'disjointed' simulation on a specific scale, or even worse, to only be reasonably close to a 'perfect' simulation in a few special cases.

    As such, I would like to quote an older post of mine here to elaborate the solution, which I think is very close to the optimal simulation:
    When 2 fleets engage, in the very first moments they have a certain distance from another, let's initialize this variable with the distance of 2 opposite sector borders. The distances of individual ships from one-another depend on formation. If formation won't be implemented, assume it to be the same for all ships in the beginning.
    In the beginning of a battle one can also assume, that energy capacitors and shield-capacitors are full.
    Both fleets also have a maximum movement velocity, which can be determined from the maximum movement velocity of each ship. Directional thrust should be ignored here, for simplicity. This velocity will be important later.
    For weapons with a cooldown of less than a second, average out damage and energy consumption into 2 second batches[include how many shots would be fired per batch as a constant floating point].
    Any other weapon with a cooldown of less than 2 seconds, put 2 shots together in a batch like above.

    Now, follow these rules:
    • Calculate when each ship will come into the reach of which weapon system of an enemy ship, and queue fire-events up based on how long it would take to come into range, and wait until the first event in the queue takes place. This uses the movement velocities of the fleets(and if applicable formation)
    • On any timed event: Calculate the amount of power and shields each ship would have regenerated in the time between this event and the last event. Also, allow each ship to change its orientation and course freely. Note how long it would take for every ship to exit their enemy's range on their current course(every course is assumed to be a straight line). If no event occurs between this event and that time, the battle will end after this event.
    • On a fire-event: The ship this event applies to fires its weapon(s) at an enemy ship in range of the AI's choice, provided the ship has enough power. If the ship lacks the power to fire the weapon, queue up another fire-event for this weapon/batch when the ship would have regenerated enough power, assuming constant regeneration.

      Calculate the likelyhood of a hit depending on AI-accuracy, the dimensions, block-count and distance of the enemy ship. If the weapon in question is fired in batches use the floating point to spread the RNG out over the shots in the batch, and calculate the total damage done by all shots in this batch combined, and queue up a hit event on the targeted enemy ship. The hit event will occur in the time it takes the projectiles to travel the distance.[0 in case of hitscan] Do not queue up a hit-event if the shot(/all shots in the batch) miss.

      Also queue up another fire-event when the cooldown of this weapon(or this batch) would have passed.
    • On a hit-event: Deal the damage noted in the event to the ship this event applies to. If the shields do not completely soak up the damage, estimate which block would have been hit by randomly selecting a side of the bounding-box[depending on the position of this ship relative to the firing ship], and randomly selecting a block facing this side. If the chosen column of blocks is fully empty, repeat with all other columns. If all columns are empty, remove this ship from the calculations , it has to be dead. Do not process the block damage that would be done by the hit, just note down the blocks, damage, type and direction. The damage will be calculated after the battle.
      Apply any new penalties due to the structure-HP to the ship, or remove it from the calculations, if the ship would overheat.

      Edit: in case of missiles and point-defense. Calculate the chance of the missiles being hit by point defense depending on their travel distance, velocity, PD-cooldown and AI-accuracy.​
    • When all ships in one fleet are overheating, or after both fleets have left each other's range again, end the battle, and begin calculating the damage done to the individual blocks using the notes from the hit-events. this process will be sped up if the sector is loaded. This fleet will not be able to engage with other AI-fleets until the damage is calculated, however, it also won't move while the damage is being calculated, but it will however immedeatly move to whichever sector it would be in, had it moved with its new velocity, after damage calculations[if any thrusters were destroyed].
     
    • Like
    Reactions: NeonSturm

    AtraUnam

    Maiden of crashes
    Joined
    Oct 15, 2013
    Messages
    1,120
    Reaction score
    866
    • Railman Gold
    • Competition Winner - Small Fleets
    • Wired for Logic Gold
    Personally I think scores alone is a near completely unusable system. For example with scores a ship could have a huge block of armor on its back at the end of a 1000m long stick; in a player battle this ship would be worse than useless as an armor tank but in a score based battle this ship would be just as effective as any other armor tank.
     
    Joined
    Aug 23, 2013
    Messages
    380
    Reaction score
    67
    Hi,

    Personally I think scores alone is a near completely unusable system. For example with scores a ship could have a huge block of armor on its back at the end of a 1000m long stick; in a player battle this ship would be worse than useless as an armor tank but in a score based battle this ship would be just as effective as any other armor tank.
    If it's an NPC fleet, then there's no sane reason for "purposely designed for simulated battle" ships. If it's a player made fleet, then that player will lose their fleet as soon as any other player is close.

    Now...

    How many people would prefer a system that's so complex/realistic that every single server has to disable it completely just to avoid massive amount of lag and ensure real people are able to play the game?

    I know I don't. I want a system that's cheap enough to have thousands of NPC ships battling throughout the galaxy at any one time without causing lag. Using scores is the only sane way of achieving that.
     

    nightrune

    Wizard/Developer/Project Manager
    Joined
    May 11, 2015
    Messages
    1,324
    Reaction score
    577
    • Schine
    • Top Forum Contributor
    • Thinking Positive
    I personally wouldn't let these scores directly indicate anything. IMO they should be a guideline for the player, but they shouldn't actually end up deciding battles, as they can't encompass enough aspects to have the gap between live AI battles and simulated AI battles be inconsequential enough.
    That solution sounds good but I'd like to propose some refinements. Specifically how damage is caculated, and shown. You should be able to save most or all hits to the ship. Then replay them, but I think that might lag everything as a player gets close. So I would propose you remember the type of weapon that hit you, its incident angle, number of times it hit you, Systems damage, Armor Damage. This gets shuttled off to the database. Then the first time its loaded for a player, you splay all those damages over the ship and reduce the count.

    You may want to periodically do this for a ship that's not been loaded in a long time, but you can easily remove those events if the ship parks at a shipyard during unload. Then it never gets rendered.

    If a fleet really gets in a crazy fight then when you see it next it'll be beat to hell, but if it isn't, It should only have potmarks. This should still work for other entities as well, such as planets, stations, and asteroids.
     
    Joined
    Jul 15, 2014
    Messages
    506
    Reaction score
    110
    I personally wouldn't let these scores directly indicate anything. IMO they should be a guideline for the player, but they shouldn't actually end up deciding battles, as they can't encompass enough aspects to have the gap between live AI battles and simulated AI battles be inconsequential enough. What I am referring to by 'inconsequential enough' is the situation of 2 equal ships[same 'class', mass, and system distribution, but one is optimized for live AI battle, while the other is optimized for simulated AI battle] facing against each other being determined by whether or no the battle is live or not, assuming an RNG will be involved in simulated battle to a degree.
    In a 'perfect' simulation, the odds for either winning in live are 50%:50%, and in simulated the same.
    In a 'disjointed' simulation, the odds for either winning in live are 100%:0%, and in simulated 0%:100%.
    Neither 'class' of simulation is realistic to actually end up being the case for starmade.
    So long as performance doesn't matter, I think everyone would agree, that a 'perfect' simulation is the best, and a by definition guaranteed 'perfect' simulation is just having a live battle. However, performance does matter, so we end up with 2 approaches to the optimal simulation:
    1. reduce the amount of calculations necessary for the 'perfect' simulation as much as possible, by replacing specific intense calculations with less intense, but still (very) accurate approximations
    2. design the least calculation heavy simulation possible(likely also closest to the 'disjointed simulation), and approximate it to a live AI battle as well as possible
    I personally favor the former method, as it is very likely to result in a simulation closer to a 'perfect' simulation, than a 'disjointed' simulation. Additionally, the latter method poses the risk of being very close to a 'disjointed' simulation on a specific scale, or even worse, to only be reasonably close to a 'perfect' simulation in a few special cases.

    As such, I would like to quote an older post of mine here to elaborate the solution, which I think is very close to the optimal simulation:
    While I don't want to say that's a bad system, what would happen if it was running dozens of battles, potentially involving hundreds of ships each? Once people start expanding out to multiple galaxies that number may become much higher. Having to load of the ships model for checking block damage is already going to be very performance intensive.

    Personally I think scores alone is a near completely unusable system. For example with scores a ship could have a huge block of armor on its back at the end of a 1000m long stick; in a player battle this ship would be worse than useless as an armor tank but in a score based battle this ship would be just as effective as any other armor tank.
    Anyone doing that would be making a stupid decision however, since there's no real guarantee you won't be using it against an actual manned fleet. Just because you intend to use it unloaded doesn't mean everyone else is going to oblige you.

    As said previously, a fair amount of battles (possibly even the majority) aren't going to close enough for it to be worth a proper simulation. For example 3 well designed 100,000 block ships coming across a hyperbolically large amount of bricks consisting of a hyperbolically large number of blocks is only really going to go one way if they don't escape. For a more likely to happen example a faction invasion fleet crossing paths with a Scavenger raiding fleet on route to their target is very unlikely to be worth a proper simulation either.

    Even with player factions against other player factions there's a pretty good chance one side just doesn't stand a chance, and would be a waste of server resources to put in a proper simulation. Having a decent rating system could also give the AI a better idea of how to behave as well, or procedurally arrange their fleets. There's also non-combat tasks such as mining and....errrr.... probably just mining actually... that would definitely better be solved be crunching a few numbers. So even if it isn't used across the board for every encounter a good rating system would be handy to have around.
     
    Last edited:
    Joined
    Nov 1, 2014
    Messages
    317
    Reaction score
    98
    • Legacy Citizen
    • Purchased!
    Hit/miss and damage location could be greatly simplified for performance. Right now it fires a weapon and then has to do a bunch of math to determine if and where it hits. For simulation, I'd suggest switching to a dice roll to determine a hit or miss, using factors such as the relative speeds of the starships, the distance, size/orientation of the target, and which weapon was used. If it's a miss, then the math so far was relatively simple and can be aborted. If it's a hit, then just draw a random line that connects the two ships and use the intersection of that line with the target to determine the damaged area. Or, better yet, just pick a random spot on the surface of the ship, facing the attacker, and don't even bother with a raycast between the ships. This should be simpler and faster than what runs for loaded ships, which I assume is a raycast (relatively math-heavy and CPU expensive) that happens for every shot whether it hits or misses.

    This also abstracts out flight time for projectile weapons, so without actual projectiles a bunch of physics/movement updates don't need to happen either.
     
    Last edited:
    • Like
    Reactions: Lecic and barlth

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,152
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    I think it was Star Wars: Empire at War where I'd let it auto-simulate battles and it would sometimes have a lone Corellian Corvette wipe out an entire fleet of Star Destroyers all on its own because of a series of lucky PRNG rolls...I don't think we want that happening in StarMade.
    That's the fault of the developers using a silly RNG integration without sanity checks/caps and has nothing to do with the nature of numerical combat itself. RNG results like that don't have to happen.
     
    Joined
    Jan 22, 2015
    Messages
    73
    Reaction score
    32
    • Legacy Citizen
    • Community Content - Bronze 1
    I'm thinking a levelized system of calculations would help in reducing server lag. Let's say the first set of equations sizes up the opposing fleets. If one fleet is significantly more powerful than the other, obviously victory would go to that fleet and more precise calculations would be unnecessary. If the fleets are more evenly matched, then more intensive calculations would be necessary to determine a victor. Of course, even in the case of the first scenario, it would be necessary to perform some calculation to determine how much damage the victorious fleet received.
     
    Joined
    Jul 15, 2014
    Messages
    506
    Reaction score
    110
    I'm thinking a levelized system of calculations would help in reducing server lag. Let's say the first set of equations sizes up the opposing fleets. If one fleet is significantly more powerful than the other, obviously victory would go to that fleet and more precise calculations would be unnecessary. If the fleets are more evenly matched, then more intensive calculations would be necessary to determine a victor. Of course, even in the case of the first scenario, it would be necessary to perform some calculation to determine how much damage the victorious fleet received.
    Something that might be useful is to see whether or not the weaker side will even hang around to attempt to fight the stronger side or just flee. For example it might be difficult to get a weaker fleet to assault a heavily defended station. There could be a calculation involving both ship scores and NPC morale.
     
    Joined
    Jul 21, 2013
    Messages
    2,932
    Reaction score
    460
    • Hardware Store
    That solution sounds good but I'd like to propose some refinements. Specifically how damage is caculated, and shown. You should be able to save most or all hits to the ship. Then replay them, but I think that might lag everything as a player gets close. So I would propose you remember the type of weapon that hit you, its incident angle, number of times it hit you, Systems damage, Armor Damage. This gets shuttled off to the database. Then the first time its loaded for a player, you splay all those damages over the ship and reduce the count.
    True, the most glaring fault I could see here would be a fleet facing 2 battles in a row, and still being able to use all systems without diminished return due to block-damage. But the trade off in RAM and disk usage is great enough to warrant it. I'll add it the next time I bring this solution up.
    While I don't want to say that's a bad system, what would happen if it was running dozens of battles, potentially involving hundreds of ships each? Once people start expanding out to multiple galaxies that number may become much higher. Having to load of the ships model for checking block damage is already going to be very performance intensive.
    See above and below.
    I don't think so, as the highest possible event frequency per battle is 2 seconds[any weapon below 1s cooldown is batched to 2 seconds, and every weapon between 1s and 2s cooldown is batched to 2s to 4s cooldown with 2 shots.
    Even if we are pessimistic and say every fire-hit-event[excluding waiting time] takes 0.1 seconds to process, we could still run 20 battles simultaniously without lag on a single core.
     

    nightrune

    Wizard/Developer/Project Manager
    Joined
    May 11, 2015
    Messages
    1,324
    Reaction score
    577
    • Schine
    • Top Forum Contributor
    • Thinking Positive
    True, the most glaring fault I could see here would be a fleet facing 2 battles in a row, and still being able to use all systems without diminished return due to block-damage. But the trade off in RAM and disk usage is great enough to warrant it. I'll add it the next time I bring this solution up.
    Nah you just save the same hits. I think systems, and armor hp really buy you something here. I think with a bit of finese you could simulate hits to systems vs armor based on those numbers and how much damage each hit did. Then the only numbers you really care about are systems hp, armor hp, power, and shields. That's super easy to simulate.

    Specifically use probabilites and RNG to base how much damage you are doing to systems vs armor based on shields, current armor hp, and systems hp. If you then record the hits and aggregate as much as you can. You probably would get a really great system for simulations based on calculated time steps, and then when it all loads in you still get awesome damage.

    Specifically a Titan with a big alpha would toast/roast any small ships it managed to hit, but enough smaller vehicles could take down a titan as long as you can beat its shield regen, and hit more often. Your time step system also works for docked reactors, shield generators. The great thing about a time step system is that you can run it for as long as you want, and it doesn't have to become realtime until a player is there. The big battles could play out for a day, and I don't think it would matter.
     

    NeonSturm

    StormMaker
    Joined
    Dec 31, 2013
    Messages
    5,110
    Reaction score
    617
    • Wired for Logic
    • Thinking Positive
    • Legacy Citizen 5
    1. DPS (min, max, avg) and utilisation (through turning rate, firing angles)
    2. Weapon range (min, max, avg) and utilisation (through speed, warp, interdiction, etc)
    3. Shield/s, Armour, Hull
    4. Evasion as (acceleration / size)
    5. Strategy (energy usage for DPS or evasion?)
    6. Alpha Strike damage
    Less combat-related:
    1. interdiction / jump drives
    2. scanners / cloak-value/time

    I think if you have a very agile ship, you should suffer the minimum dps of an enemy. But if your ship is bulky, you should suffer the maximum dps.
    • Equally placed turrets would have 1/2 avg DPS as they cover only 180°
    • But if you put them in a way that all can fire forward, you still have 100% forward/max DPS. This can still reduce your min DPS to 1/2.

    Same with speed. More speed, a higher percentage of damage you suffer (use a min→avg→max graph and a stationary→equal→enemy-stationary graph)
    [DOUBLEPOST=1456401329,1456401228][/DOUBLEPOST]
    I'm thinking a levelized system of calculations would help in reducing server lag. Let's say the first set of equations sizes up the opposing fleets. If one fleet is significantly more powerful than the other, obviously victory would go to that fleet and more precise calculations would be unnecessary. If the fleets are more evenly matched, then more intensive calculations would be necessary to determine a victor. Of course, even in the case of the first scenario, it would be necessary to perform some calculation to determine how much damage the victorious fleet received.
    Agree completely