Gladiabots

Gladiabots

Not enough ratings
Blue Team Season 4 Notes
By Blackwater Canyon
This guide is thoughts developed by Blackwater, Pege, and others on the Blue Team during season 4. It is primarily intended for intermediate and advanced players, who are proficient at the fundamentals and are looking to strengthen their game.
3
   
Award
Favorite
Favorited
Unfavorite
Collection
Dimensions of Collection
If you haven't watch TTakeshi's video on Collection, you should do that. It's an excellent start point for getting better at Collection.
TTakeshi defines 3 types in his video:
  • The N-Type: A strategy of seeking out the nearest resource
  • The M-Type: Focusing your team's energy for the middle resource as your opening
  • The E-Type: Focusing on stealing enemy-side resources.
TTakeshi leaves out a couple of dimensions that I've noticed since I started playing.
Control Vs. Aggro
Borrowed from play styles in Magic: The Gathering[articles.starcitygames.com] (h/t Gilberreke for the article), let's define a "control" player as a player that is using most of his bots to subdue and prevent his enemy, and an "aggro" player as someone that is trying to mostly ignore his opponent and trying to fully utilize his bots to score. In this image, the player on the right is utilizing a strategy of control -- they are using all their bots in an effort to prevent their opponent from scoring.

It’s worth noting that the Control player doesn’t necessarily plan to win by scoring half of the resources! With so many bots slowing your opponent down and few of your bots for scoring means that many matches end by time expiring! This means that while the Aggro player is probably focused on choosing which resources they need to win, the Control player is giving consideration to score advantage and time remaining.
Number of Efforts
I've noticed that some teams try to primarily work together to go after a hard, contested resource, while other teams try to work multiple efforts. Single effort teams succeed on maps where a critical resource must be achieved or the game is lost. M-Types are usually single effort teams. Multi-effort teams can do particularly well on maps with an off-sides ally base. If the enemy is busy elsewhere, a multi-effort team gets lots of easy steals. E-Types are generally multi-effort, but they don't have to be. A concerted effort to steal an offside resource would still be a single effort team. In this image, the player on the left appears to be gaining an advantage by scoring with multiple efforts while tying up the opposing team's single effort.
Checklist
In this section, I'd like to list the things you should be thinking about in Collection:
Pursuit Conditions
In a high-count resource map, it's probably not productive to pursue an enemy if there are a lot of resources left. Winning against a fleeing enemy is hard, and you must win, or you've lost even more time.
However, once you realize that the enemy is going to win imminently, you need to stop them. If they have enough points to win, stop trying to go after safe resources and go stop them! If you don't have code to do that, consider adding it. You will want to count something like, "are there enough resources on the board for me to win?" or "is the enemy carrying enough resources that he can win if he scores with all of them" -- depending on how your counting is set up and what is easiest for you.
Throttling Pursuit Behavior
If you are far enough, and the enemy is close enough to a base, it may be a waste of time to even chase them. For example, if an enemy with a resource is at short range to a base (max 6 sec to to score), and you are out of range to the base (min 7.5 sec away, even with a shotgun), you may decide that this bot shouldn't participate in a pursuit. In a game losing situation, you may need to take the risk anyway, but -- otherwise -- you should obviously not.
How Collection Bot Strategies Affect Combat
E-Type combat needs to be different from M-Type combat. For M-Type, you want aggressive, suicidal bots. This is because you are putting all 4 bots after the key resource.
E-Type
For E-Type, you want more cautious bots. This is because you are probably going to be outnumbered in one location, so you can steal in another location. Since battles are expected to be fought on the opponents side, even combat trades are losses for the E-Type.
M-Type
The M-type problem is that long battles mean an opponent is scoring on you while the main battle is being fought. You need that battle to end quickly. The ideal M-Type game involves all other battles being fought on the Ally side after the first battle. Since travel time to the Ally side is faster than the opponent, the M-Type player wins when bots are traded.
How Bot Configurations Affect Collection Play
Definitions:
• g - Shotgun
• A - Assault
• n - Sniper
• M - Machine Gun

I recently switched from gAnM to gAMA and made the incorrect assumption that I should just keep all my combat routines the same. Many of the heuristics that work for with one team won't work for another. Here's what I've discovered:
gAAM or gAMA
gAAM (shotgun, assault, assault, MG) teams feel really well equipped for all 4 team members to collect as needed. The speed of two assaults feels like a great add for an E-type.
It feels noticeably weaker in fights without the sniper, so I’ve been experimenting with changing how combat works to make a better fit. More survivable, less aggressive.
gAAn or gAnA
This is the best team to control the middle resource the fastest. The combination of 3 fast bots arriving on the scene with a sniper than can put a lot of firepower from far away will be too much for a team with an MG to win the contest. The MG will arrive to the center too slowly, and it doesn’t deal high damage until medium range. Even farther for it to travel.

Like the gAAM arrangement, the gAAn arrangement offers nice symmetry for a multi-effort team.

I think it the gAAn configuration, you are trying to keep nudging the resource back before an MG can arrive and dominate the battle.
gAnM
This is a nicely balanced lineup with a diverse set of tools.
Bot Order
Gilberreke points out that a very important notion of bot order is that the first bot will receive the first instruction. This is critical if you assign your bots to avoid resources that allies are approaching. It will mean that all bots except the first one will be limited in its choices. Since the shotgun probably needs first pick, I think it is logical to put it first. Alternatively, giving the shotgun a central position also makes sense, it averages out the shotgun's chance of having a short distance to the critical resource at the opening.
Domination
Styles of Combat
In domination mode we score points in two ways- by converting bases into ally bases, and having bots sitting (camping) on captured bases. Teams often focus on one of those two making two broad styles:

Aggro teams
Aggro teams always try to capture the next base, and prioritise that over staying on captured bases. They will sometimes use faster bots to achieve that, and push to shorter ranges. This can be simpler to code as it does not require you to measure if you have enough bases. These teams are particularly powerful on maps with many bases, but also on 3 base maps if securing a central base quickly is critical to winning the match. The strategy can struggle on maps with an even number of bases, particularly if they are spaced out.

Efficiency teams
An efficiency team focusses on maximising time bots spend on bases, and look to win matches by camping more than the opponent. Herrspecht is a great example of this play style, and their team can often win matches even with fewer bases held for much of a match. The strategy is suited to sniper bots, which can provide the most fire support from a distance while also holding a base. In practice this team will often have more conditions where bots will stay on an ally base, and bots may move to ally bases to support them.

Forcefield Use
Forcefields can be used for a variety of purposes in domination mode, and for the best example, watch Defunct who is a forcefield specialist. A clearly match winning move is getting your machine gun in a central forcefield that is close to bases. Their massive shield and health makes this very hard to counter once they are in place. If you can identify forcefields close to enemy spawn positions then these will also be powerful forcefields for any bot to capture as they will stop enemy reinforcements.

You should attempt to judge if an opponent has taken a good or a bad forcefield. If the shielded opponent is not in a commanding position then it may be best to ignore them, and allow the opponent to keep a potentially scoring bot out of a base. In contrast, attack enemies in critical forcefields hard as any shield they recover is three times as costly.

Shotgun bots have their own range of forcefield tactics because of their speed and shield. Suggest using them to quickly grab forcefields the enemy is approaching, using forcefields as a flee point, and using a shotgun to secure a forcefield ahead of your own advancing machine gun bot.
Elimination
Strategy
Cautious versus Aggressive
Gladiabots does not give us perfect information. We don't have perfect numbers for data like range or health. Instead, we must make choices about how to interpret that data. Additionally, we must decide how we will choose our posture toward the enemy. Will we play to inflict maximum damage, or will we play to minimize damage to our own bots?

The aggressive bot uses health as a resource. It wins evenly matched standoffs, because it is prepare to continue fighting when the opponent is choosing to retreat. This means the aggressive bot gains an advantage in both ground and damage because it is damaging the retreating enemy and advancing while the enemy retreats. The aggressive bot loses by being caught in a trap and dying mid-field.

The cautious uses health as a failsafe. Cautious bots aren't caught in a trap where they die mid-field. Instead, cautious bots play the odds that their safe moves will ultimately grind down their opponents' risky moves until it results in a kill. When a cautious bot does make a mistake, the cost is often not fatal. The cautious bot loses by being pushed to the wall, or reaching a draw by not pushing its opponent sufficiently.

Deep Fighting versus Shallow Fighting
Related to aggression is the concept of how deep you choose to fight. One might change this posture deeping on the local situation. Shallow fighting means you are operating very near a range boundary, and trying to take advantage of that range boundary. For example, if you know that you are exactly one step from OOR of an enemy sniper and counting its shotclock, you can freely operate, take a step back at the precise cycle, then step back in again and continue. Once you are several steps away from the boundary, one must use a safety factor (cautious behavior) or assume risk (aggressive behavior). The shallow fighter is at risk of inefficiency because long shotcycle bots like the MG and sniper will often have insufficient depth on a retreating enemy to finish.

The deep fighter is trying to get an opponent to flee, and then either gain a lot of ground or do a lot of damage because the fleeing opponent must travel a long way to safety. Bots with a deep fighting strategy will need good distance tracking, because they need to know when they have moved too far forward.

Pushbots versus Killbots
For example, if an enemy is fleeing with no health, should you try to do all the damage to it that you can (killbot), or turn your guns on an opponent that is still fighting (pushbot) so that you can start pushing a new bot back. Conversely, a pushbot strategy might hold its guns on an OOR target to keep it from readvancing, while a killbot strategy will look for a new opportunity to do damage.

Writing a great Elimination AI seems to be about deciding if you are making a killbot or a pushbot. A pushbot is doing everything it can to move the opponent to the wall and then killing them there as they hopelessly retreat. A killbot is looking for opportunities to do health damage to an opposing bot. Both are obviously useful, but your bot is trying to prioritize one over the other.

If you are making a killbot, distance tracking is critical because you are looking for opportunities where you opponent mathematically cannot flee to safety, and then you want to do as much damage as possible to that bot. Distance tracking is also useful to ensure that you have not put one of your own bots into an inescapable situation.

Openings
Convergence
A common opening for many bot teams is to quickly come together to form a group to gain the protection of a group. There are many approaches, whether that's all going after the same enemy, approaching the nearest ally, or moving to the same point on the map (e.g. the center). This is helpful, because lone snipers are particularly vulnerable to shotgun predators. Correct convergence can also create an advantaged board position where the enemy is turned so that they are now closer to a wall.

Convergence can backfire in a couple of ways. If bots are moving over great distance, slower bots may get accidentally abandoned to oncoming forces. Convergence can also result in attractive-but-deadly situations, such as grouping up at the center, but flanked in a crossfire.

Shotgun Gambit
It is common for teams to spawn in two groups of 4v4. A player can identify this set up and react with what I am calling a gambit. That player move one of their bots (usually a shotgun) to create two asymmetric groups. One group of 4v3 and one group of 4v5. The idea is that the first group will resolve as a win for the opponent with a score of 3 (the 4 enemy bots beat the team of 3). The second will resolve for the gambit's player with a score of 4 (the 5 beat the team of 4). This result's in the gambit player now having an advantage in bots (5 vs 4), which they presumably can win the game with.

A shotgun is useful as the bot to choose to change sides because it is fast. A fast gambit is important because the advantage isn't gained until the bot has joined its new team.

Gambits are not always successful. A gambit can fail if the moving bot is caught alone, or caught in an awkward crossfire during movement. The gambit can also fail if the 4v3 match resolves faster than the 4v5 match. In this last situation, the enemy is now ahead 4 bots. This is disaster if they reinforce the 4v5 match before it is won.

A gambit does not need to be a 3-5 split. It could be a 2-6 split, for example. The principles of a successful Gambit are the same: rapid transfer from one team to the next, and having the advantaged match finish simultaneously or in advance of the disadvantaged match.
Distance Tracking
One can make different combat decisions based on distance. Below are some choices made by experienced players.

Basic Distance Tracking
No additional resources are used to make decisions. One can make conservative judgements assuming damage dealt is equal to the maximum possible distance that could be travelled. I'm not sure what methods HerrSpecht uses in his latest bots, but his videos describe this conversative approach.
Fringe Distance Tracking
(1 private tag) It can be helpful to know if a bot is coming toward you or away from you. By tracking, "was this bot at long range last turn" with a tag, we can get a sense of if something is just out of range, just inside medium range, and so on. This small change can provide a simple edge where a bot will have confidence that it can step back or step forward to change the range threshold.
Medium-Res Distance Tracking
(3 or 4 private tags) TTakeshi's video on pushing talks about using a counter to determine the potential threat bots should consider while moving forward. The problem with just using a counter is that there isn't a way to correct the kind of error that starts to aggregate. This can be fixed by using binary counter 3-4 tags on every enemy bot to subdivide the ranges into 8 or 16 partitions. Distance tracking otherwise works like TTakeshi describes in his video on pushing. I use 4 tags to track long range. Since my elim lineup is all bots that fight at LR, I want maximum resolution at this range. For my strategy, I haven't needed high precision to make decisions at medium range. Some players use a tag to track whether or not an opponent was at long range last turn. This allows them to subdivide medium range and OOR in addition to LR at the cost of precision at LR.

A challenge with using even 4 tags is that bots move at different speeds, and so this resolution is not good enough to perfectly capture movement every tick. People use different strategies to overcome this, usually a variant of sampling.
High-Res Distance Tracking
(1 private counter per bot, and a temporary tag). Of course, we could solve the resoultion problem by keeping a counter, which can be updated every tick. This is very expensive in terms of counters, but prevents errors due to sampling.