So here it is:
(Updated version by MrLunk: https://imgur.com/gallery/OXqNDkQ)
(Updated version by MrLunk)
I played three multiplayer matches with SimpleBot:
- Seven Wonders against mrchris (1993): 570732
- Kingmaker against mrchris (1963): 570800
- Seven Wonders against TalonZa (1454):570829
The AI is split into some modules:
- Blue: The retreat module
- Yellow: The shooting module (with priority A)
- Green: The resource module
- Red: The pushing module
- Pink: The shooting module (with priority B)
- And the rest of things with low priority
The order of modules is very important, for instance you always flee, if you are in danger. This is in the very most situations stronger than any over aggressive behavior (except in Mind Game). Splitting the shooting module also results in a huge advantage:
If you are not in danger, you shoot, if you can hit the enemy some serious damage. Else (e.g. every enemy is far away) and you feel well, you catch resources or push. But if you don't feel that well you still can shoot some enemys with less chances to big damage.
I made many updates and improvements on SimpleBot, but I don't want to share them in a written AI, because otherwise players using this AI would have too big advantages against other players and I don't wanted to take away the whole fun of optimizing an AI. But here is a list of things you should definitely consider to put into your AI:
- 1. More conditions to the push module: You might see after some matches that you push too far and get damage because of that. Try to find a simple and universal solution for that. Edit: Compare with the comments below.
- 2. Focus more at enemys moving to or carrying resources: Just edit the shooting module with a few nodes. Try to find out if it fit's better in priority A or B
- 3. Split the resource and push modul: Sometimes (not too often) it is better to push than collecting resources.
If you leveled higher up, here are some other thing you can do:
- 4. Put each module into a separated subtree: If your AI grows over 100 nodes, the game starts bugging and slowing down a lot.
- 5. Add a rush module: Rushing is extreme and aggressive pushing and it's usually only useful if there is only one single and weaker enemy (at some range), or good at Mind Game.
- 6. Bot optimization: Once you've unlocked different types of bots, you may notice their different advantages and disadvantages. E.g. you should push more with a Shotgun and less with a Sniper. Also a Sniper should not differentiate to much between medium and long range when it comes to shooting.
- 7. Map optimization: Check out some successful Replays IDs of the top 10 players to find out how they behave at the very beginning of each map. This costs a lot of time and you should only do it if you have a solid core AI.
- SimpleBot uses some target filters. You unlock them once you reached level 3, which can be achieved pretty quickly.
- You can actually leave out the node If self is carrying resource as this doesn't do anything anyways. I just kept it in to make thinks easier to understand.
Edit by GFX47: updated preview