Introduction

Be sure to check out AiGameDev.com if you're interesting in Game AI Programming. Also see the Game AI Newsletter.

So your next door neighbour has let his pet Yorkshire terrier run wild and you need something to keep you busy until the threat is neutralised, or your girl-friend constantly beats you when you play death-match and you want to get revenge... Then you've come to the right place: bot artificial intelligence is just what you need!

Motivation

It's very likely that you've played a first person shooter to death, and instead of letting the addiction ruin your life, you decided to redirect your passion to something more constructive. Aside from being extremely fascinating, AI is also a very cool branch of science where the sky is your limit... Indeed, there are many different kinds of behaviours you can program into your bot, each of which will potentially make it act in a more “clever” human like fashion.

That said, not only hobby programmers are tackling game situations. Some top accademic researchers are admitting that games - and first person shooters among others - are ideal for the development of advanced artificial intelligence, and notably machine learning techniques. Indeed, they provide an ideal framework, with a complex environment which is very well suited to the development and improvement of AI technology. This is a bit of a radical leap from the old 2D 'agent' simulators that we're used to seeing, but I'm sure it's for the best!

See John Laird's Artificial Intelligence & Computer Games Research web page for some information about the motivation for using games in accademia. Specifically, the second link down.

Overview

This tutorial will start by looking into the different approaches that you can take when creating a bot for a first person shooter. Specifically, the server side approach, the client side approach, and finally a game interface approach.

We'll then consider which engine is best suited to bot development, and we'll look into three top games that are all worthy choices: Quake 2, Half-Life and Quake 3. Once that's been done, we'll analyse what information exactly the engines provide, and how it can be used by the artificial intelligence code.

The next section will consider applying the client side approach to creating a Quake 2 bot. Everything you need will be detailed, and you will be explained the steps to start creating your own bot. In a similar fashion, we'll then tackle Half-Life, and show how to create a third-party bot based on a bot template.

Finally, we'll draw conclusions from all this, and point you in good directions to get you started

Remember you can visit the Message Store to discuss this tutorial. Comments are always welcome!. There are already replies in the thread, why not join in?