Reason to Play — Browser Game Interpreter

edit the game description or map layout and play it live
Click canvas to focus  |  Arrow keys / WASD = move  |  Space = action  |  P = play/pause  |  Enter = rebuild

The Browser Game Interpreter (BGI) is a JavaScript implementation of Video Game Description Language (VGDL): a compact notation where a few dozen lines fully specify a playable game -- its sprites, physics, interactions, and termination conditions. The description and map layout above are parsed and executed entirely in the browser.

The interpreter supports live editing. Open the Game Description flap and add a new collectible sprite (copy an existing wall line, change its name and color, then add a killSprite interaction so the avatar collects it). Or open the Level Layout flap and place a second avatar character alongside the first. Press Enter or click Create New Env to rebuild the environment from your edits immediately.

SpriteSet

Defines every object type in the game. Format: name > Type parameters

Avatar types (player-controlled):

Object types:

The img=colors/COLORNAME parameter sets the object's visible color. All objects of the same color follow the same rules.

LevelMapping

Maps single characters to sprites for level layout. Format: char > sprite1 sprite2 ...

Multiple sprites on one character means they overlap (e.g., w > floor wall places a wall on top of floor).

InteractionSet

Defines collision rules. Format: spriteA spriteB > effect parameters

When spriteA and spriteB collide, the effect is applied TO spriteA (the first sprite).

Effects:

Multiple effects can apply to the same collision. EOS (End of Screen) interactions handle objects leaving the game boundaries.

TerminationSet

Defines win/lose conditions. Format: ConditionType parameters win=True/False