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!
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.
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.
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.
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…
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…
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…
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…
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…
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…
Wrangler of qubits. Drinker of tea. Father.