bot improvements mod

Release and discuss things you've made, including mods.
freem
Mantis
Posts: 97
Joined: Mon Feb 11, 2013 1:02 pm UTC

bot improvements mod

Postby freem » Sun May 16, 2021 10:04 pm UTC

Hello.

I am now hosting a mod which targets bot's improvements. The goal is to have them as smart as possible, by harvesting the low hanging fruits first. The server is set with teams of 5 bots which are at skill level 7 (their skill range starts at 1 and ends at 9, so they're not at their best, but they're rather strong, for bots).
I intend to keep this post updated as I add elements on my TODO list or when I implement things. Feel free to comment on my ideas or to provide your own ideas, I'll try to implement everything I can to make bots as fun as possible to fight, and tools which don't just feed enemy's team if not explicitly asked for (by servers owners).
The behaviors should be affected by their individual botSkill value when it makes sense.

Currently, following changes are implemented:
  • human bots can buy light armors at stage 0 (they can not on vanilla)
  • human bots mix flamers and pulse rifles (they can not buy pulse rifle on vanilla)
  • human bots won't buy radars if that means that more than 75% of the team will have one
  • human bots run when their target is friendly. This means they will run when going to armory for equipment, when going to medistation for healing, and when trying to repair things
  • marauders jumps to flee faster
  • tyrants charge to flee faster
  • mantis and dragoons pounce to flee faster
  • rushScore is now calculated by considering the total credits bots (bot aliens and humans) have (including already owned evolutions), the maximum credits they can spend in current stage, and their skill: the more skilled they are, the less likely they will rush if that means they can't buy decent evolutions when they die.
  • they should be able to use grenades (done but perfectible on 17th may 2021)

Changes that are planned (but don't hold your breaths):

  • humans bots should not queue at medistation. Implemented, but probably does not work as expected.
  • rewrite remaining score functions, which are used to take decisions, so that they use as little as possible hard-coded values, instead, base decisions on gameplay elements (equipment's price, game's age (better to attack buildings when game is old, since they're hard to rebuild then), etc).
  • distances should not be about a straight distance, but about the navmesh's size between bot and target
  • bots should be able to place back critical buildings (spawns, RC/OM, armory, medistation, booster) in some conditions (this include being able to spawn as builder)
  • bots should defend builders instead of rushing or roaming when number of critical buildings is too low
  • they should be able to wallwalk and use jetpacks
  • roaming distance should depend on their status (skill, health, money, etc)
  • new actions: raid and defend. When rush, target enemy's critical buildings. When raid, target defenses. WHen roaming, just wander. When defending, stay close to base.
  • players of same team should be able to give them basic instructions (defend here, defend main base, roam, raid, rush, follow me)
  • bots should be able to reload depending on situation and skill level
  • bots should be able to refuel ammo (including adv goons), health, poison when close enough to armoury, medistation or booster
  • bots should be able to play grouped
  • a good rush implies to not rush alone: require at least N% of team raiding to switch their action to rush.
  • don't fight acid tubes on melee, instead, move back out of range
  • move (if possible) when fighting buildings damn it!
  • when healing or resupplying, search enemies to attack
  • jump over stairs (shorcuts in various maps)
  • ability to use covers from walls or friends
  • aliens able to target human buildings on heights
  • when a ranged attack is available, backpedal when retreating, except when reloading or really low hp (faster when moving forward)
  • prevent firing in bases with primary lucifer cannon to avoid destroying friendly base
Last edited by freem on Tue May 18, 2021 2:51 pm UTC, edited 1 time in total.
User avatar
Gireen
Graphic Designer
Posts: 225
Joined: Wed Mar 07, 2012 1:26 pm UTC
Location: Germany
Contact:

Re: bot improvements mod

Postby Gireen » Mon May 17, 2021 6:14 pm UTC

A dumb thing bots do is they focus only on there current goal and ignore everything else. That makes it super easy to kill them if they flee or attack a building. At the moment its not possible to have a bot react to attacks and resume its task it the danger is over.
It might be good to have a state variable, that the behavior tree can act different depending on the current state.
fear ma engrish :granger:
freem
Mantis
Posts: 97
Joined: Mon Feb 11, 2013 1:02 pm UTC

Re: bot improvements mod

Postby freem » Tue May 18, 2021 2:47 pm UTC

Gireen wrote:A dumb thing bots do is they focus only on there current goal and ignore everything else. That makes it super easy to kill them if they flee or attack a building. At the moment its not possible to have a bot react to attacks and resume its task it the danger is over.
It might be good to have a state variable, that the behavior tree can act different depending on the current state.


Yes, I forgot to put related things to my TODO list, thanks!
The idea I have to work around that is to define several levels of targeting, namely:

  • objective (assist a teammate, raid a specific point, defend a specific point, go to some resupply point, etc)
  • immediate target, which is what they currently have

This should allow to implement backpedaling when retreating to go heal, and other sneaky tactics like trying to cut target's retreat path. For that, I'll also need to know target's direction, though, and basically, I need bots to be aware of more than just the closest instance of everything. Currently, you can't decide a bot's target in the BT for example.

Thanks, let me add this to TODO list.

Return to “Community Development”

Who is online

Users browsing this forum: No registered users and 6 guests