CommanderAdama CommanderAdama

Please fix autocast for when I come back

Please fix autocast for when I come back

Thank You

Long story short, Iconis Guardians act like idiots. They fly around alone and cast their shields where no one is. Can it really be that hard to impliment a follow command in this game?

Those domina subjugators, autocast their ability at the same ship. I had 20 subjugators cast an inhibiting ability on 1 ship. 1 would do the trick. This completely wrecked my strategy of trying to bring enough for every heavy cruiser in the enemy's fleet, and use illuminators to damage them while stunned.

Please, Please, Please, Please, Please, fix this.

PS, this goes for caps too, and all other races. It can't be that hard to script some basic casting rules can it?

I would go as far as to ask for an interface that allowed the player to specify what ships to go after, for example, subjugators target heavy cruisers with their abilities, the revelation bc could take over only the most expensive units, cleansing brilliance would target capital ships only, illuminators only use their copy ability when in a real battle, etc.

57,384 views 30 replies
Reply #26 Top

When playing Advent, I hot key one Iconus and disable auto cast on it.  That way I have a back up Iconus.  The same goes for other abilities.  It's good for at least one ship to have autocast disabled.

Reply #27 Top

Quoting unkn0wnx, reply 1
When playing Advent, I hot key one Iconus and disable auto cast on it.  That way I have a back up Iconus.  The same goes for other abilities.  It's good for at least one ship to have autocast disabled.
End of unkn0wnx's quote

I keep one off too, but that's still a far cry from how efficiently the ships could be used.

Reply #28 Top

It's not insane to ask for more I in AI.  It's the work of about 1 man hour including developer testing  (plus including wee wee breaks and a chat at the water cooler) to get the Nano Disasembler to not cast on a ship that is less than 300hp total or something similar (i'd like to see it more parametised than that personally).  Or howabout a if(currentTarget != planet) autoCast.DeploySiegePlatform = false;.

Currently the Auto Cast AI looks like it is programmed for absolute general use, and therefore displaying 'stupidity' or wastefulness when it uses certain abilities.  All that is being asked is a more specific intelligence to abilities and that's far from a lot to ask.

Reply #29 Top
Quoting "Annatar11",

The others are less so. The other issue of course is cpu load, which usually isn't thought of as a limiter. You know how large games start slowing down that has nothing to do with graphics? Making autocast smarter will require adding extra instructions for the cpu to execute. Pretty much everything would require a bunch of extra comparisons, per ability, per ship (in most cases). At full fleets and 10 player games, it does add up.

End of "Annatar11"'s quote

Some more IF-THEN-ELSE don't cost that much, even with lots of units: assume an IF-THEN-ELSE cost 100 cycles (in reality it is much faster but throw in some cache misses for variables read... and a missed jump prediction 100 cycles sounds reasonable for something between average and worst case) and you have 10.000 Units = 1.000.000 cycles = 1 Mhz. 1 Mhz more or less don't count in a world with cpus > 1 Ghz.

But, what you often may see in other games are slow downs when there is a path finding algorithm involved for each unit. This shouldn't be a problem with Sins and abilities, because a simple compare (IF ability.range >=distance(source, target) DO something) does the trick. Calculating the distance is simple math - and very fast on current cpus.

and for that strange autocast behaviour...

I assume that currently the Units inside a group don't know each other (= they are not linked or part of a list), and so are all targeting the same unit, because they don't know who ist targeting what. If you have them in a list or linked, a unit could check the list to see what the other units are currently targeting and then decide to aquire a new target or wait when there is a reason for waiting (time penalty for ability use > ability running time). In this case that unit could simply state "i am waiting for this unit" so other units would see that and then decide to aquire a new target instead.

Another simple implementation would be to create some enemy-arrays for each enemy ship class in grav well. Then simply step through that array and assign the next array entry (or the next that match (threshold for healing or something else)) to the next friendly ship. Doing this wouldn't need all your units knowing each other and cpu cylce-cost would scale linear (enemy ships + friendly ships). If you include unit distribution inside the grav well it would be a little bit more complicated - but in that case you could use a tree instead of a list.

And the leveling up problem with caps :

in single-player you could simply pause the game, then level up, then deactivate autocast, then continue. I put pause on a side mouse button, because I use it frequently, playing Sins more like a turn-based game. 

 

 

  

Reply #30 Top

Jean, i'm pretty sure that fleet grouping behavior uses something similar to (or maybe literally is) a Linked List. thats the only way i can explain the highly accurate focus firing behavior that fleets exhibit. fleet head picks the targets and everyone else in fleet linked list grabs the target from the head. head changes targets, so does everyone else, etc. 

 

auto-casting AI gets complicated because it can't just exhibit that kind of simplistic behavior. the ones that auto-cast efficiently tend to be buffing type units. they just check to see if something is in range, is an eligible buff target, and whether or not it currently needs it (if its a repair buff, it needs it if hull is less than 100%, if its a DPS buff it needs it if its shooting at something, etc.). 

 

the debuffing units on the other hand tend to have terrible auto-casting behavior because these are more complicated abilities to check conditions of use with. for example, my Stilakus Subverters will frequently all stun-bubble jump into the same unit, which is a redundant waste. my Guardians don't seem to ever use Repulsion on auto-cast. its beyond their ability to understand when its a good idea to use it. 

 

damage causing abilities seem to have a cast AI that treats them just like an ordinary gun. it basically fire at whatever the current target is. it doesn't seem to bother the check other concerns and thus usually fires at times you wouldn't want it to. (fires at a target that currently has low health, fires at a low priority target, fires at a time when you'd rather conserve anti-matter, etc.). 

 

i think there's no good fix for damage causing ability AI since those decisions are all very subjective impression based decisions that even human players probably won't agree on. i do however think that some clever programming can get better scripts for the debuffing type abilities. i don't accept that its just too proccesing intensive to implement. if that was the case you could just implement an AI 'smartness' slider bar that would turn off the really intensive algorithms on machines that couldn't handle it.