Gladiabots

Gladiabots

Not enough ratings
Various Texts
By Markolainen
Will contain texts on how I do things with my AI:s.
   
Award
Favorite
Favorited
Unfavorite
Intro
This guide will contain texts on how my AI:s work. The mode is elimination and the team setup is 4 assaults, 2 snipers and 2 shotguns.
It will not be precise but rather give an idea and hopefully be inspirational enough for people to develop own ideas and versions of them.
At any point where I use words such as "optimal", "essential" or "best" it is from my point of view and not from an objective point of view.

Any questions and thoughts are welcome.
Shield denial
The shield denial part of any assault is essential to keep the enemy shields from recharging. The basics is to have an interval for which you choose to wait until attacking an enemy with low shields.

When to do it
The optimal way this would work is if you got the enemy to a point in shield where any attack against it would cause it to flee. So when you attack it it flees, then you stop, it either moves forward or attacks, you wait for a few tics and then fire at it again, if flees, hopefully taking shield damage so its shield charging is denied, repeat.
So when is a question of when the enemy flees and how long you want to keep trying to get the shield to that value.

How to do it
Firstly, you choose a trigger point for a shield value you want and when any enemy reaches that point you tag that enemy in some way, either by a single tag and using a counter or something similar to gray code. After a while you untag the enemy bot.
Then you have it so none of your bots attack the enemy bot when tagged and as soon as it is untagged you have at least one of your assaults attack it.

Pushing MGs
Ok, so the MG can be a real pain in the assault. Attacking it with assaults in order to get it moving is a hard task and the SG must enter mid and have a great disadvantage DPS-wise.
The best way to get a MG to move is your sniper.

When to do it
I think of it this way. At what point has the MG become a problem? That is the point when I want it to move. Problem here means "next obstacle". For me it has been one of 2 criteria. Either when it is one of the n closest enemies to you or when your other bots has started firing at it.

For the first point it is either the front most or amongst the front most enemies. Pushing closer and attacking other enemies in this case will many times result in the MG doing damage on your bots, at a slightly higher rate than your assaults. As such, it must be moved.
For the second point, assuming your other bots have some decent way of choosing their targets, have chosen the MG as a good target for the next bot to push, as such. Your sniper should consider it too.

How to do it
Once the sniper has started shooting at the MG I continue firing at the target without changing or pushing. I want to get it moving as fast as possible.

The second part of the pushing is to see to that the MG continues its movement once started. This can be done with your sniper while it is in range, but after that it is a lot up to the assaults. Continue giving the MG the business, either with a "shoot on return" system or by continuing to hammer down ignoring when it was last attacked. The MG is slow and getting it far back is a major advantage for your team. Your sniper has spent a lot of time getting the shield down, don't let it back up until OOR of all allies.

Sniper clock
An important part of my AI is the sniper clock. It measures the distance as well as the shot time to the enemy snipers, the best thing about it is that it only requires 4 personal counters! I would argue a 2 counter version might be possible to make without sacrificing too much precision though.
When to do it
Always.
Why do it
For me the main reason to use it is to keep my bots in the fight as long as possible. Before using a sniper clock my bots started fleeing as soon as they were attacked by a sniper if they already had enough shield damage. But snipers take 3 seconds to fire, which means it's not uncommon to miss 1-2 seconds of your own firing time, time in which your bots might have gotten the enemy sniper to flee. There is certainly some good mathematical way of showing this aspect of the clock.
The second reason is push control. If you don't have an advantage then it might be a good idea to stop when you're at a range where you don't get too flee before the enemy sniper lands its shot.
How to do it
You'll have 2 counters for each sniper. One which measures the distance you are from the sniper and the other how far into the shot it is. Any non fleeing movement from you or the enemy sniper decreases the distance while any fleeing increases the distance.
Then you add the shot- and distance counter and depending on your preferences act accordingly.
I've had a lot of success using the same shot counter for the enemy snipers. And while I haven't tried it too much in practice I think for every tic tagging only the closest sniper and adjusting depending on its behaviour might work too. Especially since most players don't use set-ups where the snipers spawn together in 4-v-4 spawns.