Chris Park – AI War Interview Part One

Chris Park – AI War Interview Part One

Chris Park is the mastermind behind space based RTS AI War. I recently had the chance to talk with Chris about many subjects relating to AI War and Arcen Games. Chris was also kind enough to share some screenshots from the upcoming version 2.0 of AI War which features some new visual effects.

The ReticuleCan you describe AI War in a few sentences for those unfamiliar with the game?

Chris Park – AI War is a space-based RTS game, which is played solo or cooperatively with up to 8 players. It’s best described as the start of a new strategy subgenre, with aspects of tower defense, grand strategy, and 4X. The scope of the game is unparalleled: games commonly have 30,000 to 60,000 units in the galaxy at once, featuring battles of several thousand ships at a go. And lastly, the AI — the namesake of the game, after all — is some of the best and most interesting around, using methods not seen in any other RTS titles

RaidStarshipAlmostDead

TRTalking about the AI, what aspect of it do you feel sets it apart from what you find in other RTS titles?

CP – The technical aspects of this I have written about at great length on my blog, and I’m actually going to be discussing this in a live interview at AIGameDev.com in a few weeks. But the bulk of those resources are really geared toward other game developers and AI programmers, since I’d like to see these methods make it out into other games in the industry. The short version for non-programmers is that basically I ignored the bulk of existing AI methodology and used methods from my background as a database programmer.

I’m a very experienced programmer, but AI isn’t one of my strong suits or part of my professional background. In the context of RTS tactical decision making, I thought that I might be able to get a better result with less work by applying data mining techniques, and it turns out that I was right. I paired that new concept with a number of existing AI methods (emergent principles, and fuzzy logic), and the result was an AI that I coded in record time (the basic AI only took around 3 weeks to develop), and which acts far more intelligently in the main. I also had a few key realizations about why it’s not good to perfect AI routines past a certain point (the AI becomes too predictable), and why sometimes the slightly-wrong choice is the best choice in practice (the element of surprise is both tactically relevant, and makes the AI seem more human-like). There were a number of other important decisions, as well, such as making the AI truly asymmetrical and skipping the economic simulation for the AI as a low-return use of CPU and my time, but those are topics which take pages and pages to fully explore.

SmokingCommandStation

TRI must say that sounds very interesting, I never imagined that your experience as a database programmer would lead you to creating such a robust AI. How important do you think the your AI is to the game?

CP – Well, honestly, I feel like the AI is the central feature for advanced players. Certainly, the game has to be fun in itself, and all of the other aspects of the game’s design are also critical. These other aspects are what most reviews touch on, and what tend to be lauded by your average player. However, that said, there are a ton of RTS games out there that are fun to play or innovative in this or that way. The key weakness that they almost all share, in my opinion, is AI that falls apart in advanced play.

I’ve been playing RTS games cooperatively with my dad and uncle since around 1998, and one of my uncle’s colleagues has become a regular as well over the last few years. Each RTS game we played, we loved for a while… but after 6 to 12 months, we were done with that game forever, because we’d figured out the AI to the point where it was no longer fun. So then I’d have to go scour the demos and reviews, looking for the next RTS fix that might be able to sustain us for at least that 6 to 12 month span. With the focus being so squarely on competitive multiplayer in most of these games, viable candidates were few and far between, and I passed over a lot of great games simply because their game design and AI didn’t seem like it would hold up over the long haul.

So, my number one goal with AI War was to have an AI and a design that would keep me and my play group interested for longer than that 6-12 month period. We hate switching games, even though we so frequently did, because often we really liked the games we were giving up, and felt like we were never really getting all of the true potential out of any given title. That was always a big disappointment. With AI War, we’ve had a growing following of hardcore players over the four months since our release, and they all are playing solo or co-op of course (since those are the only modes we support), and many have expressed that the reason they are still playing the game at this stage is the AI, not only how good it already is, but how it continuously evolves as I add in more rules and counters in each new version of the game.

TRI have to admit on thinking about it, that RTS AI is generally pretty poor, I guess that is because of the growth of competitive multiplayer gaming. AI War supports some pretty impressive co-op figures, up to eight players battling the AI at once. Do you think it is the strength of the co-op play that is causing AI War to build up a larger following?

CP – Well, I think that co-op play is one factor. I think that’s an underserved market, and I think it’s a market of growing importance as gamers get older, start families, etc. Most of my core fanbase is in the 24-35 age group from what I can tell, which is older than perhaps the norm for most games. Gamers of that age (my age) have different priorities than we did 10 or 15 years ago. So, for a lot of people, co-op is a key selling point for AI War.

But here’s a little-recognized fact about multiplayer in general: most people play single-player, even in multiplayer-heavy games. To confirm this, all you have to do is look at the number of units sold of a given popular title, and then look at how many registered users there are on the main matchmaking services. Of course that wouldn’t capture people playing LAN or direct-connect with those titles, but still the numbers are staggering. Some titles that sell multiple millions of copies have less than 100k players registered on their online services, and many have 20k or fewer. Of course, that’s an anecdotal statistic and not hard data, but it matches what I’ve seen with AI War, and what I’ve read in comments by developers of other games. The vocal minority is the competitive multiplayer crowd, but there is a largely-silent majority out there that is simply interested in solo play. Interestingly, many of the design parameters for solid co-op also hold true for solid singleplayer: robust AI is equally important in both cases, for instance.

MassiveExplosion

TROne of the highlights of the game, apart from the co-op and AI, is the massive battles you can orchestrate, how did you manage to pack so many units on the screen at one time?

CP – Well, this was not really originally part of the design for the game. I knew that I wanted to have lots of ships in the game, but I thought I’d have to resort to some trickery such as showing three units but only counting them as one (as in Rise of Nations and similar). But, as development progressed and I continuously optimized the render and simulation pipelines, larger and larger unit counts became possible until we were standing far above what anyone else in the genre is doing in realtime. Setting out to create the game, I hadn’t believed it would be possible to have more than 10,000 units in realtime, and I thought even that might be a stretch, but fortunately I couldn’t have been more wrong.

A big part of the secret to our high unit counts is the fact that the game is 2D. I knew from the start that I wanted the game to be 2D, because I like 2D games and that’s what I know how to program, but what I hadn’t immediately considered was all the CPU/GPU cycles that simple change frees up. So, I put those cycles to use in creating a grander scale than ever seen before in RTS.

Of course, that’s only half the story — I was still topping out at 20k to 30k units before the game started chugging for a good while there. That’s where the relentless, endless, optimization came into play. Having set the game in space certainly also helps, because there are simplified collision and pathfinding concerns, again freeing up CPU. But on the flip side, we have an extremely sophisticated autotargeting routine that is part of the main simulation thread, and that’s something that eats up a huge amount of CPU power (and is compounded by having more and more ships). There are literally millions of calculations the game has to make per second in order to make that simulation run, and I’ve spent a lot of time optimizing that over time, also. We actually lowered our minimum system requirements by 800MHz a couple of months after our initial release because I stumbled across a few key improvements that more than doubled the throughput of the central simulation engine. Even now, I’m always looking for a way to improve the simulation efficiency, but most gains are more incremental in nature, or simply allow me the leeway to include some complex new feature.

Check back tomorrow to hear more from Chris where we talk about his plans for the future of AI War and other games in development at Arcen Games, 2D Games and more.

Comments are closed.