"The Process"-Footnotes: An interview with Michael Cook

×

Fehlermeldung

  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (Zeile 6609 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).
  • Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (Zeile 394 von /www/htdocs/w01049cb/live.videogametourism.at/includes/common.inc).

1425

All good things have come to an end. (Unless they are procedurally generated, I guess.) Recently Rainer tried to introduce the readers of Der Standard to the wonders of procedural generation with this article, but I had already plunged the further depths of this topic in last year's article for German games publication GameStar. During my extensive research, I conducted a series of in-depth interviews with a few notable game designers on procedural generation in games today. This is the fifth and final of a series of diminuitively nicknamed "footnotes", and we saved the maddest madness for the end: Michael Cook designed "Angelina", an artificial intelligence which can design games.

Hint: Not only is this interview, as Cook himself mentioned, "incredibly thorough". It also starts withough much exposition. If you want to get a general idea of what Cook and Angelina do, you might first want to read the articles by Lewis Denby or Joe Martin which deal with the more basic aspects of the project. If you're feeling more adventurous, however, you can dive right in -- I promise there are no random monsters and no permadeath lying in wait.

While I have a basic understanding of what your ANGELINA is about, do you maybe have a short standard description of the project and your role in it?

ANGELINA is a PhD project investigating ways that software can autonomously build videogames that are fun, innovative and meaningful. I’m the sole contributor to the project’s code, although I’ve been fortunate enough to have excellent supervision and guidance from Simon Colton and some really informative analysis and experimental design help from Jeremy Gow. Jeremy and I work in Simon Colton’s Computational Creativity Group.

So, to go into some details… I’ll try to describe my impressions in order to come up with a question – please correct me if I’m widely off the mark!

I like this question style, actually, it feels very natural! Go on.

In your project, you originally differentiated between three ‘species’ of elements; “maps”, “layouts” and “rulesets”. From the early games I played, I got the impression that the rulesets were more or less predefined (object behavior, winning conditions etc. seem to be identical or at least very similar in most of the games). In the maps, ANGELINA seems to use procedural generation in a similar vein of how a lot of indie games use it – that is, in (re-)arranging the map according to specific rules. (For example, I’m interviewing the guys behind Cloudberry Kingdom, a game with exactly that focus, albeit with more complexity.)

Cloudberry Kingdom’s an interesting example - one of the most exciting application of procedural generation in the current indie game world, I think. I’m fairly sure they were influenced by work done by Robin Baumgarten, a colleague of mine in the Computational Creativity Group here. He built a very fast A* bot to play Super Mario a few years back.

So, in my eyes, what set ANGELINA initially really apart from most other projects/engines/games is that she actively searches for assets to include into the game and tries to evaluate them (via sentiment analysis). Would you agree?

Well, everything I do has to fall under the remit of ‘scientific research’, so we need to make sure we’re doing things that are new, and that expand our understanding of a topic like videogame design, creativity in computers, or artificial intelligence. So initially what set the project apart was that we were looking at how multiple procedural content generators could work together to produce content that was inter-related somehow. If you have a level designer, how do you get that level designer to react to changing game rules? Most games use procedural content in isolation, and that generator never has to change what it does. In Cloudberry Kingdom, the player’s controls and abilities never change, so the level generator only has to change minor parameters about how difficult the level should be. We wanted to look deeper and say, well, what if the entire game was composed of procedural generators? How would you get them to work together? That was when we started using computational evolution.

After that, as you say, we moved our focus to aesthetics, meaning, real-world ideas. Generating dungeons for a game is one thing, but how do you procedurally generate content that can reflect ideas from the real world? And how do you get software to produce the huge variety of media that videogames require? I know researchers who work in music generation, art creation, linguistics and language analysis, but I’m always fascinated by what quick and dirty methods exist for getting software to generate things. I like the idea of an intelligent composer that could make original scores for ANGELINA’s games, but what if ANGELINA had to do it itself?

If so, I wondered if ANGELINA does not do a word justice that is misleading in case of a lot of other engines: What they mostly do is a form of ‘procedural rearrangement’ of predefined assets; but it’s rare that they step outside a predefined library and ‘generate’ something new. Do you have any thoughts on the adequacy of the word “procedural generation” and its common use?

This is a really good question. I actually had to leave it until last because I needed to think about it.

To some extent, everything is rearrangement. To make a sentence in this interview I’m arranging words together, not making new words. Spelunky and Minecraft rearrange blocks to make a level. The biggest difference between ANGELINA and most procedural content generators is failure. When a human sits down to design a level, they have to think hard to create a level that can be solved. Spelunky always creates a map that can be solved - it’s designed from the start to do so. Minecraft always creates a world that you can walk around, it never creates a map that is full of stone from the sky to the floor. Dwarf Fortress simply restarts the world generation if everything on the planet dies.

ANGELINA creates maps, game mechanics and so on in a manner that is a bit closer to how a human does it. It might make something that is impossible to complete, or broken, but ANGELINA is intelligent enough to notice this, and make changes to fix the designs it comes up with. I think that’s the key difference. It’s also just generally a good way of measuring how intelligent a system like this is - let’s say you have two procedural generators that always produce good levels for a game. If one of them is designing in a space that contains 100 levels, all of which are good, and the other one is designing in a space that contains a million levels, some of which are good, some of which are bad, then the second system is performing better if they both produce good levels.

You might ask why we would care about that. If Spelunky and Minecraft always produce good worlds, then why do we care if they never have a chance of failing? There’s a saying: “You never discover new lands without losing sight of the shore”. By exploring a wider area of level designs, ANGELINA has a better chance of discovering something truly new and innovative, something we’ve never seen before. That’s why I want to keep pushing for techniques that work in this way, that have a huge design space in front of them with lots of potential for failure. In between those bits of failure are new ideas that no-one has ever seen before. If ANGELINA can find them, then we know we’re doing something right. It’s another reason why I try to remove the human element from ANGELINA as much as possible, because anything I give ANGELINA limits its output to things that I could think of. I want ANGELINA to be way more inventive than I am!

Is it correct that the behavior of looking for elements to integrate into the game was – at least initially – limited to the “layouts”-species? (I can see that in the early games, ANGELINA was looking for the music, the images that pop up, the title… something missing?)

I think you’re talking about the creative stuff we did for games about news articles here, is that right? It was mostly focused on layout. We were quite restricted by the choice of genre, and were sort of stuck with two-dimensional Metroidvania-style games. I began working on some simple tools for grabbing content from the Internet, and Layouts seemed like the most natural way of integrating it into the game. I do have plans for future work - which of course, may never happen because research is hard to predict - where the information is used more broadly though. I’d like to get ANGELINA to read the news and think about how mechanics or mission objectives could help express what has happened in the news. A much harder problem, but also a much more exciting one.

1426

I’m mostly asking because it’s all aspects that a die-hard ludologist would label “narrative elements”. That seems really interesting to me and leads to a few further questions: First, was there a specific reason why you started with a focus on those aspects and not, say, the rule set? Was it simply because it seemed more feasible or was there deeper reasoning behind it?

Connecting rulesets to real-world concepts (which is what I think you’re asking about?) is really hard. It’s something I think about a lot, but I don’t want to work on it until I have an interesting angle to pursue. With Layouts we could do some basic stuff - we called it art direction, because it was sort of about theming the game, giving it a style and mood. But rules are very hard, rules are about bridging the gap between the real world and the game world. I think that’s possibly the hardest problem on the horizon for automated game design and procedural content generation. We take it for granted that we can look at pictures of things on screen and immediately know what everything means, but we’re actually doing some very complex translation mentally to understand what we’re seeing. Why does picking up a heart help you survive longer in a videogame? It’s because we understand the symbolism of the heart, we understand that touching spikes hurts us, and so on. I’m very excited to get AI to do this, but right now I’m not sure how we’ll do it. The next few years will be very interesting.

A lot of people seem to think that while things like level design, rule design etc. could one day be assisted or completely generated by AI, a proper narrative will never be feasible; there seems to be less research in that domain as well. (And the research that is done, for example by Chris Crawford, seems doomed.) Do you have any thoughts on that?

I’m only vaguely aware of Chris Crawford’s work: I’ve played with Storytron and I’ve read people discussing his views on interactive fiction (such as Emily Short). My overall feeling is this: technology is an incredible force, capable of amazing things, and I do not think there is any creative task that a human can do that a machine would not be able to do too, some day. Chris does some interesting stuff, but he also seems to have a very restrictive view of what narrative and storytelling is and what artificial intelligence might ever be capable of.

Narrative generation is a big research question for a lot of people around the world. One group I have some experience with is Mark Riedl’s Entertainment Intelligence Lab who do some fascinating stuff with dynamic quest adjustment and narrative invention. What I like about their work, or the work of more straight story generation (not games-related) such as Rafael Pérez y Pérez, is that it doesn’t get sucked into this trap of “simulation equals narrative”.

A lot of game developers, and gamers, are fixated on the idea of procedural game engines that simulate worlds. You see people who want the next Dwarf Fortress, or games like Double Fine’s Spacebase DF-9, because they think that deep simulations will give rise to interesting stories. They do sometimes, but that’s not really how stories work - stories have authors, people who design sequences of events to achieve a certain goal. Some game designers don’t seem to like the idea of authors, they say it’s at odds with the nature of games, but I disagree. I think we just don’t have enough intelligence yet.

That was a very long answer to a simple question! I’m sorry about that. I think I just dislike the idea of people laying down arbitrary barriers. Lots of people in the games industry are willing to tell you where the limits are, rather than helping to break through them. I much prefer doing the latter.

Maybe less a question and more a thought: When you talked with Lewis Denby about ANGELINA back in the day, the interview revolved around the related question of how to produce “meaning” procedurally; the thoughts reminded me of Bogost’s theory of “procedural rhetoric”, or what some so-called artgames attempted (use rules as a metaphor). In a flight of fancy, I asked myself if this could not be some sort of human/computer interface, a way to allow AIs to express themselves in a way other kind of rhetorics didn’t… any thoughts on that? (Maybe it’s too abstract, feel free to ignore it!)

I think it’s an interesting idea. I wonder if Bogost himself might agree - after all, computers understand the world in terms of rules and data, and games are the purest expression of rules and data that we have in arts and culture. We have to be careful when talking about this sort of thing though. My computer doesn’t have an opinion on politics, for example. It could tell you what Twitter thinks about politics, or it could read my emails and tell me what my friends think about politics, but it’s hard to think of my computer as having a personal expression. I don’t know what the future has in store though!

Or, to wring a question out of it: Would you agree that procedurally creating narratives is one of the hardest tasks for an AI? Is there research in that field that you know of? Do you even think that having an deeper narrative layer should be a priority or a goal of research in procedural generation of videogames or is it of secondary importance and interest?

I’ve kind of answered the stuff about narrative work going on in the question about (Mark Riedl and Rafael being good examples), but let me answer the rest. I think narrative is really important. Lots of good games have really interesting and elegant systems of rules underneath them, but narrative is crucial to a lot of game genres. More importantly, I think narrative needs to be approached computationally in order to really unlock its potential within games. We have problems with narrative in games - we can’t do nonlinear narrative very well; MMO narratives aren’t good and are very template-based. We can do better if we have more intelligence behind the system. Narratives that can repair themselves, thereby allowing the player more freedom, or narratives that rewrite themselves to be more interesting to the player. There’s a lot of exciting stuff to do!

1427 With the “Mechanic Miner” concept, the focus seem to have switched to the rules et. Is there any specific reason why you decided to work on the “rule sets” instead of deepening the “layout”-layer?

It was partly a case of having the right inspiration at the right time - I’d wanted to build the system for nine months, and suddenly I found this code library online that let me put the idea into practice. But I think rules were an area I felt we hadn’t explored enough in research. We see level generators all the time, some games are famous for them. But genuine rule generation? Creating a mechanic from very little information? That’s something very new and exciting, so I really wanted to see what we could do.

In some of your (early) interviews, you seemed to be take a visionary stance, you gave the impression of a man who can already see the day an that will eventually design games completely autonomously, and was excited about that. In later interviews, though, you seem to have stressed more the fact that ANGELINA might simply be a valuable tool, rather than a creator itself. Did you actually have a change of mind or heart during the years or is that impression misleading?

This is a very insightful point you make here! I think you’re right, I probably came across as more of a dreamer early on. I’m happy to say that I haven’t had a change of heart. Part of the reason my tone changed in interviews was because I wanted to explain to people why ANGELINA would matter in the near future. I wanted people not just to see the dream of fifteen, twenty years in the future, but to see how ANGELINA and similar research might affect them positively in the next few years.

The truth is that, from day one, I have always been fascinated by one idea - that software might be able to invent a new videogame for me automatically. This is always the driving force behind my research. I try to make arguments for why this research might be useful to people right now, and some of them I believe in very strongly. I’d like to see ANGELINA provide technology that helps young people design games and learn more about programming. But ultimately, my dream has never changed - I want ANGELINA to design games that people remember forever.

Do you think that the future of procedurally generated games will be more as a wholesome replacement of human developers or just a tool in their assistance?

Ultimately, it will be employed in both areas. People often ask whether people will lose their jobs through ANGELINA, and I always say that I think this won’t happen. For one thing, if ANGELINA became powerful enough to produce games better than, say, Zynga, then Zynga would just employ people to build a better ANGELINA. Industries like this always move forward in line with technology. The research we’re doing today will eventually be used in game development studios.

But I do envisage a really bright future for procedural generation. I joke about it, but I think I’m in a race against time. I want to get ANGELINA to the point where it can entertain me during my retirement. So I’ve got about four or five decades to get ANGELINA to the point where it can make games that keep me interested and entertained! Then I can sit back and relax.

Let’s assume you’re going to live a happy and long life (which I wish you anyway)! What progress do you think you’ll still live to see in the field of your research? Do you think that we’ll get to a point were a game  created  by AI will be interesting as a game, and not just as an experiment?

Yes. One of the problems we have right now is that it’s hard to evaluate a game made by an AI, because the initial reaction is “This AI is so cool!” rather than “This game is so cool!”. People have suggested Turing test-style experiments where we release games without telling people who made them, but that might not be a good idea. I think we just need more people doing research in this area, and releasing more games, and eventually people will come to judge them on their own merit.

When that happens, I expect AI will begin to produce interesting games. Games that win awards for their design and innovation, not because of who made them. I’d really like to see an AI-generated game in the IGF shortlist by 2020.

In a related question: It is obvious that some people – especially the ones with professions in the ‘species’ were the biggest progress was made already, namely level design – do express the age-old fear of a “future without them” – a future when AIs take away work from humans and do effectively render them obsolete. Did you ever have somebody express such feelings, maybe even in a hostile way, towards you or your research? How did you react? (Or how would you react, if it hasn’t happened yet?)

I’ve never had a hostile reaction so to speak. I think the reason for this is that people think it won’t happen. The reaction I get that’s really common is “This will never replace humans” - they just think it’ll never happen. Bidds, the lead designer on Stealth Bastard, told me that there was “no way an AI can outdesign a good designer”, for instance.

I don’t know how I’d react to a hostile response. On the one hand, I feel that it’s my responsibility as a scientist to work on new techniques and contribute new knowledge no matter what. I believe that people will find new ways to use the technology to make better and more exciting games. And I think, above all else, that people will always want human-designed games over AI-designed ones. No matter how good they get, we like the feeling we’re connecting to a human being. I don’t think that’ll ever change, for some game types at least.

To come back down to Earth: Do you have certain games that you admire for their use of procedural generation? Or, even more simply: What are your favourite games which make use of procedural generation?

Spelunky is one of my favourite procedurally-generated games. I like it for a lot of reasons - the style and mechanics of the game are just perfect, but the way Derek Yu generates levels for the game is very clever indeed. It’s really elegant - he slots together levels from smaller, hand-made pieces, but then he adds in random chunks to each hand-made piece so you don’t notice the repetition. Such a small idea, but so powerful.

After that I think you have to mention Dwarf Fortress. The depth of the world simulation is really inspiring. I think there’s a lot that AI researchers could do with complete access to that world generator.

I think there has been a renaissance of procedural generation over the last few years. Would you agree? What do you think are the reasons for that?

I definitely agree, I actually really like the premise of your article. I think there are two reasons for it - first of all, you see the rise of the indie developer. A lot of people want to make large games, but can’t produce lots of content, so they turn to procedural generation. We saw this in the eighties with some game genres, but for different reasons - they didn’t have the technology to create large worlds and store them on disk, whereas modern indie developers don’t have the budget.

There’s a second - and more important, I think - reason though. I think procedural generation has inserted itself into core gamer culture now, as something that we can discuss and appreciate. Think about this article - we’re discussing a computational technique for generating data from code, and this is going to be read by a lot of people who do not know how to program. That’s one of the great things about the games industry - gamers get really involved in things they care about. The idea that a procedural generator might create something bizarre or crazy or beautiful or unique is something that gamers really like. It’s a bit like opening a chest in a roleplaying game - people are excited to see what will come out. That’s why people like reading world histories in Dwarf Fortress and discovering that there was a werewolf that ate its own mother and went on a rampage; it’s why people share Minecraft worlds just to look at the geography. It’s one of the ways games encourage people to get to know technology. I think it’s brilliant.

If I understand this correctly, with A Puzzling Present, there was an improvement insofar as ANGELINA has learned to work on the “ruleset with the Mechanic Miner-function; then there’s the sprite-creation coming. What’s next for ANGELINA?

A good question! What I’d like to do first is merge Mechanic Miner properly with ANGELINA, and have it create newsgame-style work with generated mechanics. That would tie up the PhD neatly, where all my past research comes together in one project. After that, there are a few options, but it all depends on funding. So let me skip to your next question!

Funding will run out in 2013 for you, if I understand that correctly. What’s next for Michael Cook?

There are a few options open. We currently have some funding applications being reviewed for various projects, some of them with amazing, crazy ideas behind them that I’m very fortunate to be included as a small part of; others are smaller scale, really just including me and letting me continue working quietly. I can tell you something that I’ve not told anyone else yet, which is that it looks very likely that ANGELINA will be making games in 3D within 12 months time. Most of the projects I’m looking at have made me think that now might be the time. There’s a lot of reasons for it, and I’ll be talking about them on my site later in the year, but one way or another I think we’ll be moving into the third dimension. Very excited and nervous about it.

Of course, it all the funding options fail, I’m not sure where I might end up. The games industry is a possibility, although it would probably mean I wouldn’t return to research ever again. I don’t think I could bear that - I feel too attached to ANGELINA and the feeling of being part of academia!

And to round it up: You have done quite a few interviews. I figure you get asked the same questions all of the time… so, is there a question you always hoped that one day, a brilliant journalist might come up with, but they JUST NEVER DO? If so, feel free to answer it now and here!

Actually people rarely ask me what games I like or think used procedural generation well, so you already managed this!

Thank you for your time!

And that concludes our series on procedural generation. You can find the first interview in the series here, where I talked in length with Arcen Games' Chris Park. The second interview was with Jim Rossignol, game journalist and head designer at BIG ROBOT. In the third interview, I spoke with Jake Solomon, lead designer on XCOM: Enemy Unknown. Part four was with Pwnee Studios, creators of Cloudberry Kingdom. If you read German, you might also be interested in us goofing around the concept of what it means to be a roguelike.