I was lucky enough to be a guest on the Checkpoints podcast this month! I talked about my origin story growing up watching Bad Influence! on the TV and playing Zool on the Amiga. I also got to have a terrific conversation about AI with Declan, and while chatting I let slip a new thing I have in the works – ANGELINA is being designed to stream game development live on Twitch, and I’m hoping to do some its first streams really soon. This is a short blog post about how that’s happening, and why I’m doing it. You can also follow ANGELINA on Twitch here!
Technically speaking, it’s never been possible to watch what ANGELINA was doing before, because I never engineered it as a system with any kind of visual output or interactivity. When you ran the software the machine would lock up, with the occasional output if you were lucky, until it finished a game. This time around I’ve built ANGELINA from the ground up to be slower, more interactive and more visual, and all of this means that it’s possible to watch ANGELINA design games live.
Being visual is more than just showing what ANGELINA is doing on the screen – it’s about giving enough information to the viewer so they can really understand what problem the AI is trying to solve, what decisions it is making, and how that plays into a larger creative goal. So each of ANGELINA’s creative tasks have their own visualisation that gives viewers extra detail. The most complete one currently is the Level Design view, which looks like this:
In this view we can see several things at once:
- A static, unchanging view of the level currently under consideration (top left)
- An animated display of ANGELINA solving that level (top right)
- A list of the best levels so far (below)
- A sidebar with chat commands and info on ANGELINA’s work (right)
This not only lets us watch ANGELINA solve a level, but it lets us see the level without it moving (since ANGELINA plays very fast) so we can understand or solve it ourselves, and also see what kinds of levels ANGELINA is favouring in the long-term, which means we can see convergence and growth as a level is designed. All crucial stuff in helping the viewer understand what is going on.
I also mentioned chat commands. If you’ve been on Twitch for long you’ll know that it’s possible to read Twitch chat through APIs, and I’m using this here to let ANGELINA respond to viewers. This is a really important opportunity for the system to demonstrate what it’s doing to people (albeit in a simple way) and let people track the progress of the system as it learns, creates and develops. This is also the first time we’ve approached dialogue with the system – before now, it’s been one-way, with ANGELINA telling you about its games after the fact, but now people can request information and also see how the answers change over time.
The chat is fairly basic right now – mostly limited to asking about the current game, and some light inquiry about particular game pieces. In the future I want to expand this so ANGELINA can talk about the game and what its current goals are, to help people understand its aims better.
Streaming live on Twitch is a really big step forward for ANGELINA, and weird territory for computational creativity in general. It lets people engage with a creative AI through while it is making something, not after. This is really important: you can see things that ANGELINA abandons or fixes or merges with other things. You can see a lot of creative decisions and U-turns and mistakes that would normally be lost to someone just playing the finished games, and this lets you get a sense that ANGELINA is a real thing that exists outside of the work it creates – ANGELINA is an entity that produces games, it is not the games themselves.
There are other philosophical benefits from doing this: it’s much easier to get a real picture of what ANGELINA is doing when it designs games. There is less mystery, less guessing. This means that in the short-term people may actually be less impressed by the system, because they can see how stupid it is, how bad it is at playing its own games, how long it takes to discover things which are obvious to us. But that’s okay, because this is part of helping people understand what ANGELINA is, and in doing this I hope we’ll eventually help people appreciate and get excited for all the cool stuff the system does do and is. More transparency and more visibility helps us get rid of weird assumptions, and replace them with a real appreciation (I hope) for creative and intelligent software.
I’m still working on the first version of ANGELINA that will be Twitch-ready, but I’m hoping to have it do streams before the end of the year. I’ll be upgrading ANGELINA as we go – new modules, better behaviours, more communication – and I hope you’ll drop by the streams to say hi and see how the system comes along. I’m hoping this is the beginning of a really important transitional phase for the project, and I have loads more in store to talk to you about in the future. Thanks for all the support so far, the response has been awesome! See you in the chat.