Tremulous GPP bots module by GlobalWarming
The current code was based on a P-Bot 2.x GPP port from Tremulous 1.1 P-Bot (http://tremulous.net/forum/index.php?topic=15329.0) which uses Tremulous version SVN2279 (from http://svn.icculus.org/tremulous/trunk/).
- GPP-Bot mod was created based in pbot (most of the pbot code was removed, recoded or translated, and divided in several files and functions)
- practically everything about bots, is controlled throught bot-> struct
- bots have their own skins (activated by: g_bot_skins command)
- enhanced weapons animations
- bot thinking process now happens in levels at different times
- bots control functions to simplify code, like: BotJump()
- bot States were added
- Action queue which allows sequence of movements
- Paths are not limited in size
- Paths now use -1 to represent NULL nodes
- bots can join on password protected servers
- bots have their own skin
- bots ping was added
- /callbot commands to add and remove bots
- all alien bots now attack based on their own capabilities (range constants)
- new debug system which allow administrators to debug specific parts of the code (botdbg BOTNAME TAG VERBOSITY or botdbg BOTNAME read INFO)
- "dnodes" does not depend on users anymore
- bots can be controlled manually (botcmd BOT move ...)
- bots states can be controlled manually (botcmd BOT state/nav )
- "listplayer" shows score
- Fully charged lucis at tyrants and structures
- Basilisks and Dretches attack improved
- Humans use medipads when are low in HP
- Aliens use boosters and follow basiliks when are low in HP
- Strafe is now random (but consistent)
- Blocked-State code for both, aliens and humans recoded
- Bots are able to follow and create leaderships in groups (need to be fixed)
- Bots do something on maps without nodes (nothing great yet)
- Bots can walk and aim at two different directions (experimental: off)
- Bots aim is not instant (experimental: off)
- Human bots now have basic repair capabilities
- Human bots try to keep a distance when attacking structures (except saw and flame weapons)
- teams are not locked anymore and 2 bots by team are deployed by default
- [BOT] tag in names is reserved only for bots
- bots/start.cfg is executed on map load
- gas affects bots aim
- Essence is now divided by team. dnodes have new parameters: [aliens|humans|off]
- Bots will use target prioritization to choose between enemies
- FriendFire awareness implemented.
- Hit detection which prevent humans to hit the wall for long time.
- Introduced (but not fully implemented): profiles, range behavior, group thinking, hit detection, some bot states as RUSH,PATROL,etc
- goons pounce and rants rush to move faster, maras jump more.
- aliens were not able to evolve to adv. marauder (since original code).
- aliens evolve percentages and order changed. Expect more adv. basilisks and adv. marauders in game
- adv. goons can snipe and attack at the same time
- goon attack ranges adjusted according to CLAW_RANGE defined constants
- dretches will not to attack structures it can't destroy unless they are not completed
- bots deployment fixed (bots were not removed when last player disconnected)
- added botcmd BOT kill to instantly kill bot (useful when bots are stuck or performing tests)
- added aliens class controlling commands, like: g_bot_lisk 0, g_bot_advmara 0 , g_bot_goon 0, etc.
- prevent aliens to loose target in case they are too close of it. In general (humans and aliens) reduce the chances of changing target.
- bots now move more randomly when they are blocked
- blocked timeout reduced to 1 second
- rnodes command added to reload nodes on edition (command not working yet)
- Aliens improved (fixed stuck bug) and adjusted range values
- Goons will not try to use barbs if they don't have enough
- Bots will try to use wallwalk more (70%).
- Aliens will evolve more randomly (even if they have evos, they may not use them)
- Dretch and Basilisk will not always jump on attack
- debug messages and commands have been added
- g_bot_join 0/1 added to prevent bots from joining automatically
- join message changed to: "Please join to deploy bots"
- DrawNodes function changed to update only changed nodes (performance)
- Essence update changed to every second (for debug purposes)
- Cleaned code (removed many unused commented code)
- Ant Algorithm improved:
- BAD essence was introduced as a "regret" action (shown as nades in dnodes)
- Decision making was recoded and values were changed
- Evolve near humans (but not near humans buildings) is now possible
- Fixed "ping-pong" (up and down) movement of bots when firing close structures.
- Bots are added on team-join (not on spawn as previous version). This is the correct way
- Bots buy weapons and extras based also in probability (before was fixed), allowing: variety and saving
- Bots are not locked to a target anymore (if they see another target, may change)
- Weapons prioritization was changed
- Message is sent to client centered on screen (not as private message)
- dnodes was moved from g_admin.c to g_main.c to be automatically updated - every 3 secs- (refreshed) to show changes in Ant Algorithm
- random values were fixed (overseeding problem)
- Bots are added/removed automatically according to the number of players.
- Any team can be joined (even though Aliens is suggested) - sent as private message on login
- Ant algorithm values changed to increases the chances to explore new paths
- Bots throw nades to tyrants
- No more "UnnamedPlayer" bots: bot can not be added if nick is taken
- Ant algorithm mostly implemented but functional (on testing)
- Player count on server browser list showing always "0", fixed.
- Battle-suits are now displayed (before they were not shown)
- Humans bots can buy and use grenades (they use them against buildings)
- Weird "possession" bug (player replaced bot) fixed
v.01 ~ 07
- Humans bots aim against buildings fixed
- Bots are now "ready" on intermission
- botcmd BOTNAME give (command added)
- Aliens wall-walking (when available) was prioritized over jumping
- ATCS Path was improved
For requests, comments or follow-ups: http://forum.acidtu.be/