A 4k-Room Text Adventure Written by One Human in QBasic No AI
42 comments
·October 12, 2025arscan
rectang
When I was in Jr. High, we had an Atari 400. Mostly I used it to play Missile Command and Star Raiders, but it also came with a BASIC cartridge.
In the back of the manual were four BASIC programs. The first three were very simple, stuff like a loop that prints your name 10 times and then exits.
The last program balanced your checkbook. It was 4 pages long. I laboriously typed it in, hunt-and-peck style, which took hours... then I hit "run".
Nothing.
I couldn't debug it. Not only did I not really understand software, I didn't have a checkbook — hell I didn't even know what "balance your checkbook" meant.
We didn't have the exorbitantly expensive Atari floppy disk drive, nor the cassette drive, so I couldn't save my work. Still, I left that BASIC cartridge in there for several days, foregoing my games, because I didn't want to lose my investment.
Eventually, I turned off the computer and the program disappeared forever.
I didn't program again for 20 years.
vunderba
When I was first introduced to BASIC in elementary school, I was spending a lazy afternoon reading in the built-in QBasic docs (being able to hit F1 and get immediate help is still one of the coolest things ever IMHO) about the SOUND keyword, which let you set a frequency and duration.
I remember irritating the hell out of my parents (and our dog) with it until one day, by accident, I noticed they couldn’t hear the tone anymore. The frequency was somewhere in the range of 15-20 kHz IIRC.
So I wrote a “PASSWORD.BAS” source that would play that high pitched sound in short, one-tick intervals continuously while polling the keyboard for input but then stop after a random amount of time. To authenticate, the user had to hit the spacebar within a one second window of the sound’s termination. Hitting the spacebar too early would also result in access denied. Fun times!
technothrasher
I made some text adventures in elementary school on the school's Apple II machines in the early 80's after playing Scott Adams' games (as a side note, it was amazing to be able to tell him directly many years later how much he influenced my learning to program). Anyway, a few years after I graduated from the school, I went back to visit, and some kids figured out it was me who's adventures they'd been playing and asked how to get past the one point in one that they couldn't figure out. I had to tell them, much to their disappointment, that I hadn't actually finished that game.
EvanAnderson
Similar background here. The public library had Apple II machines and I became quite enamored with making proto-text adventures in Applesoft BASIC. Because you had to sign-up for time I wrote a lot of my programs longhand on nth generation photocopies of "program template" sheets that they handed out at the library (lined paper with columns for line numbers, statements, comments, etc).
The spaghetti code was astounding, and I remember squeezing line numbers between existing code-- adding a "31 GOTO 40" so I could squeeze a "room" into lines 32-39.
I never did grok the idea of building an "engine". Mostly I had PRINTs, INPUTs, and IF/GOTOs.
Telemakhos
One of the most humbling moments in my life was learning from a friend what a object was, and how that differed from GOTO statements. I had already done something similar by inventing abstraction, when I figured out that I could pre-define certain musical notes and then use those defined notes more simply in my BASIC code. I had not, however, made the leap between re-using notes and re-using rooms in a text adventure. That realization that all re-used things can be abstracted was formative, and I am very thankful to my friend for having explained what he was doing with rooms. At some level, I regret that I learned BASIC before an object-oriented language; at another, I'm glad that I did, because my training in stupidity made very obvious to me my shortcoming in logic when I learned a better way.
vunderba
By the time I was a kid, most of the x86 computers I was exposed to were running DOS with the included QBasic IDE so I never had to worry about things like this.
However, we had old stacks of Compute magazine [1] lying around with BASIC source games printed out - and I remember initially being confused as to why all the line numbers were separated by intervals of 10...
arscan
Love it! It really is a good first program to write as a kid (at least those from a certain generation).
And my memory might be from our Apple 2gs and AppleScript, actually (hence my caveat in the comment). But I’m sure the program was just PRINTs, INPUTs, IFs and GOTOs :)
mromanuk
I made a game in the 80s in my Commodore 128, was a super rudimentary maze, you moved the sprite and need to reach the center of the maze. That was it. It was very basic, but I was proud and showed it to some folks. I'd love to see the code and game now.
skopje
I downloaded the rooms.txt file and the word "handcrafted" is doing some heavy lifting. It's like one sentence per room. Did I miss something? I don't want to play the game (I hate text adventures), but I want an idea of how much effort went into this.
Example:
--ROOM 22 START-- Village of Oathmoor 23,0,0,21 You find yourself in a narrow, dimly lit alley. An ELDERLY WOMAN sits perched on a broken stool, her piercing gaze fixed on you with an unsettling intensity. --ROOM 22 END-- --ROOM 23 START-- Village of Oathmoor 24,22,0,0 The road ahead begins to slope gently upward, winding its way past abandoned, barren buildings whose windows gape like empty eyes. --ROOM 23 END-- --ROOM 24 START-- Village of Oathmoor 0,23,25,0 The eerie stillness around you is oppressive, broken only by the creeping sensation of unseen eyes upon you. A chill snakes down your spine. --ROOM 24 END-- --ROOM 25 START-- Village of Oathmoor 26,0,0,24 A faint melody drifts toward you, its haunting notes carried on the breeze. The aroma of a meal cooking over a distant fire stirs both hunger and curiosity. --ROOM 25 END-- --ROOM 26 START-- Village of Oathmoor 27,25,0,0 You stumble upon a makeshift camp where people dance in defiance of their sorrows. The leader of this ragtag group locks eyes with you, their expression unreadable. --ROOM 26 END--
arscan
Even if it’s only 1 sentence per room (it’s not), that’s still 4000 sentences. I’d guess this is at least a few hundred pages of written work (without downloading it and just based on what you’ve shared). That seems pretty substantial to me.
Not sure what the length has to do with handcraftedness though. This comment is handcrafted even if it is short.
jjmarr
Presumably it's similar to Soda Drinker Pro, which is 102 rooms, each with terrible MS paint drawings, in which you drink a soda and walk around for a minute or two.
helpfulclippy
I’m surprised to see a QBasic game with 1GHz CPU and 512MB RAM required! Is that because the game needs it, or because that’s what it takes to even run a modern OS with dosbox or something?
vunderba
It's because it's not written in QBasic. It's written in a variant of QBasic called QB64 [1] - a spiritual successor to Microsoft's QBasic intended to run on modern 64-bit machines.
I went over the BAS source the last time this was posted a few weeks back and it has a lot of keywords that are specific to QB64 so unfortunately you can't run this on a true DOS machine (or DosBox).
[1] https://qb64.com
bdcravens
The latter I assume. The game does load the text file into memory, so the old 640kb machines would probably struggle, but otherwise, it looks like it should run well enough on a 386 (or even a 286, where I wrote my first QBasic scripts, though they were nowhere nearly as polished)
ATiredGoat
In an age where games are written by algorithms and dialogue is generated by AI, The Labyrinth of Time’s Edge stands apart. It’s the first open world "like" modern text adventure written entirely by a single human being, no AI, no procedural generation, no corporate fingerprints. Just words, code, and imagination. Built in pure QBasic, The Labyrinth of Time’s Edge now spans over 3,900 handcrafted rooms which will be released in a week's time. Each one written line by line by one programmer-adventurer determined to prove that storytelling still belongs to people. Explore haunted villages, forgotten catacombs, and worlds born from candlelight and memory. It’s free to play, made from love, obsession, and a refusal to let imagination be automated.
XiZhao
This comment reads like it was ai generated
yodon
>This comment reads like it was ai generated
It must be amazing to feel that way about the totality of human literature. Might want to adjust your priors somewhat.
cheschire
Ehh, I think GP was saying it doesn’t fit with the tone of a message board reply, so it seems cut and paste from some outside place. Either a press release, a review snippet, or AI.
hatthew
AI, or press release
andrewflnr
I guess part of what's annoying about LLMs is that they write like press releases.
CuriouslyC
Maybe "human generated" is your marketing hook, but I personally don't care what the source of something is, I care about the quality.
citizenkeen
> It’s the first open world "like" modern text adventure written entirely by a single human being
This rings false
droolboy
When I was in my first year of junior high they had formal dances. But for the (cooler) nerdy kids with no dates they opened up the computer room. One of the older kids had a big floppy he brought from home. On it he had a simple QBasic RPG. If you ran into an enemy it would start an RPG battle and all the graphics were made from 2D arrays. It was awesome! It blew my mind and I spent the rest of the year learning and building my own. Great times! Thanks!
xnx
4K resolution text?! 4000 rooms?! Ah, 4 kilobytes.
hatthew
From the article, 4000 separate ingame rooms to explore
Retz4o4
lol no
zem
that's pretty awesome, a real labour of love. wonder how hard it would be to convert to a MUD so that people could wander around the world together.
gigatree
Looking forward to most posts having “No AI” tagged on. Definitely a huge plus.
BiraIgnacio
This makes me wonder if there will be a time when "No AI" will be considered up-scale (of sorts) like hand-sewn clothes or artisan bread
eru
And, of course, it will be inferior to what the machines make.
Just like machine created cutlery is essentially perfect, but human smithed cutlery will have lots of small imperfections.
whtrbt
In what way do those imperfections make something like cutlery inferior?
nomel
You might like Neal Stephenson's "The Diamond Age".
egypturnash
If you are trying to beat the record for “most rooms in a text adventure”, I’m afraid you’ve got a long way to go - Level 9’s Snowball has more than 7k rooms.
nomel
Looks like marketing [1].
> The game is advertised as having more than 7.000 locations. In reality there are about 200 unique locations and the rest is part of a maze with exact locations.
[1] https://spectrumcomputing.co.uk/entry/6993/ZX-Spectrum/Snowb...
selcuka
> over 6800 of these rooms are essentially identical. Snowball is used in this context as the ultimate illustration of the absurdities of old-school adventures, with their mazes and sprawling geographies full of corridors and empty rooms. [1]
Jemaclus
IIRC, AvatarMUD (avatar.outland.org) has 20,000+ rooms in it. It's been a long time since I played, but it's absolutely massive!
gerdesj
Give your preferred AI agent internet search powers and look up how Elite managed to cram rather a lot of game into a nominal 64KB on a C64 or 32KB on a BBC model B.
That's a first person 3D space craft simulation with a very impressive Heads Up Display with vector graphics (unfilled on BBC and C64, filled on PC). It is also a commodity trading game to improve your spaceship etc and with a massive amount of variety in a binary smaller than an empty Word doc. Also: joystick and keyboard drivers and so on.
It's quite a tale.
antod
It sure was. Although my favourite Elite port was the Amiga one.
Another one I was amazed by was Tomahawk on the Spectrum. A wireframe helicopter gunship flight sim with live ground campaign happening around you in 48k.
unit149
[dead]
The first program I ever wrote was a choose your own adventure, I think written on my family’s IBM PC jr in Basic. It’s pretty amazing how far a kid can get with GOTO statements and a lot of patience. But for some reason I couldn’t (or didn’t know how to) save it, so I’d work on it all day, have my sister and mom play it, and then shut off the computer thus losing my days work.
Or at least, that’s how I remember it. It’s been a good 40 years though and I wouldn’t be surprised if reality was quite a bit different.
Edit: I’ve been thinking about this a bit and honestly my motivation for writing software hasn’t really changed. The users, sure, but not the motivation. It’s just thrilling to share things I built with other people.