I'm using vV3B21j version of podbot. There is a huge problem with lag. Our server is based on humans (real players) vs monsters (bots) survival gameplay. There are 16 bots constantly playing with jasonmode ON. The maps are kinda small. The biggest being aim_taliban and the smallest aim_headshot. Also, I added lots of waypoints in these small maps, because I wanted the bots to be able to reach the players as much as possible. Most of the lags start, when there are 16 bots and >8 players. Also the pings rise heavily at round start. The server with 16 bots and ~10 players use about 2GHZ CPU. The server FPS is very unstable, it goes as low as 16. Sys_ticrate is set to 100. The plugins are optimized to ignore bots as much as possible. So I'm guessing the main problem is small maps and lots of waypoints?
Podbot.cfg (I recently modified it to use as less cpu as possible, imo. But there wasn't much of a difference, maybe like 10%):
Code:
# This is the Pod-Bot Config File (for HL Counter-Strike)
#
# Any line begining with '#' in the first column is a comment line
#
# Make sure no Line exceeds 80 Characters !!!
#
# The following commands are supported in the podbot.cfg file:
#
# All arguments in square Brackets are optional if you don't
# specify them a random value will be chosen
#
# pb add [skill [personality [team [model [name]]]]] - Adds a Bot using
# a Skill from 0-100, personality is 1 Normal, 2 Aggresive, 3 Deffensive
# Team is 1 for Terrorists, 2 for Counter Terrorists and 5 to
# use auto-assign, Model (class-skin) it's depanding on the team
# (same as seen in the class menu for selecting the skin for the
# human players), Name is of course the name for this Bot.
# If you don't specify the arguments, a random skill will be
# chosen (between pb_minbotskil and pb_maxbotskill) and the Bot will be
# auto-assigned with a random Skin and a Name he chooses randomly from
# "Botnames.txt". You can edit this File to add some names you like
# better.
# ! NOTICE: Don't delete BotChat.txt ! It will be used !
#
# pb fillserver [skill [personality [team [model]]]] - Adds automatically
# the bots to the server until reaching by podbots + human_players
# (or other bots):
# a) the pb_maxbots value if it is specified (different than 0)
# b) mp_maxplayers if pb_maxbots is not specyfied (or is equal to 0)
# This sets the Waypoint Folder (in the POD-Bot Directory)
# for loading/saving waypoints. Don't use a trailing backslash or spaces.
# This doesn't work for the first game you create (it has to start from
# wptdefault). But when creating for the second time (or loading with newmap)
# this directory will be used. Default is wptdefault.
pb_wptfolder wptdefault
# Set the value to 1 to turn on welcome messages at start the game.
# Default is 0.
pb_welcomemsgs 0
# Use this to turn on/off the Speech Synthesis <1|0>. Default is 0.
pb_usespeech 0
# These 2 setings below support a minimum and maximum number
# of bots running on a server. They are ONLY LIMITS for the function
# pb fillserver and pb removebots. The actual amount of bots might be
# between those limits (it rely for example on how many times pb add
# command has been used).
# Bots may be added to the server until the total number of players
# (bots and humans) reaches the pb_maxbots value. Each time a new player
# joins the server, a bot will be kicked from the server unless there are
# only pb_minbots number of bots currently on the server. After players
# disconnect from the server, bots will be automatically added back to
# the server until the total number of players (humans and bots) reaches
# pb_maxbots again. pb_maxbots should be AT LEAST one less than
# the maxplayers value (otherwise no one will be able to join the server).
# You can stop this function (auto add/kick bots for entering/leaving
# humans)) by writing pb_maxbots = 0.
# Ths function is also not working in the case if pb_bot_quota_match
# is grater than 0 (in that case amount of bots follow the number
# humans * pb_bot_quota_match - of course in the min/maxbots limit).
# Default value for pb_bot_quota_match is 0.
# Default values for pb_minbots and pb_maxbots are 0 and 16.
pb_minbots 16
pb_maxbots 16
pb_bot_quota_match 0
# Changing the setting below forces bots joining to certain team.
# Useful if You want to have always bots in one team against humans.
# Argument values: "ANY", "T", "CT". Default is "ANY".
pb_bot_join_team "T"
# Changing the setting below forces bots using the specified skin - the same
# for all bots from one team - regardless of pb add or pb fillserver
# parameters.
# Useful if You want to have always bots in one team with the same skin.
# Argument values: 1,2,3,4 - they are forced skins, 5 - default - no forcing
pb_skin 5
# These Settings below specify the Rate (in Seconds) of updating
# some of the Bot Checks. If you've got a slow computer you could
# try changing these to higher values to get some performance back.
# NOTE: This seriously affects the Bots Perception. If you have a
# fast computer you might try lowering them to get even better
# playing results. Default for pb_timer_sound is 0.5, for pb_timer_pickup
# is 0.3 and for pb_timer_grenade is 0.5.
pb_timer_sound 99999.0
pb_timer_pickup 99999.0
pb_timer_grenade 99999.0
# Set this to 0 to disallow Bot Logo Spraying
pb_spray 0
# Set this to 1 to switch on the Free For All mode
# (The bots will also kill their teammates)
pb_ffa 0
# Set this to 1 to switch on the round restart
# after the first human joins the server
# (when bots are playing there in 2 teams)
pb_firsthumanrestart 1
# This Variable specifies if Bots are allowed to shoot through Walls
# if they saw an enemy or if they heard someone on the other Side of
# a Wall (additional Settings are specified in "botskill.cfg"). <1|0>.
# Default is 1.
pb_shootthruwalls 0
# passwordkey - need set as setinfo to get the access to the main podbot menu.
# usage (in the below example You may need to write Your-own passwordkey
# string instead default _pbadminpw - if You changed it):
# setinfo _pbadminpw "your_password"
# That line above should be used in autoexec.cfg on Your client's PC
# or on the listenserver - in both cases that file should be placed
# in the main cstrike/czero directory (depanding on the mod You are playing).
# You can also type it during the game from the client's console.
pb_passwordkey "_pbpw"
# Sets the password to have access to the podbot menu on DS by 'pb menu'
# console command typed in client's admin PC or called from the binded key.
# Example of bind on Your client PC:
# bind "=" "pb menu"
pb_password ""
# This value sets the maximum number of Bots of one team to follow the same
# user(when Radio Command "Follow Me" is used). Default is 5.
pb_numfollowuser 0
# Sets the minimum possible skill level for a bot added with a random skill.
# Default is 95.
pb_minbotskill 100
# Sets the maximum possible skill level for a bot added with a random skill.
# Default is 100.
pb_maxbotskill 100
# This value sets the maximum number of weapons Bots are allowed to
# pickup during one round. Default is 10.
pb_maxweaponpickup 0
# Set the below value to delay bots re-join after new map start.
# Default is 10.
pb_mapstartbotdelay 7
# Set the below value to 1 to enable auto kill bots if all human players
# are dead already. <0|1>. Default is 0.
pb_autokill 0
# Set the below value to delay (in seconds) autokill bots if
# autokill function is enabled (above). Default is 45.
pb_autokilldelay 45
# Set the below value to delay in seconds the bot may stay camping in one
# place before going somewhere else. Default is 30.
pb_maxcamptime 0
# Turns on/off Jason Mode! Meaning Bots don't buy
# weapons and only use the knife for combat! Use this for
# much fun with e.a. cs_estate or cs_office. <1|0>
# Default is 0.
pb_jasonmode 1
# This value sets the skilldisplay and/or the prefix before bot's name.
# 0 - no skilldisplay and no [POD] prefix before the name;
# 1 - both - skilldisplay and [POD] prefix before the name are added;
# 2 - only the [POD] prefix before the name is added;
# 3 - only the skill (for example (100) ) sufix after the name is added;
# The prefixes are: for aggresive bots the prefix is [P*D],
# for normal ones - [POD] and for deffensive ones is [P0D]
# (just zero instead "o" between "P" and "D").
# Default is 1.
pb_detailnames 0
# The setting below specifies the danger factor with which the bots
# will weighten any waypoint where they have been killed in the past,
# in order to avoid it later. The higher the value, the more the bot
# will care about these waypoints and pick other routes instead.
# Progression is logarithmic. Warning: higher values require more CPU.
# Default is 2000.
pb_dangerfactor 0
# Switches to on/off Botchatting. <0|1>. Default is 1.
pb_chat 0
# Switches to on/off (1/0) showing on the scoreboard the string "BOT"
# as a ping or show a fake ping for bots (2). <0|1|2>. Default is 2.
pb_latencybot 1
# Switches to on/off radio command usage for bots <0|1>. Default is 1.
pb_radio 0
# pb_aim_type 1-4 (default 4)
# 1 = inhuman turns
# 2 = constant angle velocity
# 3 = botaim1
# 4 = botaim2
pb_aim_type 4
# VERTICAL (up/down) spring stiffness of the aiming system. This value affects
# the quickness of the crosshair movement, as well as the frequency of
# the resulting oscillations. (default: 13.0)
pb_aim_spring_stiffness_x 13.0
# HORIZONTAL (left/right) spring stiffness of the aiming system. This value
# affects the quickness of the crosshair movement, as well as the frequency of
# the resulting oscillations. (default: 13.0)
pb_aim_spring_stiffness_y 13.0
# VERTICAL (up/down) damping coefficient of the aiming system. This value also
# affects the quickness of the crosshair movement, and the amplitude of
# the resulting oscillations. (default: 0.22)
pb_aim_damper_coefficient_x 0.22
# HORIZONTAL (left/right) damping coefficient of the aiming system. This value
# also affects the quickness of the crosshair movement, and the amplitude of
# the resulting oscillations. (default: 0.22)
pb_aim_damper_coefficient_y 0.22
# VERTICAL (up/down) error margin of the aiming system. This value affects how
# far (in game length units) the bot will allow its crosshair to derivate from
# the ideal direction when not targeting any player in particular.
# (default: 2.0)
pb_aim_deviation_x 2.0
# HORIZONTAL (left/right) error margin of the aiming system. This value affects
# how far (in game length units) the bot will allow its crosshair to derivate
# from the ideal direction when not targeting any player in particular.
# (default: 1.0)
pb_aim_deviation_y 1.0
# Perpendicular influence of the vertical axis on a HORIZONTAL movement. This
# value affects how much (in fraction of 1) the bot will be disturbed when
# moving its crosshair on an axis by the inherent movement on the other axis.
# (default: 0.25)
pb_aim_influence_x_on_y 0.25
# Perpendicular influence of the horizontal axis on a VERTICAL movement. This
# value affects how much (in fraction of 1) the bot will be disturbed when
# moving its crosshair on an axis by the inherent movement on the other axis.
# (default: 0.17)
pb_aim_influence_y_on_x 0.17
# Maximal value in seconds after which the aiming system will re-evaluate its
# ideal direction. This affects how often a bot will attempt to correct an
# imprecise crosshair placement by moving the crosshair inside the error
# margin bounds defined by the botaim_deviation CVARs. (default: 1.2)
pb_aim_offset_delay 1.2
# Fraction of the full speed the aiming system will adopt as speed when aiming
# at nothing in particular. This affects how slow the bot will move its
# crosshair when targeting nobody, relatively to its full speed capacity.
# (default: 0.5)
pb_aim_notarget_slowdown_ratio 0.5
# Fraction of the estimated target's velocity the aiming system will rely on
# when aiming at a moving target. This affects how well the bot will be able
# to track moving targets on the fly, and whether it will have a tendancy
# to aim ahead of it or behind it. (default: 2.2)
pb_aim_target_anticipation_ratio 2.2
# Weapons, equipment and ammo restriction (for buying)
# bit numbers meaning - the left one is the 0 in that string cvar
# Pistols restriction
# 0 - KNIFE
# 1 - USP
# 2 - GLOCK18
# 3 - DEAGLE
# 4 - P228
# 5 - ELITE
# 6 - FIVESEVEN
# Shotgun restrictions
# 7 - M3
# 8 - XM1014
# SMG restrictions
# 9 - MP5NAVY
# 10 - TMP
# 11 - P90
# 12 - MAC10
# 13 - UMP45
# Rifles restrictions
# 14 - AK47
# 15 - SG552
# 16 - M4A1
# 17 - GALIL
# 18 - FAMAS
# 19 - AUG
# 20 - SCOUT
# 21 - AWP
# 22 - G3SG1
# 23 - SG550
# Machine Gun restriction
# 24 - M249
# Shield restriction
# 25 - SHIELD
pb_restrweapons "00000000000000000000111101"
# 0 - vest
# 1 - vest and helmet
# 2 - flashbang
# 3 - he grenade
# 4 - smoke grenade
# 5 - defuser
# 6 - night vision googles
# 7 - primary ammo
# 8 - secondary ammo
pb_restrequipammo "000000000"
# These lines below are adding automatically the bots to the server when
# the new game is created on the listenserver or the dedicated server
# is starting.
# As many such lines like "pb add" is here as many bots will be added
# to the server (unless You will not exceed pb_maxbots setting).
pb add 100
pb add 100
pb add 100
pb add 100
pb add 100
pb add 100
pb add 100
# To prevent put for example 16 lines like above ones, to just fill up
# the server with pb_maxbots, just remove the comment from the line below.
# pb fillserver 100 2 1
# The line below binds the User Menu to the "=" key. Of course you
# can bind this to any key you like.
bind "=" "pb menu"
Our server specs:
Code:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU E5645 @ 2.40GHz
stepping : 2
cpu MHz : 2399.950
cache size : 12288 KB
physical id : 0
siblings : 12
core id : 0
cpu cores : 6
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt aes lahf_lm ida arat epb dts tpr_shadow vnmi flexpriority ept vpid
bogomips : 4799.90
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU E5645 @ 2.40GHz
stepping : 2
cpu MHz : 2399.950
cache size : 12288 KB
physical id : 1
siblings : 12
core id : 0
cpu cores : 6
apicid : 32
initial apicid : 32
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt aes lahf_lm ida arat epb dts tpr_shadow vnmi flexpriority ept vpid
bogomips : 4799.91
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
So basically, the server uses about 80-100% of the first CPU, but there is like 3GHZ free. The ram usage is about 4% only. Is there anything more I can do to lower the CPU usage?