Jon Orwant's EGGG: Automated Programing for Game Generation (IBM Systems Journal) is about generating games from a high-level (abstract) language. The cited paper is based on his dissertation (MIT, 1999). This is interesting work for many reasons; one aspect is that in order to design such a language, you need to worry about the features of games.
Jon describes EGGG's purpose as:
(letting) designers describe games in as few words as possible, while still retaining the precision that the underlying engine needs to render the language. The language is expressive (users can create almost any kind of graphical two-dimensional game) and concise (statements are short and powerful; debugging is easy because users can see the entire game on one page)...
Jon gives the design criteria as follows:
- Game descriptions should be brief.
- Easy games should be easy to generate, and hard games should be possible to generate.
- The EGGG engine should contain as little a priori information about particular games as possible. It should be easy to create variations.
- The EGGG engine and the games that it generates should be portable across platforms.
- The games generated by EGGG should be easy to modify.
- EGGG should not take a long time to generate games, and the games that it does generate should not run so slowly that playability is affected.
It turns out that Ramesh Srinivasan et al. (MIT Media labs) have an idea of a Community Compiler. Their idea is based on Orwant's work in as much as they hypothesize a similar high-level language that could drive generation of "communityware".
Ramesh sees EGGG as important for several reasons. One of which is that it decouples the rules of a game from its implementation. With a Community Compiler, they imagine empowering participants with the ability to experiment and iterate on community design. Or in their words:
we hope that community members engage in the “iterative process of trial and error” and achieve fluency about the domain: their community.
Echoes of Lambdo-Moo perhaps.
Is a hypothetical "virtual world compiler" powerful because it could on the fly generate customized worlds for communities of participants. An uber instancing machine? For those of you familiar with John Arras' work, he has demonstrated at the last two MUD-Dev conferences work with automatic world generation algorithms. Here, I imagine there to be a fundamental similarity and yet a basic difference: should community be first shaped by world, or vice versa?
Blimey, I missed something there - I didn't know there were CD-ROMs of the MUD-DEV conference presentations. Where can I get mine?
Richard
Posted by: Richard Bartle | Jun 24, 2004 at 05:27
One nice thing is the likelihood that both natural and human systems evolve according to similar dynamics. I haven't looked into Arras' stuff, but I thought one could easily posit an environment (the jungle) and seed it with societies (the animals) and allow selective survival to determine the shape of the resulting communities. Wouldn't an NPC society formed by dynamic evolutionary pressure almost certainly seem very realistic to players? Simple evolutionary algorithms might be a key to self-generating game worlds. I wonder if this EGGG thing seems almost too sophisticated.
Posted by: Edward Castronova | Jun 24, 2004 at 10:29
Evolutionary algorithms can be used to create circuits, or even simple robots to perform a given task. There's awesome potential there, for many fields.
Of course, players don't want NPCs to be realistic... But it could be used to create "good" NPCs, if one could ever define what that is.
Posted by: Staarkhand | Jun 24, 2004 at 11:24
This is fascinating stuff, especially when you attempt to wed it with approaches to games as expressive works of art/text. I think the efforts of the ludologists have been, in part, aimed at breaking down game play into rules-based approaches. (I still haven't read the Zimmerman/Salen book, but I would guess, based on hearing Eric talk, that he takes the same kind of elemental approach to the structure of game play.)
Orwant's process approach, if you mapped it onto, say, the creation of novels, would reveal certain formal elements of plot, character, dramatic tension, etc., that could be identified (or identified as lacking) in all novels. But obviously, that kind of Neo-Aristotelian approach to textual interpretation is a critical method, but not really a (reliable) machine to produce interesting new novels -- and arguably it misses the potentials of text by attempting to formalize the interpretive process.
How do games differ from novels? Well, the ludology camp (if there really is one), has been arguing that games are primarily about rules governing iterative processes. (Dave Myers has taken a similar stance, classifying games into genres that rely on iterative processes of signification.)
But while you might (perhaps, in some ways) reduce chess, basketball, and Space Invaders to generative rule sets in a way that you can't reduce novels, I would question whether the MMORPG might not fit as easily into Orwant's scheme as other genres. The core activity of the MMORPG is not just "game" activity -- a lot of it is social and creative activity.
So in my opinion, there are two problems with reducing VWs to tweakable rule sets. First, you can't reduce creative and social activities to rule sets -- or at least the thing that you get when you do so is the process of LambdaMOO-style governance, which is unpredictable and requires community involvement to exist. Second, there are limits to the generative possibilities of rule sets. In other words, I can tell you all the ways you can use a paintbrush, but I can't generate a Van Gogh by doing so.
Posted by: greglas | Jun 24, 2004 at 11:38
I'd also recommend searching the archives over at Grand Text Auto (on blogroll at right) for terms such as "generation" -- the whole notion that you could use AI to generate IF narrative is sort of the GTA motif. VWs don't align precisely with IF narrative concerns, but a lot of the theory seems to map pretty well.
Posted by: greglas | Jun 24, 2004 at 12:13
Edward>Wouldn't an NPC society formed by dynamic evolutionary pressure almost certainly seem very realistic to players?
Sure, you'd get a fully plausible and consistent society. But, where's the advantage? If you drop it into a static world, the inability to effect change will still make it behave just as poorly through the limited interaction.
And maybe you save some time by creating it programmatically -- but what did you really get? The intent of natural algorithms is to find steady states. That is, you skip all the tension, drama, and conflict that happens prior to equalization -- sounds to me like we'd miss the best parts.
Now if we're talking about leveraging natural algorithms to help the world react consistently with player-effected change as the game happens --well that sounds interesting. Indeed it was fascinating before the ecology was overcrowded for business purposes to the point that it had to be removed (Yes, I'm looking at you, EA)
Posted by: weasel | Jun 24, 2004 at 12:44
Edward Castronova>Wouldn't an NPC society formed by dynamic evolutionary pressure almost certainly seem very realistic to players? Simple evolutionary algorithms might be a key to self-generating game worlds.
I think systems can be used to generate worlds, but when I attempted to do this, I used a large number of fairly complex systems to manage things. I'm not sure if it's possible to create a "simple" system that will perform all of the things needed to make a decent simulation. This is the case, at least for "intelligent" populations. For animals of some sort, then I think certainly simple algorithms will handle things since we don't expect as much from them.
Weasel> The intent of natural algorithms is to find steady states. That is, you skip all the tension, drama, and conflict that happens prior to equalization -- sounds to me like we'd miss the best parts.
As I wrote above, one of the keys to writing the code was to solve a large number of problems and interconnect them into a giant system. The world doesn't have to go into a steady state. You don't have to use algorithms from the natural world. The world has to be large enough that it can constantly have things changing and going out of balance away from where players can see things.
I think that one of the keys to solving this is to move away from looking at how real predator/prey relationships work. Those assume some population of predators that is dependent on the amount of prey pretty directly (with lag time), and predators that consume only what they need. Online games have predators that will probably always be there and consume as much as they possibly can all of the time. Attempting to mimic natural systems and put things into balance will fail because there are these unbalancing factors that must be a part of the world. Instead, design systems that can be defeated, but which push back harder the more they are threatened. Make it a challenge.
Posted by: John Arras | Jun 24, 2004 at 20:32
Excellent stuff.
The social activity in the current realm of MMOGs is not based on complex interactions with in-game objects, but based on interactions between people. Most of these games can really be looked at as computer mediated communication packages within "virtual" worlds. The actual software governing communication is really not that much different from what you see in any IM network.
The task of creating software to emulate this process is mammoth and remains laregly unresolved . In fact, perhaps the deterministic nature of contemporary computer processing technology dooms this to failure until we get Quantum computing.
The thing about computer games, which is very different to novels, for example, is that they ~are~ ultimately reduced to rules and state interactions. This is quite simply a result of the way that the underlying code works. I believe Jesper Juul commented on the perfect match between computers and games at Level Up. I personally think that this synergy is because there is a direct mapping between games as rule systems and computers as rule processing devices.
My own work is similar in some respects. I am looking at modelling computer games and creating a kin of "game modelling language", simialr to the sorts of language we already have in software engineering. Once you have a language, you can start the work of mapping and translation into other forms, such as programming code.
Posted by: Toby Hede | Jun 24, 2004 at 23:51
John>The world doesn't have to go into a steady state.
I was more referring to the use of natural algorithms to generate a world which is at some point 'staked down' or 'frozen', to serve as the layout of a standard, static VW.
If we stop the algorithm, and examine the snapshot of the world it has created, we either get an unbalanced population (just before the algorithm would work on correcting it) which does not seem realistic, or we get a relatively steady state which is not very interesting.
Again the problem is one of static worlds in general. It simply doesn't matter whether they appear balanced or not, because nothing can change, and the players know it.
If we never do stop the algorithm -- if we don't use it to generate, but instead use it to govern -- then sure, we needn't worry about a steady state. The purpose of the algorithm is still to seek the steady state. But as you point out, if players can interact with the ecology, the only steady state we have to worry about is complete extinction.
Posted by: weasel | Jun 25, 2004 at 08:32
Funny for me to talk about Van Gogh and and the impossibility of comprehensive analytic algorithms.
http://www.collisiondetection.net/mt/archives/000870.html#000870
Despite this, I'm sticking to my guns -- "Authentic" might give your VVG's artistic fingerprints, but it is not going to paint the Van Gogh for you any more than AI is going to write poetry.
http://nickm.com/writing/essays/coding_and_execution_of_the_author.html.
Posted by: greglas | Jun 25, 2004 at 09:50
weasel >If we never do stop the algorithm -- if we don't use it to generate, but instead use it to govern -- then sure, we needn't worry about a steady state. The purpose of the algorithm is still to seek the steady state.
This is the idea. I view world generation and dynamic world operation as the same problem. I don't think the issue of reaching steady states is that much of a problem if the system is large enough and complex enough and changes slowly enough. Then, you can allow players to make drastic local changes, but the system will be large enough that those changes can be absorbed for long periods before they are globally noticeable.
I wrote a longer response to this article that outlines how I've tried to think about algorithmic generation. I will probably link to it, or post it here if the site owners don't care about a really long comment. It starts with my view of how I came to approach this problem, and what things I learned along the way, and then finally a fairly concrete discussion of how I would implement a world like this. Most of the things I describe have been coded up in simpler forms than the way I will do it when I get around to rewriting everything.
Posted by: John Arras | Jun 25, 2004 at 15:17
John,
If you want to, you can type up a few paragraphs and send it to the TN email & we can feature it as a new post. Sounds like your thoughts would be worth an independent thread. If you'd rather post a long comment to this thread, though, go right ahead.
Posted by: greglas | Jun 25, 2004 at 20:40
I was looking for such a compiler for quite some time now and I'm very happy to hear I can do that now! and the real beuty of it all that it is so easy to debug and recopile it all in seconds.
Posted by: James Theron | Jun 28, 2004 at 09:51
I started to write up something to comment here, and it got too long, so I just put it on my webpage. It's a description of why I want to generate games, and a start of a description for how I want do it, and it's here.
Posted by: John Arras | Jun 28, 2004 at 15:32