I’m a big fan of Artificial Intelligence in games. One of my most memorable moments in gaming was in a game called Wolfenstein 3D, by id software, when I was flanked by an enemy soldier who came through a side-door and killed me. I quickly learned that this was just a coincidence and that the enemy just used a random door, but the desire to create intelligent opponents stayed with me.
In 1999 I had the opportunity to work on a PC game to commemorate Pac-man’s 20th anniversary. The AI in the original Pac-man is impressive in both its simplicity and its effectiveness, and I have great admiration for the programmers of the original as they created an amazing game without the tools games developers rely on today. But I thoroughly enjoyed building upon the AI of the original to create opponents who could pursue the player, but also make ‘mistakes’ convincingly so as not to look stupid when it was really giving the player a chance.
After working on a few more titles, and contributing to a couple of books on AI, I had the opportunity to specialise in Artificial Intelligence and worked full-time on the AI systems for Ubisoft’s Rainbow Six: Vegas and Microsoft’s Hydrophobia. It was amazing to be able to concentrate on AI systems to make convincing team-mates, enemy and civilians.
I really wanted everyone to have a lot of fun creating AI with the Shoot Em Up Kit but the challenge was combining ease of use with flexibility. The solution was to provide a series of core AI behaviours, such as Chase or Fire, which each have a small number of settings to tweak, and then allow these to be combined to provide more complex behaviours.
Team behaviours are also supported so that enemy can be grouped and work together on a common goal, and NPC Generators allow AI characters to be spawned when certain conditions are met (time, proximity, maximum number, etc.).
With this range of tools I hope everyone will experience the thrill of seeing characters come alive and the strange sense of satisfaction when you are defeated by your own creation.