Sunday, December 30, 2007

Artificial Intelligence is Hard!

For the past six years, I've been working on a "little programming project" called BrainWorks. It's a full rewrite of the Artificial Intelligence for Quake 3. (Check out the side panel for links to the release and source code.) Before I started in 2002, I had done some work on other game modifications for Quake 3, including one of the first Real Time Strategy / First Person Shooter hybrids, Art of War. I quickly realized good AI was crucial to any team game, and became increasingly unhappy with the level of intelligence in the basic Quake 3 release. And with that, I set out to create a good framework for AI in Quake 3. My original plan was to fix up the code and I estimated a mere 6 months for this work. As I spent more time in the code, however, I realized something crucial:

Artificial Intelligence is hard!

And large portions of the original AI code were architecturally flawed from their foundation. To really do a good job with withe First Person Shooter Artificial Intelligence problem, I would have to start from scratch. Six months turned into six years, much longer than I'd have liked, but the work on BrainWorks has given me insight into a wide variety of issues in both real and artificial intelligence. In this blog I'm posting about the different problems I encountered, how I solved them, and what this says about intelligence. The focus is artificial intelligence, of course, but there will also be discussion about human intelligence and the nature of God and the universe. I started BrainWorks as a devout Christian and as I finished the project, I am now an agnostic. The work on BrainWorks was instrumental in changing my theological perspective, but I'll save that topic for another day. For now, I'll leave you with the one axiomatic belief that influenced everything in this project and defines the way in which I view the world:

There is a cause for everything that occurs.

In other words, I believe in causality. Causality is the foundation of all intelligence, both genuine and artificial.

5 comments:

Anonymous said...

Ted, I am so looking forward to hearing your stories about the work on BrainWorks.

Anonymous said...

Hi mate,

Just wanted to let you know that both myself and my friends LOVE your new bot code. We love a challenge and the old Q3A bots just don't cut it. Thankyou for all of your hard work. I'd love to hear more about the issues you faced in designing brainworks.

Keep up the great work and we eagerly await the next release!

Anonymous said...

Congrats on the release, and I really look forward to future posts :D

Aaron said...

hey Ted,

Im looking forward to when you expand on causality and how this led you away from being a devoute Christian.

It has been a fascinating read so far, and I can't wait until the next post.

Determining weapon use based on an enemy players estimayed health is really smart. That's a whole level of play I never would have thought of.

Anonymous said...

The focus is artificial intelligence, of course, but there will also be discussion about human intelligence and the nature of God and the universe. artificial intelligence future