Building Exospecies AI: Singularity, Schmingularity

Plan A

Exospecies was always meant to have a computer player (aspirationally called AIs in the game business)…eventually. I figured I’d launch with only multiplayer (i.e. human vs. human play) since writing a good computer player for a strategy game is notoriously hard. Really, beyond notoriously hard (witness Google’s Go AI). I don’t have PhD’s on my team and I don’t have one. I was going to need time to write a decent AI Plus: people are more interesting to play against, right? So my plan was, launch multiplayer, then build an AI, then launch that. It gets the game in the market quicker, I get feedback from real humans playing (which will surely be more challenging than people playing computers), and then do the AI player when it is clear what strategies are being developed by humans. This plan also gave me the runway I’d need.

Plan B

What I discovered (and was told by basically everyone in the industry, like “Wow, multiplayer only, huh? Gutsy.”) is multiplayer-only games are hard to succeed with. Some reasons:

Having a computer player gets rid of a bunch of roadblocks and fills lots of gaps.

What finally pushed me over the edge to slip Exospecies until it had an AI was my beta feedback coupled with early reviews. The feedback was essentially: “I want to play the computer to learn, and I want to play the computer when nobody else is around, and you really need a computer player. Really.” It was loud and clear, and it only took me running up to the final launch week and getting some blistering reviews to get it through my skull (more on that later in a postmortem).

The Quest

While there is an enormous amount of information on the Internet and in books about AI techniques across the spectrum from pure research to practical use in games. However, I kept going down dark holes and having a real challenge figuring out either how algorithms work, how to implement them practically, or even how to understand the academic literature. I thought that writing up a blog might save someone else the anguish later and help me collect my thoughts. I thought it might also be entertaining to see how a naive developer gets slapped around by a really hard problem and then rises above it all in glory! (that’s how I’m hoping this ends).

Follow along as I learn and attempt to explain the amazing world of AI as applied to game development!