I just finished reading a really good 6-part blog post about game design, emergent behavior, and artificial intelligence by the creator of the game AI War.
A quick overview of AI War stolen from the wiki for the game:
Cooperative RTS (real time strategy) game (1-8 players) with numerous unique ship types.
Challenging AI in 26 styles, 20 additional with the first two expansions; many with unique superweapons.
Insanely high unit counts: 30,000+ ships in most games.
Lengthy campaigns featuring up to 120 simultaneous planetary battlefields.
Different Every Time: 16 billion procedural maps, each with specific units.
A focus on deep strategy that you don’t get in most RTS games.
The blog goes into his general design approach which is different from many other RTS games on the market. Most AI in this genre seeks to imitate how a human player would act, and is usually easily exploited or has to cheat to offer experienced human players any challenge. The developer of AI war took a different approach, instead of trying to imitate human players he just tried to create a challenging adversary. Instead of fighting a poor imitation of a human player, its like fighting skynet.One of the most interesting parts of the blog series was the type of AI he used for individual units. He explains in the post that the traditional mechanism for creating AI is to use branching decision trees. So if situation A occurs do action C, if situation B occurs do action D.
In AI war when enemy ships jump into a solar system they have to determine which targets they want to attack. Instead of using branching decision trees, he created a preference system for targets. (what follows is a general idea of how it works, but the creator would probably cringe if he read my description) For example an expensive player factory may be worth 5 points while a cheap one might be worth 3 points. If the expensive one is defended, that is minus 2 points. If the cheap one is vulnerable to the type of damage that a ship does, that is plus 1 point. Add in a bit of randomization and fuzzy logic (changing how many points get added or subtracted) and you get a fleet of ships that is very responsive to a situation.Reading the blog gave me a little more hope for my own project of making economic simulation games. My first introduction to programming had me looking at decision trees, and that had me very worried. It has also made me re-think exactly how I should approach a game. Trying to predict humans is the fatal flaw of any policy maker, and perhaps trying to imitate them is the fatal flaw of game AI programmers.
I am almost 3 months into my first programming class (we are learning python), and I am starting to grasp some of the difficulties in programming sporders. I wanted to share a couple of my thoughts on the subject:
First, a reminder of what we are trying to accomplish:
The overall goal is to facilitate the emergence of a spontaneous order through human interaction in a video game medium. Sporders are a relatively common occurrence in video games, but when we create one we want to be consciously aware of what is happening, and be able to observe the process. By understanding what is occurring, I hope that we can repeat the process in the future (thus making is possible to do basic hypothesis testing).
Second, what are the troubles that might arise when trying to create a Sporder:
Sporders often take something simple and build upon it to make it more complex. Programming has been a process of taking a complex problem and breaking it down into simple code-able components. They are at odds with one another. When I think about how to make a sporder I often just find myself replicating each individual process that the sporder has created. In the end I have something with the functionality of the sporder, but none of the adaptibility that makes them interesting. I didn’t realize just how pervasive design bias is unless you try and program something.
Another problem is that I should have started learning how to program five years ago. Learning code is a process very similar to learning a new language, but with none of the forgiving ears of an actual human. Luckily it is an enjoyable process, and I often get the same satisfaction that I would from solving a difficult puzzle.
Third, and finally, some good news:
One of the programming assignments for my class involves creating Conway’s game of life. =)
Below is a quote from a website of one of the major alliances in EVE online. Their plans are to crash a part of the EVE economy by cornering the market for an essential fuel. They speak in a lot of lingo, but that is the basic jist of their plans. This is fully within the games rules, and I’m guessing that the developers will not intervene.
help release this pubbie from his eternal burden. by suicide bombing him.
It’s time to inflict Goonswarm’s rage on Empire once again. Jihadswarm was a way for Goons to cause suffering and rage in unsuspecting pubbies, who (naturally) had no idea that they could be hurt in empire space. Unfortunately, Jihadswarm had few lasting effects on the EVE universe. By hitting everywhere, it failed to hit hard enough in any one spot. That all has changed now, as the finance team has come up with a way to hit a small slice of empire space, and yet have a much larger impact. The isolated pain of random pubbies is not enough. It is time for Goonswarm to hurt everyone in EVE, and so reap the misery of a wronged universe.
Back in 2008 mineral prices in EVE online reached an artificial bottleneck that the developers had not foreseen. The problem was fixed soon after it was recognized, but the story itself highlights how interconnected artificial economies can become.
There are some basic gameplay aspects that need to be explained before I can proceed. First of all most of the goods in EVE online that players use are produced by other players. These goods are constructed using 8 basic mineral types. The minerals can be sold on markets just like any other good, and their prices tend to dictate the costs of all player made goods in EVE. The most common mineral type is named Tritanium. It is required for the construction of just about all goods, and it is traded in large quantities everywhere in the EVE universe. Continue reading →
Before I came to the sporder blog, I had just started my own blog about the economics of EVE online. The blog has been discontinued, but I have a couple of relevant posts that are worth sharing with the sporder readers. Below I have posted my post on describing the role of developers in managing virtual economies:
I wanted to take a break from my analysis of EVE online, to take a wider look at the MMO market. Specifically, what kind of incentives drive the design choices of MMO developers. The most obvious thing to point out is that these are profit driven companies. This would normally be the end of a public choice discussion, but for economic actors within virtual worlds the developers face a less simple set of incentives. This article will hopefully clear up what incentives developers face, and why it is unique. Continue reading →
We’re making it happen. ”Sporder,” is short for “spontaneous order” and is used to describe any scenario where such an order can be found. It’s catchy, economical, and intuitive and it requires but 2 syllables as opposed to 7. We have come up with a precise definition for a sporder, as well as categories the various types of sporder found within our universe. Continue reading →
It was once a goal of mine to create a basic economic simulation. I wanted to recreate the process of actual markets. I never got to the point where I realized how difficult this would be. Luckily for me Ryan Safner had a similar vision, and had worked much longer than I had to create a world with an integrated economic system. He realized, and I have come to realize, that to create a working economy there has to be an efficient, effective, and motivated feedback mechanism. The easiest way to achieve these goals is to introduce a human element to the system. Continue reading →