< Back to Index Posted: April 8th 2022

Announcing: Puck!
Before I dive too deep into the blog post, here’s a tl;dr: I have a new AI game designer called Puck, it’s showing for the very first time at WASD this weekend in London, and you can download your very own copy of it on itch.io. It’s the starting point for a new wave of research I’m hoping to do, and I’m looking forward to hearing what you think! You can find out more on the website and Twitter. Read on for a bit more background on the project...

A snippet of interface from the last version of ANGELINA, made in 2018.
ANGELINA
In 2011 I started a PhD researching ways AI systems could creatively and independently design games of their own. I built a system called ANGELINA which designed little arcade-style games on its own, and would keep working and redevelop the system over many years, eventually designing platformers, 3D maze nightmares, and more. In that time I was lucky to meet so many amazing people from all parts of games research and the industry, all of whom helped shape my thinking about what creative AI can be for, what game design is about, and what researchers can do for society.
A little time after my PhD ended (and the post-PhD depression wave subsided a bit) I began thinking about what the next system I wanted to build would be. I wanted to do lots of cool social stuff that I hadn’t managed during my thesis - collaborating with others, playing other people’s games, and so on - but it would need a whole new approach to the engineering. ANGELINA had always been designed as a closed system, with no visualisations, and a single-shot approach that only I could control. So I sketched out an idea for a different way of building creative systems, where they keep running forever, and take care of their own creative schedule. Instead of automating the task of game design, these systems try to imitate the game designer as a creative person, where making things is just one thing they do alongside play, learning and socialising. I even built a prototype of this system, which I demoed at EGX Rezzed in 2018 with the help of Rock, Paper, Shotgun.
In 2018 I also applied for a Royal Academy of Engineering fellowship, which I was granted, specifically to expand this field of research. I brought the fellowship to Queen Mary University of London, and began working on a sketch for a new system. The problem with the version of ANGELINA I demoed at Rezzed was that although you could watch it work, it was still a closed system. You couldn’t interact with it, you couldn’t play its games without a lot of transferring of files and clicking, and I was the one who owned it - no-one else had access. If we want to know what the future of creative AI will really look like then we need to build AI systems that are social, interactive and personal. So this new system started out with all of these ideas baked in, it started with an interactive interface and lots of visualisation, and most importantly it started out as software that was designed for anyone to use, not just me.

ANGELINA designing live at Rezzed in 2018, and its games being played by a familiar-looking expo attendee.
Puck
As I worked on the software more, I thought a lot about what I would have changed about my PhD work. Doing a PhD is very freeing in some ways, but in others it can be constricting. I had to do work that appeared in line with what my university expected from a PhD (that meant quite traditional AI stuff), and I had to keep a consistent narrative in my work, which meant sticking to certain techniques. Clear of a PhD, and with the support of a fellowship, I could do almost anything I wanted. And the more I thought about what I actually felt an automated game designer needed, or what would be most interesting for the kind of system I wanted to build, the more I realised that I had internalised a lot of assumptions about how game AI research should be done that weren't necessary.
For example: speed. Technology should be fast, right? Every year the technology around us gets faster - faster phones, faster internet, faster graphics cards. More speed means we can build bigger and more wasteful things, which means of course pretty soon we’ll need more speed again. But thinking about Puck, did speed make sense? I’m not trying to sell my technology to companies who need efficient software. All of my game designer friends in real life, do I really care how fast or slow they make their games? Not really. If anything, if they made their games overnight and I just found them in my inbox every morning, it would dehumanise their creative process a bit. So forget speed - make Puck slow. Make it leisurely. Make it less resource-intensive so it runs on cheaper hardware, make it easy to follow its process so there are more opportunities to get involved with it.
It was also a chance to reflect on weird ideas that came out of conversations with people over the last decade. For example, in 2019 I chatted to the lovely Alex Wiltshire and Tom Francis on the Crate & Crowbar podcast, and we joked that because ANGELINA wasn’t very good at evaluating games, it might have already generated and played the best game in the world, and then deleted it without ever realising. This kind of stuck with me, and I thought a lot about Nathan Sturtevant’s inspiring work on exhaustive content generation, and the idea that storage is a lot cheaper than people appreciate, so we should take advantage of that more often. So Puck remembers every game it has ever played. It records every playtest, even down to fine-grained details like which buttons were pressed or what game events fired. That way, ten years from now, a new and improved Puck might be able to look back on a game it ignored the first time around, and realise all its hidden depth, and resurrect it to work on it again.
I’ve made lots of small additions like this to Puck that make it quite unlike any previous version of ANGELINA. It’s the first system of mine that can cross genres, for example - it can make single-player casual games or two-player adversarial boardgames, and a few other little niches. It’s modular too, so in the future we can slot in new game design modules (for Bitsy-like games, say) and the interface and filesystem will just keep working with all of it. It has a built-in player so you can immediately check a game out, play it, even rename it or add it as a favourite to find later. It’s still a very imperfect piece of software, and it’s missing a load of cool features that I want it to have. But I feel like it’s the best piece of research software I’ve made yet, and I’m so happy to have had the support of the Royal Academy of Engineering, who really helped me get to this point.

A snippet of Puck's game design interface. You can play Puck's games with other people, or against Puck itself!
ANGELINA?
ANGELINA has gone on quite a journey with me. I didn’t think much about it when I named some crappy prototype of mine ANGELINA back in 2011. As a PhD student you don’t really expect any system you build to last more than a year, so I certainly didn’t expect the system’s name to follow me around for over a decade, nor did I know the tropey history of AI researchers and women’s names for software. It wasn’t all bad news - I ended up learning a lot of cool things about queer theory and gender, for example, and I met a lot of wonderful researchers who wanted to have interesting conversations about how to subvert the gendered expectations that came with the software’s name - even if, ultimately, I decided it wasn’t right for someone like me to try and do that. Despite everything, as my PhD ended and I thought about what I wanted from my work, I also realised it was time to change the system’s name for good.
That’s also scary for me, in a selfish way, because when people tell you you’re “the ANGELINA guy” and you then decide to put away the thing that people associate with you, you wonder if maybe that’ll be it for you professionally. Maybe that was the one thing people knew about you, and you’re voluntarily putting it away. But I know it makes sense, I know it’s the right thing to do, and I don’t want to see my software on lists of Women in Tech any more, or worse. It was also a chance to reframe how people view the software - so as I explain on the FAQ, Puck is a mischievous creature that you should treat with respect, and that identity fits a creative AI friend way better than any other name could.
I don’t like to think of ANGELINA as having disappeared - for starters, its work will always be with me, I don’t think I’ll ever stop talking about it for the rest of my life. But also, there were half a dozen systems named ANGELINA, there was never a single one system, and so Puck and ANGELINA are all just instantiations of the same ideas and research questions. I hope you’ll feel the same kind of community connection to Puck as you did to ANGELINA - watching people tweet at the system over the years was one of my favourite things.

On the right you can see a bit of Puck's game descriptions. That's a big area we need to work on in the future...
Puck!
Okay, I’ve written enough about Puck for now I think. There’s lots more I’d love to tell you - like our plans to add a little game design tool right inside Puck, so you can work on stuff and get live critique, or how I’ve built some Twitch features in so I can finally get a regular Puck livestream going. But we’ve got plenty of time in the future for that.
I guess it’s worth mentioning at the end here that the last two years have been quite a rollercoaster for me - both personally and professionally. Getting a real academic job (or, rather... the process of eventually getting one) means taking on teaching, and I now supervise five amazing PhD students at various levels, and they have all completely changed how I think about my work. That means less time for things like Puck, but it also means more time for amazing new projects, which I can’t wait to show you. I’m also, slowly, gradually, trying to make my life a bit healthier. I wasn’t great at looking after myself a decade ago, and honestly I’m only a little better these days, but I am getting there. That also means less time for Puck, but it means more time for Mike, which is surely as good a project to work on.
Finally, I want to thank all of you for the support you have shown me over the last ten plus years. I can’t tell you what it means to have so many amazing people around to learn from, to get encouragement from, to share my work with. Some of my most cherished personal connections are with people I have never met in person; I’ve learned incredible lessons about my work from people I met for three minutes at Videobrains once eight years ago; I still fondly remember all the people who reached out to me early on and helped me learn and develop and get to where I am today. I can’t wait to keep sharing silly, stupid, broken things with you, and working to build a better creative community for all of us. I’m really excited about what the next decade will bring. Thank you so much from the bottom of my heart for helping me make all of this stuff work.

If you're at WASD this week you can pick up some of these postcards!
Posted April 8th, 2022