Difference between revisions of "Strategies"
Line 69: | Line 69: | ||
=== Attacking === | === Attacking === | ||
+ | {{InformationCollapsed|1=Minimize the time spend switching attack targets.|2=Usually a bot should continuously attack the bot it started to attack. (by filtering a target attacked in the previous tick) Create strict rules for when to switch targets. For the sniper and machine gun, whose reload time is quite long, it's especially important.}} | ||
+ | {{InformationCollapsed|1=Focus fire.|2=Prioritize enemies that are already being attacked by your allies.}} | ||
− | + | {{InformationCollapsed|1=Focus the enemy sniper.|2=Pay a lot of attention to your opponent's sniper. Your sniper should prioritize attacking the enemies sniper. If your sniper hits the opponent's sniper then it's probably worth changing the attack target of all your nearby units to it, even if they are attacking medium range units. (and only if it is safe/worthwhile doing so)}} | |
+ | {{InformationCollapsed|1=Shoot medium range|2=Aggressively push to medium range. Little damage is done at long range, so pushing to medium maximises your damage and also pushes your opponent, especially if you have many pushing at once. Careful, a bad push can be a big risk too.}} | ||
− | + | === General === | |
− | + | ||
− | + | ||
− | + | {{InformationCollapsed|1=Ignore tagging|2=New players can totally ignore tagging. (especially for combat) They will probably waste a lot of time (ticks) using them.}} | |
− | + | ||
− | 1. | + | {{InformationCollapsed|1=Start experimenting.|2=Don't follow rules. Sometimes you have to break rules to dominate.}} |
− | 2. | + | |
− | + | ||
− | + | <!-- | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | {{InformationCollapsed|1=|2=}} | ||
+ | {{InformationCollapsed|1=|2=}} | ||
+ | {{InformationCollapsed|1=|2=}} | ||
+ | {{InformationCollapsed|1=|2=}} | ||
+ | {{InformationCollapsed|1=|2=}} | ||
+ | If no enemies are being attacked by an ally then only attack enemies that are attacking or retreating. If no allies are attacking or retreating, then push(move) towards your enemy. | ||
+ | Don't push when being attacked (I don't always follow this rule) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
5. The shotgun should not always start shooting at the first unit it sees at medium range. Its good to get as close as you can to medium range units, especially if they are retreating or being attacked by an ally. This will give your shotgun more medium range shots as the enemy unit tries to escape from medium range. One of my SG rules is that it will only stop moving towards medium range units when at-least 2 units are in medium range. | 5. The shotgun should not always start shooting at the first unit it sees at medium range. Its good to get as close as you can to medium range units, especially if they are retreating or being attacked by an ally. This will give your shotgun more medium range shots as the enemy unit tries to escape from medium range. One of my SG rules is that it will only stop moving towards medium range units when at-least 2 units are in medium range. | ||
Line 105: | Line 100: | ||
6. The best way to collect resources depends on your current strategy and how well you are doing against the playerbase. Your resource collecting strategy will change as you change so I can't recommend one specific technique. It's ok to not focus on resource collecting while you hone other more important bits of your AI. | 6. The best way to collect resources depends on your current strategy and how well you are doing against the playerbase. Your resource collecting strategy will change as you change so I can't recommend one specific technique. It's ok to not focus on resource collecting while you hone other more important bits of your AI. | ||
− | + | 9. Group your units together. Players do this in various ways. Many will move the unit to the nearest ally during a game if they wander too far away. I don't do that. | |
− | + | --- | |
− | + | * Scoring / Pushing / Decorators / Ideas worth implementing | |
+ | * Shotgun specific strategies | ||
+ | ** [https://forum.gladiabots.com/viewtopic.php?f=22&t=126&p=4470#p4470 decorators] | ||
+ | Smuggling (catch in mid battle) | ||
+ | Rushing (catch at first) | ||
+ | Pushing (we all know) | ||
+ | Dancing (both resource and range based) | ||
+ | Arena Positioning System (using bases and Bots and resources, used for flanking and retreat.) | ||
− | |||
− | |||
− | |||
4. Focusing 25% or less shield enemies down(if you don't do this you'll never kill a bot) | 4. Focusing 25% or less shield enemies down(if you don't do this you'll never kill a bot) | ||
+ | |||
5. Move towards closest resource when out of range / pick up (good for scoring off pushes) | 5. Move towards closest resource when out of range / pick up (good for scoring off pushes) | ||
− | |||
− | |||
3. Both grouping together and focusing your fire definitely comes with pros and cons that many should be wary about. Grouping especially isn't something that I really think is necessarily good considering both the limitations in the information the bots has access to and that any time spent grouping is time lost not pushing. | 3. Both grouping together and focusing your fire definitely comes with pros and cons that many should be wary about. Grouping especially isn't something that I really think is necessarily good considering both the limitations in the information the bots has access to and that any time spent grouping is time lost not pushing. | ||
− | |||
− | |||
− | |||
− | + | 5. Besides attacking the currently targeted enemy maybe focus firing, I'm not exactly certain how useful it would be to have strategies of which things to prioritize for attacking for a beginner, and I feel like what is best will change more and more depending on the situation at hand. | |
+ | Only thing I would add is to think about maintainability. Don't use to complicated structures, map and bot specific stuff. It' easier to make one generic AI then to handle a truckload of specialized ones. | ||
--> | --> |
Revision as of 21:48, 27 December 2017
![]() |
This page needs improvement, you are welcome to contribute. |
Contents
[hide]Best practices for AI design
Some best coding practices from software development also apply to AIs in Gladiabots. The following rules can help improve the quality of AIs, enhancing both the initial development and subsequent maintenance of the AI.
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
Useful resources
There are several places to discover new strategies, learn tactics of other players or ask questions:
- Check the community forum. Also "old" topics there can give nice information.
- Especially the sections Strategies and Questions are interesting.
- For example check this topic about shared ideas how players approach the game. Several strong players of the year 2017 contributed to it.
- Check the chat groups on telegram and discord.
- Check the wiki itself to learn about game mechanics and bot programming and their sub topics. There are several nifty details to discover.
- Check the changelog or roadmap to learn about recent or planned changes and adjust your AIs according to them.
Last but not least one should play the game. Especially lost games show flaws of the AI, that need to improved. Try to analyze the strategy your enemy used.
Simple bots
One can learn of bots with few nodes that have a pretty good performance in the game. They are a great base to start optimizing for beginners but also for advanced players to test their AI against.
Ultimate AI for beginners (16 nodes)
PEW presented this Ultimate AI for beginners in the forum.

The AI is split into this main modules:
- Blue: The retreat module
- Yellow: The shooting module (with high priority)
- Green: The resource module
- Red: The pushing module
- Pink: The shooting module (with low priority)
Grand Master League Bot (30 nodes)
LuBeNo presented this Grand Master League Bot in the forum.

The AI is split into this modules:
- Defense
- Shotgun
- Offense
- Dancing
Ideas worth implementing
Retreating
![]() |
|
![]() |
|
Attacking
![]() |
|
![]() |
|
![]() |
|
![]() |
|
General
![]() |
|
![]() |
|