I haven’t got to design an AI since…well 2006. It’s been a long time and the Stardock games team of 2013 is insanely awesome and the tech is just amazing too.
Now, I programmed the AI in Legendary Heroes and helped on the AI in Fallen Enchantress (I wrote worker functions for War of Magic). But I haven’t got to sit down and make something from scratch since GalCiv II.
And wow, things are so much better now. Virtualization, lots of cores to handle threads (GalCiv II was written for a single core with 1 hyperthread). The things I can do now are, well they’re just plain sick.
While I am quite proud of the AI in Fallen Enchantress: Legendary Heroes, it was something I had to retrofit onto Elemental: War of Magic. It was a miracle to get it to work as well as it does because War of Magic was single threaded. I had to make it multithreaded after the fact (if there are any programmers here, please feel free to comment to explain how nasty that is).
In GalCiv III, the AI is able to operate on a virtual machine version of the game state. So I can monkey around in real-time without it affecting other players. I can not only have every computer player have its own thread, I can have different components of the AI have their own threads and in multiplayer, I can distribute the work up across the different players.
There’s a lot more too. From crowd sourcing ship designs, tech tree strategies, planetary improvement strategies, etc. to throwing raw number crunching stuff onto the player’s video card. We’ve come a long way from 2006.