Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add bobots #1395

Open
ETLegacyTeam opened this issue Mar 5, 2020 · 2 comments
Open

Add bobots #1395

ETLegacyTeam opened this issue Mar 5, 2020 · 2 comments
Labels
cat: mod Category mod (generic) 💡 Feature New feature or request P3: Normal Priority 3
Milestone

Comments

@ETLegacyTeam
Copy link
Member

Author: @rmarquis (Spyhawk)
Date: 2020-01-29
Redmine Issue: 1395, https://dev.etlegacy.com/issues/1395


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":http://bobots.e-monsite.com/pages/bobot-source/ 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":http://bobots.e-monsite.com/pages/projet-bobots/making-of-bobots.html)

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":http://bobots.e-monsite.com/pages/projet-bobots/changelog.html 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.

@ETLegacyTeam ETLegacyTeam added 🐞 Bug Something isn't working cat: mod Category mod (generic) P3: Normal Priority 3 labels Mar 5, 2020
@ETLegacyTeam ETLegacyTeam added this to the Future milestone Mar 5, 2020
@ETLegacyTeam ETLegacyTeam added 💡 Feature New feature or request and removed 🐞 Bug Something isn't working labels Mar 7, 2020
@TheRenegadist
Copy link

This is definitely a necro but I wanted to also throw out the idea of officially including Fritzbot since it's probably one of the most "human" bots I've ever used that are night and day compared to Omni. The biggest change being the fact that they actually jump/run/prone around when fighting other players making for a more realistic combat experience compared to Omni which just aimbots you across the map.

There's not much video documentation on them but some of the improvements can be seen here, I'm sure:

https://youtu.be/-ylB3fcIU4M
https://youtu.be/t6SfhEHVGS0

Not to mention we have a wide list of maps that work with them especially with the works of the Fritz community adding more maps to the list and we have the waypointing tools and development builds so we can improve and add more maps from there. We don't have Omni levels of waypoints but with Fritz it's definitely quality over quantity.

http://filebase.bots-united.com/index.php?act=category&id=40

Anyhow, I've mentioned this before but now I'm putting a Github post to the suggestion.

@rmarquis
Copy link
Contributor

Fritzbot code isn't available. Essentially, it is a separate mod build over ET source code, but it can't be included in Legacy code.
This is unlike Omni-bot that is a separate library that can be loaded in any mod, or bobots that is a separate mod (like Fritbot) but whose source code is readily available.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cat: mod Category mod (generic) 💡 Feature New feature or request P3: Normal Priority 3
Projects
None yet
Development

No branches or pull requests

3 participants