raubana.github.io

The Pancake Games / Pancake Script

Summary



Project Type
Contest
Game
Game Mod
Programming Language

Created
2016-1-7

Engine
Source (Garry's Mod)

Language
Python
Lua

Status
Unfinished; on hold

Source Code
Currently unavailable

Links (Some of these have bad info, fyi)
The Pancake Games 2017 Rulebook
Pancake Script Documentation
PC Code Documentation
"From the ground up: Understanding the Hardware"

Details

The Pancake Games

The Pancake Games was a hypothetical contest with the goal of bringing programmers of all types of backgrounds and levels of experience together to compete in a friendly AI programming contest. The source code for the games would be supplied to all contestants. All together, the creative and competitive atmosphere would compel newer programmers to continue trying, plus cooperation between competitors and hobbyists, as well as the design of the scripting language, the source code, and the documentation, would theoretically teach newer programmers new concepts and good programming practices.


The intent of the 2017 games would have been to have small teams of vehicular AI that would compete in a setting similar to the game Rocket League. The event would have been streamed and been a spectacle to behold, with commentary, overlays, and music.


Sadly, this project was never finished.


Pancake Script

The Pancake scripting language is a high-level c-type language developed to be as straight-forward and as consistent as possible. In addition to Pancake Script, an Assembly-like language, called PC Code, was designed. Pancake Script can easily be compiled into PC Code with the included tokenizer and compiler, and is easily interpreted by program and user alike.


A simple IDE was created that allowed programmers to program in the high-level language. It would show the compiled code, while an interpreter would emulate how it would execute in real-time, making clear what happens with the code behind the scenes.


The interpreter would enforce extremely low "system limitations". For example, the stack would hold no more than 16 pointers. The purpose of the low limitations were to encourage smaller scripts - therefore less confusion - and more diverse and creative solutions.


Fun fact: it was because of the system having such a short stack that the scripting language was given the name 'pancake'.