nuclide/Documentation/Bots.md
Marco Cawthorne d41b90c081 Base: Give some love to base/
VGUI-Menu: friendList, chat backend, textview class proto
SurfaceProps: Flesh impacts recognition
PropData: BreakModels now use a bodyque to limit possible physics overhead
PMove: falldamage, liquids can now be configured via external decl
NSWeapon: added alternative punchangle based on springs, 'punchSpring X Y Z' in decl
API: Team class management APIS
NSPhysicsEntity: Optimised, optimised, optimised. New cvar: phys_lowspec. Scraping, impact effects etc have been added.
More polish everywhere else
2025-01-02 18:53:55 -08:00

1.1 KiB

Bots

Bots are CPU controlled opponents. They can be useful for development, debugging but can also fun to play with.

They're 'fake' client entities, traversing the level, and acting upon objectives they either figure out themselves, or are told to to act a certain way.

We encourage any multiplayer game to support them, because they often also fill in the function of balancing teams. There's a whole slew of benefits of supporting bots, and players will generally thank you for including them.

Technical Info

Bots are handled by BotLib, located under src/botlib/ in the source tree.

Nuclide's BotLib takes some inspiration from Quake III Arena its bots, but shares no code or specific ideas or implementations. We do not use AAS for navigation, we leverage the route/pathfinding system FTEQW provides. Bots also share some code with regular NPC/Monster type entities through the use of the ncActor class.

@note Games are allowed to handle how they want to integrate bots themselves, but for development purposes there are ways to force bots to spawn also.