These are some of the new lines in FerBotz.ini, (file extension to be changed according to game language setting).
Code: Select all
Object=(Name=Thunder_Crash,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="FACTION")
Object=(Name=Botpack.TMale2,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="CLASS")
Object=(Name=Botpack.TFemale2,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="CLASS")
Object=(Name=SoldierSkins.blkt,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="SKIN")
Object=(Name=SGirlSkins.fbth,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="SKIN")
Object=(Name=BotPack.VoiceMaleTwo,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="VOICE")
Object=(Name=BotPack.VoiceFemaleTwo,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="VOICE")
Object=(Name=65,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="BASESKILL")
Object=(Name=55,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="BASEACCURACY")
Object=(Name=Malcom,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="class=1,skin=1,face=Malcom,voice=1,skill=95,accuracy=80")
Object=(Name=Azure,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="class=2,skin=2,face=Azure,voice=2,skill=85,accuracy=65")
Object=(Name=Othello,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="class=1,skin=1,face=Othello,voice=1,accuracy=70")
Object=(Name=Riker,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Riker,skill=100,camp=30")
Object=(Name=Aryss,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="class=2,skin=2,face=Aryss,voice=2,skill=75")
Object=(Name=Annaka,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Annaka,weapon=Botpack.Ripper,skill=70,accuracy=60")
Object=(Name=Tamika,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Olga,skill=70")
Object=(Name=Ryanna,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Ryanna")
Object=(Name=Jayce,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Olga")
Object=(Name=Arys,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Aryss,weapon=Botpack.Ripper,skill=75,accuracy=65")
Object=(Name=Dovienya,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Ryanna,weapon=Botpack.UT_Eightball,skill=80,accuracy=70")
Object=(Name=Ghenghis,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="class=1,skin=1,face=Othello,voice=1,weapon=Botpack.UT_Eightball")
Object=(Name=Deslok,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Malcom,weapon=Botpack.PulseGun")
Object=(Name=Skirge,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Malcom")
Object=(Name=The_Corrupt,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="FACTION")
Object=(Name=Botpack.TMale2,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="CLASS")
Object=(Name=Botpack.TFemale2,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="CLASS")
Object=(Name=Botpack.TBoss,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="CLASS")
Object=(Name=SoldierSkins.hkil,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="SKIN")
Object=(Name=SGirlSkins.fwar,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="SKIN")
Object=(Name=BossSkins.Boss,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="SKIN")
Object=(Name=BotPack.VoiceMaleTwo,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="VOICE")
Object=(Name=BotPack.VoiceFemaleTwo,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="VOICE")
Object=(Name=BotPack.VoiceBoss,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="VOICE")
Object=(Name=68,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="BASESKILL")
Object=(Name=Xan,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="class=3,skin=3,face=Xan,voice=3,skill=95,accuracy=80")
Object=(Name=Matrix,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="class=1,skin=1,face=Matrix,voice=1,skill=85,accuracy=65,weapon=Botpack.Minigun2")
Object=(Name=Vector,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Vector,accuracy=65")
Object=(Name=Tensor,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Tensor,accuracy=65")
Object=(Name=Cathode,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="class=2,skin=2,face=Cathode,voice=2,skill=75,accuracy=80,weapon=Botpack.ShockRifle")
Object=(Name=Silicon,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Lilith")
Object=(Name=Divisor,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Fury")
Object=(Name=Enigma,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Fury")
Object=(Name=Function,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Lilith")
Object=(Name=Fury,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Fury")
Object=(Name=Lilith,Class=Class,MetaClass=FerBotz.Botz_FactionInfo,Description="face=Lilith")
PS: It already works...
Testing 5v5v5v5 (15 botz, 5 bots) on Deck16][ team deathmatch, 26-45 ms per frame spent on actor processing (0.5 - 3 spent on rendering) on my 2.00 ghz E2180.
That's a quite high CPU consumption there, I might do some more optimizing later, starting with traces, BotZ does a lot of them nearly every frame.
Some of the previously applied optimizations consisted on controlling CPU expensive operations by not executing them in every Tick, some do every 2 ticks, others every 8 or so.
Posting some screenshots...
CPU expensive function usage is called dynamically in a distributed way among all BotZ, they will cease to call some functions if FPS fall below a certain value (depends if server or standalone).
Good thing is, actor processing time went from 20-40 ms (15 botz) to 8-12 ms (31 BotZ) without losing geometry detection and advanced routines.
Next update will be a must for less powerfull machines or dedicated servers.
On servers, BotZ won't hog CPU if FPS below 20.
On listen servers or standalone games, FPS will be kept above 60.