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.
tdeck 11 hours ago [-]
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.
ashleyn 52 minutes ago [-]
Was just about to link this. I was a part of this scene at age thirteen! Was largely how I taught myself fundamentals of programming and how to solve problems. When I'm feeling particularly nostalgic, I'm occasionally tempted to fire up something like DJGPP and finish my childhood dream of making a useful GUI for MS-DOS.
versteegen 2 hours ago [-]
> 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".
EvanAnderson 9 hours ago [-]
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.
alexjplant 9 hours ago [-]
> I used it as a scripting language on early NT systems I supported
Me too! Well, sort of. Between the ages of 14 and 19 I worked as a part-time helpdesk technician. When I started we used a series of bootable floppies with DOS to use Symantec Ghost. If memory serves two floppies were required - the first had DOS and the requisite NIC driver and the second was universal and merely had GHOST.EXE on it. I developed a bootable USB memory stick image comprising all of the NIC drivers along with Ghost and a series of other useful things like a WinPE environment and maaaaaybe a Linux one via loadlin.exe. I ended up making a boot menu/shell for it in QuickBasic.
It was still in use a year or two after I'd moved to doing software engineering professionally. I wonder whether it's sitting in a drawer someplace on the other side of the country. I also wonder how this thread turned into a chronicle of my youthful programming misadventures :-D
vunderba 11 hours ago [-]
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!
alexjplant 11 hours ago [-]
Kindred spirits! Me discovering that QuickBasic was able to liberate my proggies (as I called them for a brief stint) from the confines of the editor by compiling them to EXEs was one of the happiest moments of my young computer life.
Hacking EXPLORER.EXE and changing the Start Menu side graphic with Borland Resource Workshop was another notable one.
vunderba 10 hours ago [-]
Love it. One fun hack that I figured out as a kid was that while you couldn't get rid of the mouse in Win9x - you could deliberately create a completely transparent "CUR" file.
Watching an adult try to navigate in Windows with an invisible mouse was like the digital equivalent of using a dowsing rod to find water.
pabs3 10 hours ago [-]
Wonder if there are any QBasic projects still out there.
pikuseru 8 hours ago [-]
Windows 10
ATiredGoat 13 hours 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 9 hours ago [-]
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]?
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.
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.
sdsd 2 hours ago [-]
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
uncircle 4 hours ago [-]
The website lists “light requirements” for this game: 1Ghz processor, 512 MB of RAM
Not what I expect for a game written in QBasic
markus_zhang 4 hours ago [-]
I think nowadays most people run DOSbox from a host OS so that is OK. Far less if you run DOS natively or maybe Windows 95 natively.
kristopolous 9 hours ago [-]
to the readers under about 25, qbasic was our roblox.
ashleyn 16 minutes ago [-]
Pico8 and love2d fill the same niche as well.
markus_zhang 4 hours ago [-]
How much programming features does Roblox have? I still prefer scripting in text files.
Thanks, looks like it can do a lot, no wonder kids love it.
vunderba 12 hours ago [-]
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.
kqr 11 hours ago [-]
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.
vunderba 11 hours ago [-]
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.
kqr 3 hours ago [-]
Strange. The web page mentions it being runnable in DOSBox for non-Windows platforms, but I suppose the author might not have tried that in a while...
markus_zhang 4 hours ago [-]
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?
TomaszZielinski 6 hours ago [-]
Ahh, this brings memories - back in the day GORILLAS.BAS was a perfect game, and also a mind blowing piece of code (for a kid, ofc)!
Razengan 6 hours ago [-]
What's a good modern QBasic environment for Mac? I may have an ancient game or 2 in that myself!
vunderba 1 hours ago [-]
If you want an authentic experience (proper interpreter/IDE), one of easiest ways is to get a copy of Quickbasic 4.5 and run in under DOSBox-X [1].
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.
Rendered at 15:48:43 GMT+0000 (Coordinated Universal Time) with Vercel.
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.
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.
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".
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.
Me too! Well, sort of. Between the ages of 14 and 19 I worked as a part-time helpdesk technician. When I started we used a series of bootable floppies with DOS to use Symantec Ghost. If memory serves two floppies were required - the first had DOS and the requisite NIC driver and the second was universal and merely had GHOST.EXE on it. I developed a bootable USB memory stick image comprising all of the NIC drivers along with Ghost and a series of other useful things like a WinPE environment and maaaaaybe a Linux one via loadlin.exe. I ended up making a boot menu/shell for it in QuickBasic.
It was still in use a year or two after I'd moved to doing software engineering professionally. I wonder whether it's sitting in a drawer someplace on the other side of the country. I also wonder how this thread turned into a chronicle of my youthful programming misadventures :-D
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!
Hacking EXPLORER.EXE and changing the Start Menu side graphic with Borland Resource Workshop was another notable one.
Watching an adult try to navigate in Windows with an invisible mouse was like the digital equivalent of using a dowsing rod to find water.
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
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.
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.
I learned two things: QBasic, and don't ask good faith questions to script kiddies in the Partyvan IRC
Not what I expect for a game written in QBasic
You can check out Roblox Studio - https://create.roblox.com/landing
And Luau is the scripting language - https://luau.org
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.
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.
https://dosbox-x.com
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.