Remix.run Logo
ATiredGoat 4 days ago

I wanted to share a project I’ve been building for decades The Labyrinth of Time’s Edge, a massive handcrafted text adventure written in QBasic. Yes, QBasic in 2025. The game currently spans over 3,600 interconnected rooms, with unique NPCs, branching pathways, cursed villages, haunted castles, and secrets hidden across an ever-growing world. Every room is written by hand. Every description is crafted to spark the imagination. It’s built to run on the barest of systems, and it will always remain free to download and play. Why QBasic? Because simplicity has power. Modern engines demand assets, shaders, and endless pipelines. QBasic lets me focus on what text adventures do best imagination, atmosphere, and story. My philosophy is to expand outward rather than upward: instead of inflating systems, the Labyrinth grows through new areas, new lore, and new journeys, ensuring it always feels alive and endless.

ido 4 days ago | parent | next [-]

Amazing dedication! QBasic was also my first taste of programming.

I wonder what you'd consider the tradeoffs of QBasic vs something intentionally geared towards IF, like Inform[0]?

[0] https://en.wikipedia.org/wiki/Inform

anthk 4 days ago | parent [-]

Inform6 would set these rooms in hours... Just create a Room class, which is something done in miliseconds (basically a room with a 'has light' atrribute), and being creating objects like crazy until the v8 Z-Machine gets exhausted (very difficult as it has been pumped up to great limits).

Also the game would run on PC's, Linux/BSD machines, DOS, Classic Macs, Amiga, Ataris, Android, IOS, OSX, RiscOS... everywhere from 16 bit and up.

davidjhall 4 days ago | parent [-]

Yes! According to this post, someone tried to find the max rooms in Inform 7 and stopped at tens of thousands. Took long to compile (not run) and used a lot of memory, but not an issue. https://intfiction.org/t/i7-realistic-max-number-of-rooms/99...

anthk 3 days ago | parent [-]

That's inform7, a different syntax than inform6, but in the end both compile against the same virtual machine. Still, inform6 OOP syntax with the English library it's like a really dumbed down Python more OOP than Python itself. Literally, as you are playing with objects in-game with literal attributes mapped 1:1 to the syntax. An enterable object in order to be that it must have the 'enterable' attribute defined in the object.

mikerg87 4 days ago | parent | prev [-]

Fantastic.

I shared your post on twostopbits.com. A site dedicated to retro gaming and computing. Would love to have you share your story over there.