First Person Shooters: "Almost-Ideal "Bot Aiming A.I.

Post date: Jul 02, 2015 10:33:11 AM

I came up with this a few years ago when I came across fuma's CoW tremulous server. While he was still developing the QVM (Quake Virtual Machine, it is where most of the base code work for the server, gameplay, and other mechanics in quake-based games) I forked it to create my Tremulous GPP-1.1 Gameplay Fusion [and later to be suffixed "Arena"] modification. Fuma was the last user the enhance the bot codes for Tremulous (well, aside from me, but all I really did is tweak his code and patched it into my qvm as later features were introduced, basically) which was based on Path-Bot made by Sex/Xembie which was forked from Anime's Trembot and vcxzet's lamebot3 (which were used for the Ambush mod - which aliens only targetted humans and their buildables but no paths were used).

All of the bots until CoW aimed with a maximum angular speed (defined by their "skill level") which made their movements seem very robotic. Fuma introduced into the CoW system an inverse style aiming speed delay so if the user gets behind the bot the bot can turn around quickly and is more prone to missing at long ranges.

However it was still too accurate so he introduced a aim-shake that literally shakes their aim like what you get while holding a chaingun, but varies with certain types of weapons. Interestingly he actually ripped the shotgun code instead (+random times range on X axis take half of that range, +random times range on Y axis take half of that range, where range is multiplied by skill level). He also later introduced an aim-lead system which basically (in the bot's eyes) shifts the target so that if the target was travelling a linear path at a constant speed the bullet would always hit (assuming the aim shake and aim-delay are negligible). This also means, that although unintentionally, they can detect you around the corner if you're moving fast enough, as shown at 0:08 in this video clip from my mod:

Anyway, so my ideas the implement into the "almost ideal" bot aiming system so the bot wouldn't be so aimbotty yet not so crap when exploited:

I tried to demonstrate what the result would be using Stickz (a further developed Pivot stick-figure frame-by-frame animator) but it didn't turn out so well.

I hope your understand, and I'd like to see someone actually code this into a game!

I'd like you to credit me (ZdrytchX) if you use this idea however there is no copyright or patent on this idea.

The "almost ideal" bot aiming system would incorporate a few of these features plust a few other ideas that I came up with, but I lack the coding skills to program into my mod because although I did a great job of modifying my GPP-1.1 QVM a whole lot, it doesn't change the fact I didn't learn programming with QuakeC properly. To be honest, I never even learnt from a proper programming tutorial that benefited me for this context, so I still lack knowledge on things like, well, how the fuck do "for(...)" loops work? I can't be bothered learning now, too busy with life ;3