the-maze/.
An old project originally written in QBasic, currently working on porting to QB64 and/or FreeBasic.
Directory Listing
total 128K
drwxr-xr-x 4 4.0K Jul 17 14:01 ./
drwxr-xr-x 4 4.0K Jul 17 14:02 ../
drwxr-xr-x 2 4.0K Oct 3 2022 original-code-and-data/
-rw-r--r-- 1 16K Mar 10 2025 edit.bas
-rw-r--r-- 1 766 Jul 18 2011 edit.ico
-rw-r--r-- 1 32 Oct 3 2022 editicon.rc
-rw-r--r-- 1 11 Jul 2 12:14 edit.ini
-rw-r--r-- 1 46K Jul 17 14:01 game.bas
-rw-r--r-- 1 12 Jul 18 2011 game.ini
-rw-r--r-- 1 20 Jun 25 14:27 .gitignore
-rw-r--r-- 1 248 Oct 1 2022 LICENSE
-rw-r--r-- 1 1.4K Jul 17 10:15 Makefile
-rw-r--r-- 1 766 Jul 18 2011 maze.ico
-rw-r--r-- 1 32 Oct 3 2022 mazeicon.rc
-rw-r--r-- 1 2.5K Jul 17 13:56 README.md
-rw-r--r-- 1 100 Sep 27 2022 summary.md
-rw-r--r-- 1 3.9K Jul 2 12:13 world1.dat
Download
- Git clone URL:
https://obsolete.computer/static/code/the-maze/.git - Download Tarball (Built 2026-07-17): the-maze.tar.bz2
Readme
the-maze
Originally a DOS Game written in QBasic, now a FreeBasic in "QB Mode" project. That's probably as far as it'll go, as there's entirely too much technical debt to make it worth working on in any serious capacity in 2025, but I just wanted to get it working again and on Linux.
AHEM. Update 2026: Thanks to coding agents (in my case Grok), the code is now compiling using
-lang fband has a revamped, somewhat modernized code base, including a more robustMakefile. From here I'm hoping to add sound and custom graphics.Building
You should just be able to type
makein the code directory (after installing FreeBasic of course). A directory calledoutwill be created with the executables and game data...cdinto it and run./game. That's it, there's no install target. (You can also typemake runin the code dir and it'll build/run everything)Display options
The game opens a modern
ScreenReswindow with an 80×25 logical text grid (same layout as the original). Defaults: windowed, 2× scale (~1280×800).```
./game [options]--fullscreen, -f Fullscreen
--windowed, -w Windowed (default)
--scale=N, -s N Pixel scale 1–6 (default 2)
--ascii, -a ASCII playfield glyphs (default)
--tiles, -t Custom tile graphics (experimental; falls back to ASCII for now)
--help, -h Show help
```Examples:
./game --scale=3,./game --fullscreen,make run ARGS='--fullscreen --scale=2'.Always run from the
out/directory (or usemake run) sogame.iniandworld1.datare found.make game/make runcopy those assets automatically.
--scalekeeps a fixed 640×400 logical framebuffer (80×25 text cells) and enlarges the window with FreeBASIC's OpenGL 2D mode (SET_GL_2D_MODE+SET_GL_SCALE) when available.Playfield collision uses a logical tile map.
--ascii/--tilesonly change how those cells are drawn (custom sprites are still a stub).Keys
In the game: Arrow keys move.
Eswitches to the level editor.Lloads a new game file (you'll be asked to provide a filename - the default game isworld1.datso don't overwrite that).Escquits the game.In the editor: Input is mainly mouse-driven, so you can select object modes at the bottom of the screen and place them with the left button. Erase an object of the current mode using the right mouse button. Use the arrow keys to move rooms. Click
PLAYto save your world and switch to the game.Escexits to the OS.
Recent Changes
- [a820cae] 2026-07-17: Introduce a command line flag for selecting ASCII or custom tile graphics.
- [afc3ddd] 2026-07-17: Reorganized char/color combos into a tile table
- [97b1bdc] 2026-07-17: variable rename
- [294700e] 2026-07-17: Introduce a tile map array to contain the game current data.
- [94b227e] 2026-07-17: Replace Screen() calls with a GetChar function
License
This project is in the public domain.
Contributing changes back to this codebase and giving attribution when reusing this code are both wonderful things, but neither are necessary.