Geometry Dash

From Esolang
Jump to navigation Jump to search

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.

Geometry Dash
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.