QRogue
QRogue is currently in its open beta stage. If you have any feedback we’d be happy if you could send it to michael.artner@jku.at.
For further information and updates of the development have a look at QRogue’s GitHub page.
A journey through a universe full of Quantum Computing!
QRogue is a modernized Quantum Computing take of the classical game Rogue. You will play as a student who’s dream is to travel through the galaxy. As they hear about “Mission Quniverse” they immediately apply for its training program to be able to join this fascinating Quantum Computing powered universe exploration mission. In the training program and later on in Mission Quniverse you will come across a variaty of quantum gates to steadily increase the capabilities of your “Qubot” - a robot you control to manipulate quantum circuits - and even design small scale quantum algorithms.
During your exploration you will find impassable doors, dead ends and lots of static enemies. But beware! Not everything is as it seems. In the quantum realm enemies can be in superposition or entangled! One step of your Qubot can be enough to perform a measurement: Either collapsing an enemy’s state to 0 to remove them from the map or collapsing it to 1. Be ready to solve a quantum computing puzzle should the latter be the case!
And if you think these enemies with their simple quantum puzzles are the only thing trying to stop you from uncovering the secrets of the quantum realm you’d be in for a treat…
Quantum Computations
Quantum computations are at the heart of QRogue’s puzzles. They boil down to matrix-vector multiplication, whereas states (e.g., input or output state) are described by vectors and operations (i.e. gates) by matrices.
Don’t worry if you don’t know anything about quantum computations yet! The game will teach you all you need to know step by step in the afore mentioned training program. Alternatively you can also check the theoretical references mentioned at the bottom of this page. Just be sure to understand basic matrix-vector multiplication before starting (you can look here if you need a refresher).
Quantum Computations in QRogue
QRogue uses a circuit-based approach to perform quantum computations. This way quantum operations can be viewed as gates that can be placed in a quantum circuit. This way instead of writing code (e.g. in OpenQASM) the player can playfully design quantum algorithms by placing gates in a grid-wise fashion as described in Figure 2.
Getting started
How to install
Prerequisite: Python 3.8
It should also work for Python 3.9 but 3.8 is used for development and testing, hence it is the recommended version. Since Python 3.10 introduced a breaking change to one of the imports it is currently not supported.
The best way to install Qrogue is via its PyPI Package.
This way it is very simple to keep it up to date.
Although optional, we highly recommend to also create a virtual environment for Qrogue via Conda or venv.
Afterwards you can install QRogue simply by executing pip install qrogue
in the Python environment of your choosing (again, it is recommended to do this in the separate virtual environment). If it was installed successfully, just execute qrogue
and the game will launch!
How to start
The first time you launch the game you have the option to either “Start your journey” or “Exit”. As expected, with the first option you will start the game. Later—after you completed the first level—this option will change to “Continue” and will let you continue the level you stopped at.
Launch Options
-
--user-data
/-ud $path
:
Path to the folder where you want to store/load user data (options, save data) from. -
--game-data
/-gd $path
:
Path to the folder where you want to store/load game data (levels, default config, clean save) from. Only specify if you know what you’re doing!
For debugging purposes only:
-
--debug
/-d
:
Activates certain debugging options like additional logs, rendering additional information, cheat codes, simulation of runs, … -
--from-console
/-fc
:
Skips the closing prompt when you exit the game. Necessary to see errors if you’re not starting the game from a console. -
--validate-map
/-vm $path
:
Check whether a level or world can be generated successfully from the given.qrdg
or.qrw
file. -
--test-level
/-tl $path
:
Specifies a level to start with (only works in conjunction with--debug
). -
--simulation-path
/-sp $path
:
Specifies the.qrkl
(key log) file to use for simulating a run of the game.
Controls
For most actions there are multiple keys you can use:
-
Navigate in menus:
Arrow Keys
,WASD
-
Move in game:
Arrow Keys
,WASD
-
Scroll in popups:
Arrow Keys
,WASD
-
Close popup:
Space
,Enter
-
Reopen last popup:
H
-
Confirm selection (also in question popup):
Space
,Enter
-
Cancel/back (also in question popup):
Shift+A
,Shift+Left Arrow
,Backspace
-
Pause:
P
,Tab
-
Situational keys:
QE
,CTRL+Left
,CTRL+Right
-
Situational shortcuts:
0
-9
References
Theoretical background:
-
Quantum Computation and Quantum Information
Textbook containing everything you want to know and even more -
Qiskit
IBM’s SDK for quantum computing
Other educational quantum computing games: