I'm back at work after an enjoyably-hectic multi-week holiday.
One of the things I did over my holiday was to play a computer game, which I haven't done in a while. This particular game was King's Bounty: The Legend. I've been enjoying this game immensely, as did my father. In fact, I've been enjoying it enough that I might consider giving Armored Princess a try, once it is released (is it already released?).
Anyway, one of the things that fascinates me about computer games is the programming challenge of implementing a computer opponent. I've followed the work in this area for many years, and have even taken a few tries at programming computer opponents myself, once in the context of a railroad strategy game called 1830, another time in the context of random dungeon creation algorithms in a NetHack-style dungeon game. Of course, this is a huge and deep field, filled with lots of fascinating sub-problems.
So it was a delight to stumble across this fascinating presentation by one of the game designers at Valve, discussing some of the ideas and concepts behind the automated computer opponents and automated computer team-mates in the Left 4 Dead game.
The game itself may not be your cup of tea (it's a shoot-em-up game with a horror/zombie theme), but the presentation is mostly about issues that translate well across a wide variety of games, such as how to model unpredictability, how to construct co-operating actors, and how to provide re-playability.
If you're at all interested in what goes into the underlying logic of providing computer player behaviors in a modern game, I'm sure you'll enjoy reading through the presentation.