QBasic was my first programming language. I wrote an "operating system" called QWIN using it when I was 7 years old. It had a fake POST with a rising tone and some atonal beeps followed by a series of unnecessary pauses and prompts before getting to a text-based shell (you read that right - QWIN had no windows) which was a pile of spaghetti driven by IFs and GOTOs with arbitrary labels. I was afraid of GOSUB and loops of all types so the embedded unlicensed Pokemon text adventure was nothing more than a series of fleshed-out decision trees until you reached the end. My screensaver that drew random lines used a static seed for the RNG so it was the same every run. Fun times.
My best good friend still has a copy of it someplace on a floppy disk because we would run it on the computer that he put together out of spare parts on a piece of plywood. Thankfully he has a family and is too busy to dig it up and send it to me so I'm spared the embarrassment that would come with seeing it.
I'm always happy to see projects like this and OHRRPGCE where people did something useful with the language.
This brought me a wave of nostalgia for the old Qbasic "operating system" projects, of which there were many. This site has a lot of reviews and screenshots:
It was a popular style of project. Some even implemented their own programming languages so they could multitask applications written for them by running lines from each app in a round-robin fashion.
I wrote a ton of QBasic / QuickBasic code as a kid. Until I got turned-on to Turbo Pascal it was my jam.
Because QBasic would run on versions of Windows NT that had the NTVDM (virtual DOS machine) I used it as a scripting language on early NT systems I supported. Eventually I moved over to VBScript under Windows Scripting Host when it arrived on the scene.
I did something very similar as a kid - a bunch of almost like DEMOSCENE stuff (simple line rotations, psetting all over the place, doppler sound effects, etc.) before dropping the user into a TUI with little games, etc.
I remember first reading about the DATA command in the IDE built-in help (what a fantastic resource) and laboriously copying my drawings of monsters on graph paper into lines of comma-delimited ones and zeroes in DATA statements.
Since we had a copy of QuickBasic 4.5 I was able to compile it to an EXE and place it in the AUTOEXEC.BAT - fun times!
> I'm always happy to see projects like this and OHRRPGCE where people did something useful with the language.
Also still active after 29 years in development :) and even still looks much the same as its MS-DOS days.... so decades of work left to do. Recently ported to modern consoles (for Fighto Fantasy & Axe Cop RPG)!
I hope it didn't take too long for you to discover the wonder of GOSUB -- simulating it with GOTO and IF is a pain! GOSUB is just a single x86 'call' instruction and RETURN a single 'ret' instruction. So simple; a taste of assembly programming without stack frames. I even reimplemented GOSUB/RETURN as macros with assembly in FreeBASIC that way (you could just push to the stack). And putting all your code in a single scope, no locals/globals/arguments, makes coding more "fun".
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.
QBasic was my first language even though I learned to code in like 2008, because my friends in IRC were trolling me and told me it's the best language to start with. I learned from Pete's QB Site, which is still up and an amazing resource: petesqbsite.com
I learned two things: QBasic, and don't ask good faith questions to script kiddies in the Partyvan IRC
I, also, found that DOSBox wasn't able to run the .exe file.
Have you considered just making the game directly playable online? Sure, this eliminates the "potentially pay me some money" funnel associated with the download link, but it would be a lot more friendly to casual onlookers such as Hacker News.
To make that happen, you'd embed DOSBox on the page itself, with a preloaded disk image containing the .exe (and/or the .bas source plus an interpreter). I have a tutorial/example here, which (six years later) still seems to run fine: https://quuxplusone.github.io/blog/2019/08/11/dragonflight/
Super cool. Is it specific to QB64 only? I glanced over the source code and see a lot of stuff that doesn't look like it would be compatible with QBASIC / QuickBasic.
When I saw a zip file for a Windows application I was worried it would do that Windows thing and unzip its contents not in subdirectory. I was pleasantly surprised it did not!
Unfortunately, when I start the exe file in DOSBox Staging it only clears the screen, shows me a blinking cursor, and then does not seem to do anything beyond that.
I took a look through the BAS source file - it doesn't appear to be QBASIC source. If it was compiled with QB64 (which it seems to be) then it's not a DOS compatible binary, it'll be a 64-bit PE so unfortunately only runnable on a 64-bit version of Windows.
OP says that they've been at it for decades so my guess would be it started as a QBASIC game but then was later ported over to use QB64 and its modern features.
I recently set it up on my Mac, and then on my iPad, so I could get access to the decades worth of Turbo C and Turbo Pascal code I found in my archives.
This is really awesome! Does it allow players to build their own rooms and connect to the main module? I don't know whether QBasic allow this kind of things, though. But maybe QuiakBasic can?
[+] [-] alexjplant|5 months ago|reply
My best good friend still has a copy of it someplace on a floppy disk because we would run it on the computer that he put together out of spare parts on a piece of plywood. Thankfully he has a family and is too busy to dig it up and send it to me so I'm spared the embarrassment that would come with seeing it.
I'm always happy to see projects like this and OHRRPGCE where people did something useful with the language.
[+] [-] tdeck|5 months ago|reply
http://qbasicgui.datacomponents.net/
Ans this site has more
http://theguiblog.com/
It was a popular style of project. Some even implemented their own programming languages so they could multitask applications written for them by running lines from each app in a round-robin fashion.
[+] [-] EvanAnderson|5 months ago|reply
Because QBasic would run on versions of Windows NT that had the NTVDM (virtual DOS machine) I used it as a scripting language on early NT systems I supported. Eventually I moved over to VBScript under Windows Scripting Host when it arrived on the scene.
[+] [-] vunderba|5 months ago|reply
I remember first reading about the DATA command in the IDE built-in help (what a fantastic resource) and laboriously copying my drawings of monsters on graph paper into lines of comma-delimited ones and zeroes in DATA statements.
Since we had a copy of QuickBasic 4.5 I was able to compile it to an EXE and place it in the AUTOEXEC.BAT - fun times!
[+] [-] versteegen|5 months ago|reply
Also still active after 29 years in development :) and even still looks much the same as its MS-DOS days.... so decades of work left to do. Recently ported to modern consoles (for Fighto Fantasy & Axe Cop RPG)!
I hope it didn't take too long for you to discover the wonder of GOSUB -- simulating it with GOTO and IF is a pain! GOSUB is just a single x86 'call' instruction and RETURN a single 'ret' instruction. So simple; a taste of assembly programming without stack frames. I even reimplemented GOSUB/RETURN as macros with assembly in FreeBASIC that way (you could just push to the stack). And putting all your code in a single scope, no locals/globals/arguments, makes coding more "fun".
[+] [-] pabs3|5 months ago|reply
[+] [-] ATiredGoat|5 months ago|reply
[+] [-] ido|5 months ago|reply
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
[+] [-] mikerg87|5 months ago|reply
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.
[+] [-] kristopolous|5 months ago|reply
[+] [-] markus_zhang|5 months ago|reply
[+] [-] ashleyn|5 months ago|reply
[+] [-] sdsd|5 months ago|reply
I learned two things: QBasic, and don't ask good faith questions to script kiddies in the Partyvan IRC
[+] [-] quuxplusone|5 months ago|reply
Have you considered just making the game directly playable online? Sure, this eliminates the "potentially pay me some money" funnel associated with the download link, but it would be a lot more friendly to casual onlookers such as Hacker News.
To make that happen, you'd embed DOSBox on the page itself, with a preloaded disk image containing the .exe (and/or the .bas source plus an interpreter). I have a tutorial/example here, which (six years later) still seems to run fine: https://quuxplusone.github.io/blog/2019/08/11/dragonflight/
[+] [-] vunderba|5 months ago|reply
[+] [-] TomaszZielinski|5 months ago|reply
[+] [-] kqr|5 months ago|reply
Unfortunately, when I start the exe file in DOSBox Staging it only clears the screen, shows me a blinking cursor, and then does not seem to do anything beyond that.
[+] [-] vunderba|5 months ago|reply
OP says that they've been at it for decades so my guess would be it started as a QBASIC game but then was later ported over to use QB64 and its modern features.
[+] [-] uncircle|5 months ago|reply
Not what I expect for a game written in QBasic
[+] [-] markus_zhang|5 months ago|reply
[+] [-] Razengan|5 months ago|reply
[+] [-] dragonbonheur|5 months ago|reply
[+] [-] vunderba|5 months ago|reply
https://dosbox-x.com
[+] [-] aa-jv|5 months ago|reply
I recently set it up on my Mac, and then on my iPad, so I could get access to the decades worth of Turbo C and Turbo Pascal code I found in my archives.
[+] [-] markus_zhang|5 months ago|reply