Bug #1395

Add bobots

Added by Spyhawk 27 days ago. Updated 27 days ago.

Status:New% Done:

0%

Priority:NormalSpent time:-
Assignee:-
Category:Mod generic
Target version:2.78
OS: Arch:

Description

ETL currently ships with OmniBot, the de-facto standard module for AI players.
However, OB doesn’t work with the game when compiled with msvc (on windows), and isn’t available on osx either.

OmniBot is also a quite big lib, and it is not trivial to compile it by ourselves. It requires boost and a very specific setup to be compiled (probably some old Debian), so we have to use the lib as shipped by upstream.
These factor make it quite inconvenient to test the code when not working with Visual Studio (mingw - CLion, QtCreator, ..).

As an option, add the alternative bobots AI in the codebase.

Pros:
  • relatively easy to implement in the codebase. The source code is available (GPLv3).
  • might be lighter, and faster than OB that is using GameMonkey scripts + an external lib
  • could be extended and improved easily, unlike OB where we have to rely on new upstream releases.
  • might provide a better gameplay due to being more dynamic than OB, which are often just running in a linear way.
  • much more technically interesting, as it relies on fuzzy logic and genetic algorithm for path finding (nerd stuff, see original doc)
Cons:
  • part of the code source is still in French, needs to be translated for long term maintenance
  • only an old source code is available (v.4.08), later changes have to be ported back (changes are only minor though)
  • the integration code in the mod is not available publicly (not anymore), but it should be relatively easy to add the hooks at the correct location.
  • not as many map waypoints scripts available, though they can be quickly created.

While the idea is primarily to facilitate development and testing, we might eventually decide to enable it in future releases to have a more dynamic AI, or to have a mix of both OB and BB.

—-
Changes that happened after the open sourced 4.08 version:
(in French, see original changelog page)

Version 5.1.0:
  • Amélioration du pick up objective. Les bots qui s’emparent d’un objectif comme dans radar (les kits radar) ou glodrush (les godlbars) ne sont plus dispersés par d"autres objectifs possibles mais se focalisent sur l’endroit ou ils doivent déposer le kit / goldbar (voire autres) pris à l’ennemi. Dans Radar et sans Axis, les bots alliés mettent à peine cinq minutes pour ramener les kits radar dans le camion. Dans Goldrush c’est à peine plus.
  • Amélioration de la gestion du MGNest : Les bots ne vont plus sur un MGNest si celui est déjà occupé.
  • Amélioration du node blockable (Endroit ou le bot se positionne pour attendre un ennemi) : Les bots n’y vont plus si celui est déjà occupé.
  • Gestion des armes qui chauffent pour les bots : Sten, mp34, mobileMG42, mobileBrowning. Les bots attendent que leur arme se soit refroidie pour s’en servir, en attendant ils prennent les pistolets.
Version 5.5.0:
  • Ajout d’un node walk, quand les bots sont dessus ils marchent jusqu’au prochain node, (diverses vitesses de marche).
  • Les bots ne sautent plus quand ils passent sur leurs mines.
  • Quand on est déguisé, les bots n’attaquent pas.

As a sidenote, check Easfront mod as it includes its own AI system, using the vanilla botai code.

History

#1 Updated by Spyhawk 27 days ago

  • Description updated (diff)

Also available in: Atom PDF