Geometry Dash
Geometry Dash (GD) is a Turing-complete 2013 platformer game created by Robert Topala. At first glance, how could a platformer game be Turing-complete. Well, GD has a level editor where you can make your own levels. There are "triggers" that can cause actions to occur in the level. Using these triggers, you can create loops and if statements.
Paradigm(s) | declarative |
---|---|
Designed by | Robert Topala |
Appeared in | 2013 |
Type system | none |
Memory system | variable-based |
Computational class | Turing-complete |
Reference implementation | Geometry Dash 2.2 |
Dialects | GDPS <version number> |
File extension(s) | CCLocalLevels.dat , .esogd |
Implementations
Geometry Dash 2.2, which is on Steam, the App Store, and Google Play.
Legal issues with alternate implementations
DISCLAIMER: User:Purah126, who wrote this section, is not a lawyer.
Since Geometry Dash is a copyrighted game, it could be illegal to write a full implementation yourself. However, implementations only considering triggers are probably fine. Since SPWN has not been taken down, compilers to it are probably fine. Alternate IDE's could also encounter legal issues.
Files
Your GD save files contain a file named "CCLocalLevels.dat" which contains your saved levels. Programs should ideally be distributed using this format.
I have devised another format, which is saved in .esogd
files.
Programs must be of the form id [integer]
.
This is interpreted as a Geometry Dash level ID. By pressing the "create", then "search", then typing in the ID and searching, it is possible to get the level corresponding to the ID. It is also possible by sending requests to boomlings.com as documented here.
Computational class
It is Turing-complete as shown by this program:
id 69434308
This emulates Brainfuck which is known to be Turing-complete. It is bounded, but can be adjusted to be unbounded.
Example programs
Small game engine
id 106785428
Requires version 2.200 or higher.
Documentation
Documentation for the GD level editor is available here.