A tile-based platformer made for Jam for All BASIC Dialects #7.
Play it: https://ek-bass.itch.io/rgb-vision
Engine: BazzBasic
License: MIT
Updated version now uploaded.
- No instant game over anymore. Instead of returning to game menu after death, player now just needs to restart current level.
- Player can now see approx. 30% further.
No fullscreen support, sorry. Original GameJam version is written so that it would require rewriting and redrawing too much stuff.
You navigate dark levels with a small light radius around you. The catch: the world is split across three RGB vision modes, and no single mode shows everything.
| Mode | Key | What you see |
|---|---|---|
| 🟢 GREEN | Space | Walls, acid tiles, surprise tiles |
| 🔴 RED | Space | Enemies |
| 🔵 BLUE | Space | Coins, mandatory coins, exit |
Cycle modes constantly to survive. Text characters (A–Z, 0–9) in levels are always visible.
| Key | Action |
|---|---|
| ← → | Move |
| ↑ | Jump |
| Space | Cycle RGB mode |
| ESC | Quit |
| Tile | Mode | Description |
|---|---|---|
# |
Green | Wall — solid, impassable |
. |
Green | Empty space |
! |
Green | Acid — instant death |
? |
Green | Surprise tile — triggers a random effect |
@ |
Red | Enemy — patrols left/right |
$ |
Blue | Normal coin — points |
& |
Blue | Mandatory coin — all must be collected to open exit |
+ |
Blue | Exit — leads to next level |
- |
Blue | Player spawn point |
Surprise tiles look almost identical to normal walls in GREEN mode. Stepping on one triggers an effect defined per level — a jump scare image, teleport back to spawn, bonus coins, a forced pause, and more. Each tile triggers only once per visit.
- Each coin collected: +10 points
- All 10 levels completed → final time is shown
- Optional coins reduce your final time by 0.2 seconds each
- Best time is saved to
highscore.txt
| File | Description |
|---|---|
rgb.bas |
Entry point — screen init, includes, main loop |
game.bas |
Game engine: physics, rendering, levels 1–10 |
menu.bas |
Main menu |
intro.bas |
Cassette-style loading screen |
surprises.bas |
Surprise tile effect subroutines |
assets/ |
Images and audio |
Requires BazzBasic (included as BazzBasic.exe):
bazzbasic.exe rgb.bas
Or just double-click rgb.bas if BazzBasic is set as the default handler.
Windows x64 only. SDL2.dll and SDL2_mixer.dll are bundled.
Levels are defined as GOSUB labels in game.bas. Each level is a BazzBasic
associative array. Copy an existing level block and edit the rows:
[level:11]
Map$("level") = 11
Map$("title") = "My Level"
Map$("text-color") = 10
Map$("bg-sound") = "assets/audio/mytrack.mp3"
Map$("surprise-sub")= "[my-surprise]"
Map$("cols") = 31
Map$("rows") = 21
Map$("row1") = "###############################"
' ... 20 more rows ...
RETURNThen update MAX_LEVELS# at the top of game.bas.
- BazzBasic 1.0 — BASIC interpreter for .NET 10 with SDL2
- SDL2 + SDL2_mixer for graphics and audio
- Physics engine based on the BazzBasic
platformer_example.basdemo
MIT — see source files for details.
Kristian Virtanen, 2026