Article
i/2008/03/broken_egg

29 Reusable Excuses for Game AI Programmers

Alex J. Champandard on March 27, 2008

If you’ve come here for a humorous collection of pseudo-quotes from a variety game development projects, then you’re probably in the right place! Also expect to find a list of excuses you can reuse and apply straight into your studio — whether you need to buy yourself some time, offload the workload to someone else, or simply blame other members of your team for a change!

Of course, if you have any personal favorites or additional excuses that you use when developing artificial intelligence in games, feel free to post them in the comments below.

Designer Relations

As a programmer, the first place you can turn to for excuses is the design document, or whichever medium you use to write down the project’s requirements. So when someone asks you about a potential bug, here’s what you can say:

  1. It’s what the design says the behaviors should be.

  2. There’s no design for that part of the AI.

  3. Why would you want it to behave that way?

  4. That’s actually a new feature!

Data Driven Bugs

With the advent of data-driven game engines, there are also plenty of opportunities to blame parts of the game that are not compiled source code. Here’s what you can tell your producer or project manager:

  1. That’s a scripting bug; check the logs for warnings.

  2. It’s a problem with the animation data.

  3. Someone messed up the level annotations.

  4. Not sure where the problem is, but chances are it’s the data.

  5. The assets weren’t exported correctly.

Third Party Problems

With developers using middleware increasingly and larger teams building game engines, it becomes much easier to blame other programmers for any kinds of bugs.

  1. It’s known bug in a 3rd party library.

  2. Ask the animation or tools team!

  3. The physics simulation doesn’t support this.

AI Logic

When you start diving in to the logic behind the AI, there are lots more excuses you can rely on as things get complex pretty quickly. Use that to your advantage:

  1. The underlying theory is sound.

  2. It’s too complicated for you to understand.

  3. How did this ever work?

  4. It just can’t be done!

  5. This can’t be fixed without that breaking.

Testing

With game worlds becoming more open and sandbox like, the AI also becomes more emergent. That makes it increasingly hard to test in practice. Here’s how you can make the most of that:

  1. I can’t reproduce that problem.

  2. It’s not a bug, it’s an emergent behavior!

  3. It didn’t need testing since it was such a simple change.

Build & Deployment

With large teams, building and deploying projects can get difficult too. It takes time for other team members to get up to date. This is how you leverage this fact:

  1. It’s not in my build.

  2. That’s weird, it’s never done that before.

  3. It worked yesterday!

Hardware

With game development increasingly focusing on the concurrent architectures inside consoles, and PC hardware becoming increasingly exotic, there’s lots of room for excuses here too:

  1. There’s just not enough computation power to solve this problem.

  2. Too little memory is available to store the required information.

  3. It’s a synchronization problem between the cores on the Xbox 360.

  4. Nobody else gets SPU programming right on the PS3 either.

Workflow

What’s left? A few excuses relating to working methods and daily routines:

  1. That’s been fixed already; try getting latest.

  2. I was busy reading AiGameDev.com’s amazing RSS feed.

If you have any additions, feel free to post them as a comment below and they’ll be added into the list too!

Discussion 0 Comments

If you'd like to add a comment or question on this page, simply log-in to the site. You can create an account from the sign-up page if necessary... It takes less than a minute!