This is the transcript of a talk given at the PCG workshop at the FDG 2020 conference. You can find the paper it’s based on here. It’s all about procedural generation, which is basically making content (like terrain, levels, puzzles, etc) for things that need content (like games).
I’m James Wootton from IBM Quantum, where we work on quantum computation. This is a new technology, so you’ve probably not heard it being applied to procedural generation before. I’ve been looking into how it might be done, and that’s what I’m here to tell you about!
First, I’ll need to convey some idea of what quantum computers are and how helpful we can expect them to be. I’ll spare you from all the details about how they work. Suffice it to say that they represent a completely different model of computation than both conventional digital computers and analogue computers. They don’t just speed up normal software through some quantum magic. Instead they require a completely different approach to software, as well as different hardware to run it on. …
Hi, I’m James Wootton. I work at IBM Research. We build quantum computers and I used a couple of them to do some map generation for games. That’s what I’m going to tell you about today.
So what are quantum computers?
Well first let’s think about our normal digital computers for a moment. These express information in bits, and any algorithm can be compiled down into very simple operations on one or two bits. In saying this, I’m really thinking of the Boolean circuit model as a model for what a digital computer is. …
We now live in a world with quantum computers. Many are on the cloud and ready to use, requiring little more than an internet connection. But what can we do with them?
First, we need to be realistic with our scope. No world crisis will be solved with a current quantum computer. No fortunes will be made. When thinking of these current devices as a computer, you have to think of them as pretty bad computers. The limited number of qubits means that they can’t do much, and the effect of errors means they can’t do even that very well.
Instead, we can think of these devices as pieces of experimental physics equipment that we can run tests on. From that perspective, their size and precision is very impressive. Never have we had such control over such a large quantum system. They represent the frontier of what we have been able to probe experimentally. …
Quantum computers are a new technology! Games are great! Let’s put them together! This is what I’ve been looking into for the past few years, and many others have now heard the call and joined the fun.
Nevertheless, you might be wondering why anyone would bother, and how they’d go about doing it. To answer this, I think it’s best to go back to the dawn of all computer games: the 1950s.
Games have been around for as long as humanity. Computers are a more recent phenomenon. It was the 1950s when they really began to coalesce.
The first example was Bertie the Brain, exhibited at a trade show in 1950. …
First, you’ll need to know how to write quantum programs. Most tools to help you do this are written in Python. So here are some Python basics.
Next you’ll need to use a tool that allows to to create and manipulate quantum programs. As someone who works on a framework called Qiskit, I’d suggest Qiskit. Here are the basics.
To use Qiskit, you can either install it or use our web-based interface. Installation is done with
pip install qiskit. If that makes no sense to you, you’d probably be better off with the web version.
Now you have the resources needed to write quantum software, and then run it either on simulators or on real prototype quantum processors (made by IBM, and available on the cloud). …
Updated in September 2020
Whether you are attending a quantum hackathon, or just want a quantum project to work on at home, I have some ideas for you!
What follows is by no means a comprehensive account of everything useful or interesting that can be done with quantum computing. It is completely biased towards the things that I am personally interested in. So if you want to know more about any of them, feel free to ask me.
Making a game doesn’t necessarily mean making something big and fancy. Just pushing a pixel around can be enough, and it can be a fun and creative way to turn knowledge about quantum gates into something tangible. …
From 1980’s Rogue to recent games like No Man’s Sky, randomly generated content has become an important part of game design. The techniques used for this are far more sophisticated than just coin flips, since the content they provide needs to satisfy an array of complex conditions. For example:
When trying to ensure that these conditions are satisfied, we can easily run into computational problems that simply take too much time or computer memory to solve. …
For me, one of the best things about games like Minecraft or Civ is the ability to explore randomly generated landscapes (and occasionally blow stuff up). This is all done through the magic of procedural generation.
One algorithm that recently caught my eye is called Wave Function Collapse, because it is inspired by ideas from quantum mechanics. From now on, we’ll just call it WFC.
Since my job is to write software for quantum computers, I instantly saw an opportunity. I would upgrade WFC from being just quantum-inspired, to truly being quantum.
To understand how I did this, we first need to understand the algorithm and its quantum inspiration. The WFC algorithm owes its name to the fact that each random choice is an event rather like a measurement of a quantum object. These objects can, in some sense, be doing multiple mutually exclusive things at once. This is called a quantum superposition. …
Programming a quantum computer is now something that anyone can do in the comfort of their own home. The simplest way is to use IBM’s composer. This lets you construct programs with a graphical interface, and then run them on real devices in the IBM Research labs.
You just need to head over to the website, create and account, and you’ll be given a blank canvas on which to create something quantum.
But what to create? What is a quantum program anyway? In fact, what is a quantum computer?
These questions can be answered by making comparisons to standard digital computers. Unfortunately, most people don’t actually understand how digital computers work either. So in this article we’ll look at the basics principles behind these device. And to help us transition over to quantum computing later on, we’ll do it using the composer. …
Quantum computers are built out of qubits. But just having lots of qubits is not enough.
A billion qubits working in complete isolation will never achieve anything. They need to talk to each other. This means that the need to be connected by so-called controlled operations. Every device has its own rules for which pairs of qubits can be connected in this way. The better the connectivity of a device, the faster and easier it will be for us to implement powerful quantum algorithms.
The nature of errors is also an important factor. In the near-term era of quantum computing, nothing will be quite perfect. So we need to know what kinds of errors will happen, how likely they are, and whether it is possible to mitigate their effects in the applications we care about. …