Hey everybody! Another week, another update for Medical Necessity!
You may have noticed our last Dev Diary showcased footage consisting entirely of cylinders firing at each other, well not anymore! Ben’s been hard at work implementing placeholder animations and sprites so we have more attractive characters to watch as we work. It’s not always necessary to have artwork at such an early stage, but by getting the animations complete, we can tie certain behaviors to those animations and it creates less work down the line.
Speaking of AI behaviors, Carry and Pat have been hard at work finding new ways to improve our AI. In our last Dev Diary, each bot used a “cone of vision” to identify what they could see in front of them. This did its job of simulating a bot’s attention, and the cones of vision are still implemented, but we also wanted the bots to be able to find nearby targets when none are currently in the cone of vision. To that effect, Pat has finished giving the bots “peripheral spheres”, which check the entire area around the bot for other units.
If the peripheral sphere finds enemy targets, the bot will attempt to move to a position where they have a clear line of sight to open fire. (We use raycasting to get the peripheral sphere and cone of vision to honor map obstacles like walls. Raycasting basically causes the bots to fire invisible projectiles every frame, projectiles that stop when they hit walls or other active objects.) This also lets us adjust the AI in such a way that bots will try to move to the most effective range of their equipped firearm.
Speaking of equipped firearms, Carry has completed the shotgun and the sniper rifle, meaning that there are now three working bot types! The original rifle bot has been adjusted to fire in 3-round bursts, and will serve as a “middle ground” between the close-range shotgun and the long-range sniper rifle for positioning testing. We’ll be continually adding new firearms throughout development, but these three will create a good starting spectrum as we continue AI development.
The last major thing we added was what Pat christened the “GameMaster” object. The GameMaster object will keep track of the overall scene and allow us to make changes to the battlefield after the round has started. For example, it lets us restart a round after completion, or trigger scripted events that are dependant on player position or the state of the remaining soldiers.
And finally, just cause I found it hilarious, I thought you’d like to see the results of our first stress test. We wanted to see whether our AI continued to function when expanding beyond the planned 4-5 bots per team, and the results…speak for themselves.
Lag! Lag everywhere!
The bots were overloaded with targets, and they couldn’t decide who to shoot at! Special mention to the impromptu conga line Blue team busted out before being eliminated. We’ll be patching that, of course, but a large part of game development is testing the limits of the system you’ve created. Only then can you find just how far (and how fun) things can get!
If you have any questions about our game or our development, you can always contact me here on The Daily SPUF or on Steam. Thanks for reading, and I look forward to updating you all next week!