jk_botti is computer gamer for multiplayer mode of Half-Life (HLDM) and
has strong support for various submods of HLDM, modifications that
change game on serverside but doesn't require client modifications.
jk_botti aims to:
* Lower CPU usage compared to other HLDM bots.
* Be more interesting opponent than other bots found there
* More humanlike aiming, hard to keep track on target making movement changes
* More random combat movement, random jumping, better strafing
* Hear player footsteps/firing weapons
* Be dedicated server targeted bot
* Listenserver client interfaces removed.
* Automatic waypoints creation.
jk_botti is mostly tested with Severian's, but works with original HLDM and
Bubblemod. As of version 1.40 jk_botti also supports Opposing Force.
On Severian's and Bubblemod, gluon is disabled. Bot might work
with XDM but this hasn't been tested.
One of my major goals with jk_botti was to lower CPU usage compared to
HPB_bot. I used to run Severian's server on 400Mhz Celeron (later updated
800Mhz Athlon) and even few HPB_bots would rise cpu usage too high.
(Update: I have new server on P3-550Mhz, with default small/medium maps
like datacore/stalkyard with three bots I have see 15% cpu usage).
Trick(s) used to lower CPU usage:
* bot_think_fps settings for limiting number of thinks per second
(default: 30fps)
Aiming system on jk_botti does not use currently available and latest player
locations for tracking and shooting enemy but instead use old data (level 1
bot 60ms, level 5 bot 300ms old) to guess position of player. This makes
bot-aiming worser when player changes movement vector rapidly (jump, duck,
change strafe direction rapidly).
jk_botti creates waypoints automatically when 'autowaypoint' setting is
enabled in config. Autowaypointing collects data on map start (weapon/item
locations) and creates new waypoints on those locations. Then jk_botti waits
real player(s) to join server and start moving around. New waypoints are
added to new places where there isn't old waypoints already present. Newly
added waypoints will not be effective until map change. This is because
jk_botti needs to recreate route matrixes with new waypoints and since this is
CPU intensive operation this can only be done on map change.
Credits:
* Based on HPB bot 4.0 by botman.
* Uses BotAim code by Pierre-Marie Baty.
* Uses code from GraveBot by Caleb 'Ghoul' Delnay. (part of goal selection
system, longjumping)