In March 2019, Arvi "Hempuli" Teikari released a puzzle game called Baba Is You for PC, Mac, and Nintendo Switch. It's a game where you solve puzzles by pushing tiles around, some of which change the rules of the game and the properties of objects. Description doesn't do it justice; watch the trailer on YouTube.
I loved the concept, and I loved the game, but somehow instead of having the itch to play it, I got the itch to copy it, using Commodore 64 BASIC.
I got farther than I expected.
The game runs, and responds to cursor commands, but is too slow to actually play unless it is compiled. When it is compiled with Basic-BOSS, it is playable, but I haven't copied any good levels into it yet. Currently there are five tutorial-grade levels.
- Eight object tiles: empty, Baba, rock, wall, flag, water, key, door
- Sixteen word tiles: all objects, properties, and "IS"
- Seven properties: YOU, WIN, STOP, PUSH, SHUT, OPEN, SINK, LOSE
- Screen parser understands
- both horizontal and vertical sentences
- NOUN IS NOUN
- NOUN IS PROPERTY
- Cursor keys control any number of YOU tiles
- A tile may contain both a foreground object and a background object. (Text can only be a foreground object.)
- Win condition is YOU tile overlaps a WIN tile.
- Moving objects are stopped by STOP tiles
- PUSH tiles attempt to move in the same direction when moved upon.
- OPEN tiles combine with SHUT tiles to form an empty tile.
- SINK tiles combine with any other tile to form an mepty tile.
- MELT tiles are destroyed when combined with a HOT tile, which remains.
- LOSE tiles destroy any YOU tiles that move onto them.
- Undo with "Z"
- Reset with "R"
- Level skip with "N"
- Poke into the level with "P"
- Edit the level graphically with "E"
- Dump current level into DATA statement with "D"
- Very trivial levels that are very hard to edit.
I did most of my development in C64 BASIC, but wanted to be able to track source
code changes through GitHub. You should be able to build the game from the text
source code file by just typing make
, if you have these tools available:
petcat
for converting between ASCII and CBM BASIC. It comes with VICE. https://vice-emu.sourceforge.io/bbcompiler
for using BasicBOSS to compile to something that will run in real time on a Commodore 64. You can compile it from source with GCC in thebbcompiler-src
directory here: https://github.com/mbergmann-sh/basicbossGUI/
There is a dev script called devbaba
that will build baba.prg
and run it with VICE.
If you edit the program and save it, it should back-port all the changes you made to
baba.bas
, and recompile it to baba-compiled.prg
.