Seven years ago I started this site to write about ANGELINA, software I was making that could design its own videogames. The first games it made were simple arcade games with coloured circles that moved around a white screen, but the real objective of the project wasn’t just to make fun games, but to make a piece of software that people cared about, respected, were inspired by, and recognised as a creative individual. Over the years each new version of ANGELINA has tried to raise those stakes, to give ANGELINA more responsibility, and to take away more of my personal influence. Today I’m excited to tell you about a new version of ANGELINA that I’ve been working on, which takes more steps along that path. There’s still a lot of work to do, but I’d love to hear what you think.
A lot of AI projects focus on the product and the outcome – AlphaGo is about winning a game of Go; autonomous Tesla cars are about driving safely – but projects in my field, Computational Creativity, are about the software is just as much as they are about what the software does. If you’ve seen anything about ANGELINA before you probably know what I’m talking about, because ANGELINA focuses a lot on describing its process to others, seeking out information for itself, and trying to convey meaning to people through its work, all of which aren’t really things we care about when we look at generative software. You don’t ask Spelunky why it made a level the way it did, you simply play the level and hope that it’s fun.
This new plan for ANGELINA is the biggest shift in the project since it began. Rather than just being a new area to work in, or a new engine or platform to develop on, this is a fundamental change in what ANGELINA does and how it does it. I’m changing the shape of ANGELINA, how and when it makes games, and adding new ways for it to interact with you (and vice versa). It’s something of a philosophical shift for me and my work on automated game design, and I’m hoping it’ll make both the games better, and improve ANGELINA’s creative independence! There are three big points to cover that sum up the new structure for ANGELINA:
ANGELINA used to exist as a program that would be set up by me, run for a few hours, produce a game and then stop running. This has a bunch of drawbacks, but the biggest of them all is that it just doesn’t feel very independent. Kate Compton calls this sort of generative software an ‘artist in a box’. It’s harder to take ANGELINA seriously if I dictate the terms of what it does and when it does it. So instead, I’m trying to build the next version of ANGELINA to run constantly, or for very long periods, being creative on its own remote machine. Instead of me asking for games, I’ll be told by ANGELINA when it has one ready – I’m hoping to automate the entire process so it can upload games directly to itch.io on its own. You might know ANGELINA’s finished a new game before I do, and that’s exciting for its independence and creativity. It demonstrates a lack of filtering, a lack of curation, and a lack of control from me. ANGELINA controls a bit more of its own destiny.
Just like stopping and starting, I also used to decide what order ANGELINA did things in. If you follow any game developers (or are one) you’ll know that like most creative activities, making games does not have a fixed path. People start projects and abandon them, they doodle and experiment with ideas that they come back to years later. There’s no simple recipe that describes how everyone makes games. So ANGELINA’s new continuous design will be paired with a modular approach to automated game design. One module might be for designing levels. Another module might invent new ideas for games. Another module might think up new concepts or themes for games. These modules won’t be in a fixed order; ANGELINA will move between them as and when it feels like it. One day it might be making new levels for a game it’s nearly finished, but then the day after it might be prototyping ideas for a game it won’t make for many weeks. The freedom to choose what it does, and when it does it, is a big goal for this new ANGELINA.
I’ve had some fun coming up with ways for ANGELINA to communicate with people about what it’s doing. We’ve generated commentaries and in-game tutorials to describe what a game is about, and used Twitter to automatically get knowledge about the world from people. But if ANGELINA is always working on new things, it offers us new opportunities to interact with people and engage them with the creative process. I’d like ANGELINA to blog and tweet about its process as it goes, like I do with my own game development, so that people can understand what it’s doing, why it’s doing it, and watch those things change over time. We’ll definitely be using Twitter, but I also have some bolder ideas that I don’t want to commit to just yet (in case they’re too impossible to actually get working!)
So, to recap – the new ANGELINA will be able to switch between lots of different creative activities, and I won’t be in charge of deciding what it does and when. It means lots more freedom and decisions ANGELINA can make, and lots more opportunities for it to talk about what it does with you!
In another post I’ll talk about the kinds of games that ANGELINA will actually be making, and why I’ve chosen to go down that route, but like I said at the start, what ANGELINA makes is just one small part of the project. These changes are important in helping people see the how and why of ANGELINA’s games, and it’s this that I think will be most important. I just hope I can get it all working! It’s still early on in the project, but hopefully you’ll begin to see things coming out of the project over the next few months. As always, the best place to hear stuff is by following either ANGELINA or myself on Twitter. Thanks for reading, and to everyone who’s supported the project thus far. Everyone’s enthusiasm for the project really helps motivate me to do new and cooler things.