GridJSON
Jump to navigation
Jump to search
GridJSON is an esoteric language based on JSON as scope/function syntax.
Here is the link to the interpreter/environment. The documentation will assume that this interpreter is used.
Error handeling
Some compile errors, like JSON formatting errors, will be listed in "data/games/yourgame.json - error log.txt". If your game does not appear in the list of available games, look here.
Most other errors are in "data/debug.log".
General Syntax
The code is written inside JSON. The comments "//" are only here to demonstrate the behavior, the actual file may not contain any comments!
{ "name": "ExampleGame", //The name of the game, purely visual "version": "0.1.0", //The version of the game, purely visual "settings": { //Settings that might be changed before starting (sliders (NUMBER) and checkboxes (FLAG)). No other types are accepted. "options":{ "exampleOption": { //internal name "type": "NUMBER", //its a number (a slider in this case) "range": "0 16", //range of the slider "name": "Cool Option", //display name "index": 0, //index (y position in the options menu "value": 4 //default value (optional) }, "flagOption": { //internal name "type": "FLAG", //its a number (a slider in this case) "name": "Yes/No", //display name "index": 1, //index (y position) in the options menu "value": true //default value (optional) } }, "presets": [ { "name": "Default", //display name "values": { //values of the preset. Not all settings have to be applied. "exampleOption": 4, "flagOption": false }, "index": 3 //index (y position) in the options menu. continue after last option. } ] }, "code":{ "context":{ //currently only the chessboard size is defined here "board":{ //width and height of the chessboard "width": "width", //values 1 - 128 (included)accepted "height": "exampleOption" //options may also be used for variable size } }, "structures":{ //custom structs (like structs in c#/any other language that uses structs) "PLAYER":{ //struct called PLAYER "score": "NUMBER", //all variables "highScore": "NUMBER" } }, "globals":{ //all global variables "players": "LIST OF PLAYER" }, "functions":{ //see Functions } } }
Naming convention and variables
Naming convention
code part | naming convention |
---|---|
variable type / struct | MYTYPE |
variable name | myVariable |
function | MyFunction |
Builtin Constants | THECONSTANT |
Builtin Commands / keyword | THECOMMANDORKEYWORD |
Variables
type | usage |
---|---|
NUMBER | int |
FLAG | bool |
COLOR | color enum |
Constants
Colors
name | value |
---|---|
RED | #FF0000 |
PURPLE | #FF00FF |
BLUE | #0000FF |
CYAN | #00FFFF |
GREEN | #00FF00 |
YELLOW | #FFFF00 |
ORANGE | #FF8800 |
BLACK | #000000 |
WHITE | #FFFFFF |
Other
Other constants are TRUE and FALSE, used for variables of type FLAG.