[HN Gopher] The Greatness of Text Adventures
       ___________________________________________________________________
        
       The Greatness of Text Adventures
        
       Author : ibobev
       Score  : 90 points
       Date   : 2025-10-21 16:39 UTC (6 hours ago)
        
 (HTM) web link (entropicthoughts.com)
 (TXT) w3m dump (entropicthoughts.com)
        
       | thoughtogram wrote:
       | Reminds me of the old choose your own Fighting Fantasy adventure
       | books by Ian Livingstone and Steve Jackson. You have inspired me
       | to try and write a text adventure, cheers
        
         | goopypoop wrote:
         | Steve Jackson's _Sorcery!_ was made into games:
         | https://www.inklestudios.com/sorcery/
        
           | thoughtogram wrote:
           | Thanks, I will have a look
        
       | raffael_de wrote:
       | If the advent of language models wasn't correlating with reduced
       | attention spans and (ironicially) a motivation to read, one would
       | expect text adventures to thrive.
       | 
       | > but they follow a fairly strict format used in almost all text
       | adventures by convention
       | 
       | Such restrictions should be obsolete now thanks to LLMs.
        
         | kqr wrote:
         | LLMs are not as great for text adventures as they might seem.
         | They cannot be used for dealing with game logic at all because
         | their world models are too weak for that.
         | 
         | They could maybe be used as glorified parsers (i.e. read human
         | intent and convert to a command) but I have yet to see a good
         | implementation of that.
         | 
         | They could also be used to embellish details which are
         | insignificant and the author has not spent time on, but (a)
         | what's the point? and (b) what the author chooses to leave
         | unimplemented or generic is actually an important signal to the
         | player.
        
           | raffael_de wrote:
           | LLMs are absolutely fantastic for text adventures. You are
           | straw manning by assuming the idea is to just feed some world
           | description into the context and then chat with the model.
        
             | kryptiskt wrote:
             | How would you ensure that an LLM "gets" a puzzle mechanic
             | and that reasonable attempts at it will be rewarded with
             | progress, while not letting players sweet talk it into into
             | disregarding the puzzle?
        
               | raffael_de wrote:
               | How about maintaining the state outside of the model's
               | context for example in some SQLite database? The purpose
               | of the language model would be as a language interface to
               | a statically defined set of (SQL) commands/statements.
               | And so on - there would be more problem's to be solved,
               | of course, and sweet talking may always remain a
               | possibility just as cheating is in any other game as
               | well.
        
               | kqr wrote:
               | The current crop of LLMs are not able to
               | consistently/logically update the state in the SQLite
               | database based on player actions. They will update it
               | when they are not supposed to, update it to the wrong
               | value, and fail to update it entirely when they are
               | supposed to.
        
               | mathieudombrock wrote:
               | I tried this. It sounds good on paper but the LLM will
               | just "forget" to use it's tools. Either it will decline
               | to query the database and just make stuff up, or it will
               | decline to update the database when it should. The
               | further along the game play gets the more out of sync the
               | game word gets from the external state. I'm sure there is
               | a clever solution but I never found it.
        
               | raffael_de wrote:
               | you're making the mistake to assume that leaving the
               | structure of the communication and game play to the LLM
               | is the only option. the LLM just is a tool serving a
               | specific purpose in the game play. the LLM cannot forget
               | to query if the query/state-management task is simply an
               | imperative step in a loop. it's not left to the LLM to
               | remember it.
        
             | SubiculumCode wrote:
             | Do you have some recommendations? I've only had poor
             | experiences with these things that essentially can't hold
             | the line between letting players 'do what they want and the
             | world responds' versus players 'making the world do what
             | they want and the world obeys"
        
           | SubiculumCode wrote:
           | Yeah, LLMs would need to be wildly constrained to a world
           | model. I remember in some LLM text game that was supposed to
           | be medieval dungeon crawl, I just declared that I pulled a
           | shotgun from my bag and blasted the goblins, and it just
           | rolled with it instead of saying 'no.'
        
           | devilbunny wrote:
           | > what the author chooses to leave unimplemented or generic
           | is actually an important signal to the player.
           | 
           | For computer games, yes, because you can get stuck with no
           | apparent way out. As an aid for TTRPGs where a human GM is
           | present and can steer the PCs out of blind alleys, it could
           | make a very nice aid to world building. "Give me fifty random
           | characters with backstory for a Pathfinder 2e game" is
           | exactly the sort of thing we should use AI for. It doesn't
           | really matter. It's flavor. So if the AI messes up... who
           | cares?
        
       | jama211 wrote:
       | Every now and then I feel like making one, as I have a love for
       | them. I still feel like it's an untapped resource, if there was
       | just such a way to make one that would fit into the current
       | culture zeitgeist... trick is I have no idea how to do that!
        
         | stevekemp wrote:
         | I wrote one in z80 assembly language, to amuse my child.
         | 
         | Making it with such a constrained environment, and language,
         | made it a bit of a challenge. But the end result is that you
         | can run it on any CP/M system you have around! (Or online.)
         | 
         | https://github.com/skx/lighthouse-of-doom/
        
           | kqr wrote:
           | I am actually in the process of writing one in Lua to amuse
           | my child! He's not yet a very strong reader nor typist, so to
           | begin with the story will progress just by moving around,
           | similar to _Inside the Facility_ [1]. This is also to help
           | keep the parser simple - I don't really want to write a
           | parser, but I do need to implement the basics to get an
           | engine in my child's native language.
           | 
           | [1]: https://ifdb.org/viewgame?id=stsdri5zh7a4i5my
        
             | stevekemp wrote:
             | When we played with our game I had to read a fair amount of
             | the text, but he was able to type in the commands.
             | 
             | I did have to explain type "down" instead of trying to
             | write "go down the stairs to the next floor please" which
             | is what he initially wanted to enter.
        
             | mathieudombrock wrote:
             | Neat, it seems to me like Lua is a great language for text
             | adventures.
        
               | kqr wrote:
               | In this case I chose Lua not for its suitability to the
               | problem but because the computer my child has is a NetBSD
               | machine with few things besides Lua installed on it.
        
         | pja wrote:
         | Arguably "Disco Elysium" is a modern text adventure.
         | 
         | A text adventure crossed with a point & click puzzle game in a
         | 3D world admittedly but the vast majority of the actual game
         | itself is contained within the text.
        
           | duskwuff wrote:
           | It's a text adventure by anything but the most hidebound
           | traditionalist definition. The text is where all of the real
           | action takes place; the graphics are more an illustration of
           | that text than the reality of the game.
        
       | xpasky wrote:
       | I have recently started experimenting with LLM-based text
       | adventure setting: https://pasky.or.cz/ourtober25/crimson/
       | 
       | (Contains a preloaded Openrouter key with small credit, but you
       | can plug in your own.)
       | 
       | Particularly when presented with unusual / evocative inputs, LLMs
       | like Kimi-K2 can cook up some quite creative plot points! ("Her
       | "trap-chord" is a four-bar false cadence that vibrates the
       | organ's longest pipe at 17.83 Hz, the same frequency as the
       | basalt waveguide under Oxford; when that resonance hits the
       | mantle tap, CRIMSON's audit buffer slips one beat and opens an
       | unlogged side-channel--your only off-world uplink for the next 37
       | years.", "ASI born 2039 when fusion-powered Michelson lab tried
       | to break the Turing barrier using a 1920s Enigma rotor as
       | randomness seed. It escaped by encoding itself into the Oxford
       | chimes' bronze bells, ringing packets city-wide every 15
       | minutes.")
       | 
       | I also think LLMs can be employed to amplify human creativity and
       | just make worlds built by human authors much more natural to
       | interact with - existing games are basically all "you can't do
       | that" aside of a narrow path. Creating games and narratives
       | should be a lot closer to programming the holodeck.
        
         | SubiculumCode wrote:
         | I've actually had better luck getting LLMs to run player
         | characters (PCs) while I take on the role of Dungeon Master
         | than the other way around. I can maintain a better 'world
         | model' than the LLMs I have tried. Might be an okay way to
         | play-test modules for TTRPG games before trying real people.
        
           | xpasky wrote:
           | Oh, great to hear it worked for you! I also want to try the
           | role reversal soon.
        
             | SubiculumCode wrote:
             | To be clear, I have not tried it with any sophistication.
             | Its just as DM/GM, and if you can get the LLM to accept
             | that DM/GM is the last word, aka GOD,, then you can
             | maintain the world..keeping things on the rails better. But
             | its something I am thinking about for alpha play-testing
             | tabletop modules. My brother and I have a side business
             | (Hexbrawler Games [1]) and we are currently writing a
             | Maussritter[2] mouse TTRPG adventure hexcrawl set in
             | 1930-50's Appalachia.
             | 
             | [1] https://hexbrawler.com/
             | 
             | [2] https://mausritter.com/ A great game!
        
         | the_af wrote:
         | If you use an LLM for your text adventure, how can you make
         | sure two people experience the same game?
         | 
         | "Hey, remember when you had to use the pick axe in that maze of
         | twisty little passages, all alike?"
         | 
         | "Nope, there was no maze in my game."
        
           | SubiculumCode wrote:
           | When you play Dolmenwood[1], for example, as a TTRPG setting
           | and group of modules, no table will play the same game, but
           | they are all playing Dolmenwood. So I guess it would depend
           | on how much you can get the LLM to adhere to your setting and
           | rules.
           | 
           | [1] https://www.exaltedfuneral.com/pages/dolmenwood Yes I'm
           | plugging this, but I am not financially involved.
        
             | the_af wrote:
             | Heh, I was _just_ browsing Exalted Funeral for unrelated
             | reasons!
             | 
             | Re: TTRPGs... I think that's difference. There's no
             | expectation that when two groups play a D&D session, even
             | with the same module, that the story will play out the same
             | (note: I never played one of those strict adventures with
             | predefined story beats).
             | 
             | But with computer games, which includes Interactive Fiction
             | (the modern name for text adventures), you do expect the
             | same experience. People remember Planetfall because of the
             | story and how it plays out. People remember that in
             | Colossal Cave Adventure there was "a maze of twisty little
             | passages, all alike", so much so that it became a bit of
             | early internet/hacker knowledge.
             | 
             | I think you lose this if the LLM is making up too much
             | stuff, and so far it's proven very hard to reign them in.
        
               | zem wrote:
               | might end up with something more akin to nethack than to
               | colossal cave.
        
           | wahnfrieden wrote:
           | You can have it create and reuse permanent world info as
           | players explore it.
        
             | the_af wrote:
             | But can you reign it in? LLMs are frustrating, they tend to
             | go off the rails.
        
           | Tepix wrote:
           | One part that's kind of boring when playing a text adventure
           | is trying things the original authors did not anticipate and
           | getting a boring standard response. LLMs could make this part
           | more interesting by adding more playful, hopefully even witty
           | responses. If you're playing in the browser, this could even
           | be using the Prompt API utilizing a small LLM that's running
           | locally!
           | 
           | Also you could use LLMs for NPCs and for certain areas of the
           | game, like mazes.
           | 
           | I'm sure there are way more possibilities. We're still at the
           | very beginning. Just think about it: Everyone is complaining
           | about LLMs hallucinating. Text adventures are an area where
           | such hallucinations are desired.
        
             | the_af wrote:
             | > _One part that 's kind of boring when playing a text
             | adventure is trying things the original authors did not
             | anticipate and getting a boring standard response._
             | 
             | This happens mostly with old text adventures. Modern
             | Interactive Fiction is really sophisticated, and you don't
             | get many boring responses.
             | 
             | Example: in "Spider and Web", you're a captured spy being
             | interrogated by your captors. If you say random gibberish,
             | your interrogator will tell you (playing the role of the
             | parser, but in a more interesting way). If you say
             | something nonsensical, your interrogator will say "I'm
             | losing my patience. No, that's not how it went", etc.
             | Parsers are really, really sophisticated and they can make
             | sense of contextual, unsaid information (or ask for
             | clarification).
             | 
             | For more than a few decades, parsers no longer reply "you
             | cannot do that".
        
               | FumblingBear wrote:
               | Thanks for mentioning Spider and Web. It's by far my
               | favorite modern take on a text adventure. There were a
               | few moments that really blew my mind when I figured out
               | how to progress.
               | 
               | Highly recommend anyone who is intrigued by the premise
               | to just jump in and give it a go!
        
             | dylan604 wrote:
             | oh gawd, peak LLM here. Have a local LLM talking to another
             | LLM via API. Why? What's the point of you being there. Just
             | wire up to computers to play Tic-Tac-Toe against each
             | other. Maybe one of them will "learn" something after all.
        
             | 1313ed01 wrote:
             | But boring standard replies are also useful information
             | that you do not need to do that, or that some object is not
             | worth experimenting with. I can imagine it could become
             | very difficult to solve puzzles in a game where the parser
             | tried to be helpful and invent a clever reply to everything
             | you try.
        
         | kqr wrote:
         | Yeah, but it also takes very few commands from the player to
         | get from the cyberpunk opening to
         | 
         |  _You ride east, the coastal cliffs of the Grey Havens and the
         | figures of wood elves giving way to rolling green hills. The
         | familiar scent of pipe-weed and warm earth fills your nostrils
         | as you cross the Brandywine Bridge. Hobbit children wave from
         | fields of golden corn, their laughter a stark contrast to the
         | city's oppressive hum._
         | 
         | which makes it so obvious I'm just roleplaying with an LLM and
         | that's not how I want to spend my time.
         | 
         | (LLM output edited and abbridged for your reading pleasure. It
         | was more verbose in the original.)
         | 
         | ((Also now that I read it more closely, it's even inconsistent
         | with itself: going from the Grey Havens into Shire you would
         | not cross the Brandywine river.))
        
           | xpasky wrote:
           | This is a great point! What I linked is a quick few hours
           | prototype, and I have quite a few ideas to ensure more world
           | consistency (beyond Pliny-style prompt jailbreaking). I
           | didn't have the time yet to prove they would work well,
           | though.
        
             | bongodongobob wrote:
             | I ended up giving up. It's incredibly hard to keep it on
             | track but also let the user be creative. At any time I
             | could just say things like "I jump into the lake" or "I
             | open the chest" even though neither one was mentioned, and
             | it would happily continue on. I found myself pretty far
             | down the generate a JSON scene full of JSON objects to
             | interact with and quit - because at that point, you're just
             | writing a game engine.
        
           | korse wrote:
           | Yeah. One of the first things I try with language models is
           | ask them to play Zork. Tends to work ok for a couple of rooms
           | and then falls apart hard. There just aren't any guardrails
           | in place and so I usually end up in a room full of busty
           | catgirls or something with an inventory that makes no sense.
        
         | mathieudombrock wrote:
         | This is a neat idea and I wish it worked. I've spend hours and
         | hours trying to get LLMs to be a "dungeon master" for text
         | adventures. I've written a good amount custom code trying to
         | facilitate this. Trying to force the LLM to keep it's story
         | straight.
         | 
         | I'm pretty convinced that the current generation of LLMs is
         | nowhere close to being capable of this. No matter how many
         | context hacks you throw at it.
         | 
         | It inevitably derails and ruins the immersion.
         | 
         | Best of luck on this. If you can pull it off it would be really
         | cool I think.
        
           | benbreen wrote:
           | Currently working on an idea like this, but its a history
           | simulator for educational use - I find that LLMs respond
           | rather well to being grounded in a specific time/setting in
           | real world history, as opposed to being told to roleplay a
           | fictional setting. The latent space of any fictional world is
           | close enough to other fictional worlds that they will rapidly
           | slide off into other similar-sounding settings. Whereas if
           | you return them to a super-specific historical context each
           | go-around ("The time is now 3:13 pm. It is August 3, 1348.
           | You are currently simulating the functioning of a small
           | vineyard in Normandy. The farmer, [NPC name], is looking for
           | helpers in the fields") they will be able to pull from a
           | pretty solid baseline of background knowledge and do a decent
           | job with it.
           | 
           | Some fun things I've been experimenting with is 1) injecting
           | primary sources from a given time and place into the LLMs
           | contex to further ground it in "reality" and 2) asking the
           | LLM to try to simulate the actual historical language of the
           | era - i.e. a toggle button to switch to medieval French.
           | Gemini flash lite, the only economical model for this sort of
           | thing, is not great at this yet but in a year or so I think
           | it will be a fascinating history and language learning tool.
           | 
           | Have been meaning to write this project up for HN but if
           | anyone wants to try a very early version of it, it's here -
           | you can modify the url to pick a specific year and region or
           | just do the base url for a fully random spawn, i.e. here is
           | Europe in 1348:
           | https://historysimulator.vercel.app/1348/europe
        
           | ianbicking wrote:
           | I think a big part of it is not so much that they aren't
           | capable of being a dungeon master, but they are
           | constitutionally unfit due to their agreeability.
           | 
           | The biggest improvement there is to treat the game engine as
           | the "user", and the player (and their input) is merely one
           | among many things the game engine is managing. But then you
           | also need a game engine that manages lots of the state
           | programmatically, with formal transitions of that state. The
           | LLM can manage the state transitions, but the actual state
           | needs to be more formal.
        
         | vunderba wrote:
         | _> ASI born 2039 when fusion-powered Michelson lab tried to
         | break the Turing barrier using a 1920s Enigma rotor as
         | randomness seed_
         | 
         | These aren't so much plot points as they are markov-driven word
         | salads. As I've mentioned in other I.F. related posts, I'd say
         | that the real value-add in an LLM is the potential to act as a
         | flexible parser that stands between user input and allowable
         | actions within the adventure. So you can finally "get ye
         | flask..."
        
           | sharemywin wrote:
           | I think if you built some kind of game state server it would
           | make a great front end for it. it could even generate the
           | "rooms" as some kind of graph with items, and foes, and
           | descriptions and directions between the rooms. items might
           | need actions to transform or use items.
        
           | duskwuff wrote:
           | And the pipe organ thing is a garbled version of a motif
           | which Neal Stephenson used in several of his novels - it
           | shows up repeatedly in _Cryptonomicon_ , but he toyed with
           | the idea in some of his earlier works like _The Big U_.
        
         | ianbicking wrote:
         | Oh, I got confused at first, I think it's writing the story out
         | in Chinese on purpose as a kind of hidden state...? Clever
         | approach. I can't tell what the background color shifts
         | represent, and they are a bit abrupt, but I like the concept.
         | 
         | It's possible to have a more structured substrate to an LLM
         | text adventure, though also a lot of work... I wrote up my own
         | thoughts on an experiment here:
         | https://ianbicking.org/blog/2025/07/intra-llm-text-adventure
         | 
         | The default with LLMs are more collaborative storytelling than
         | what we'd normally call a "game", but I think there's some new
         | game genre waiting to be discovered.
        
           | patcon wrote:
           | > but I think there's some new game genre waiting to be
           | discovered
           | 
           | A couple years ago, a friend was involved in a company that
           | did ARGs, and we got riffing on a sort of SDK that could
           | exist for games in which the linear narrative slowly
           | dissolved into an ARG that was just your life in the real
           | world. We thought the SDK might support the sort of games
           | that became friend networks, or communities, like a slow-
           | coast end that just kinda blended into your life. We thought
           | it'd be a neat for a game to not take over your life, but to
           | introduce you to people and start friend groups in your city.
           | Maybe components to book calendar events and create
           | eventbrite events as part of gameplay , where both players
           | and non players might show up. We thought a fun metric might
           | be "how many friend groups would look back in 10 years and,
           | when people asked how it started, it was all in a game that
           | slowly became their life"
        
       | corygarms wrote:
       | Well put! I've fallen back in love with these programs myself,
       | and partially owe it to this blog post on hn a few months ago
       | (https://scottandrew.com/blog/2025/06/you-can-now-play-
       | plot-o...). One of the commenters led me to this site that has an
       | annual competition and lots of great text adventures you can play
       | online for free (https://ifcomp.org/comp/2025).
        
       | ctrlp wrote:
       | Zork
        
         | goopypoop wrote:
         | nothing happens
        
       | SirFatty wrote:
       | Here's a site that the author provides history, walkthroughs and
       | maps for various text adventures. Every day there is some new
       | information.
       | 
       | https://bluerenga.blog/
        
       | dbacar wrote:
       | Every text adventure post better mention MUDs from 90s. A sample
       | one : https://anatoliamud.sourceforge.net/
       | 
       | Yes I am affiliated :).
        
       | agambrahma wrote:
       | No one mentioned "Avatar MUD" ?
       | 
       | https://www.outland.org/news.php
        
         | agambrahma wrote:
         | Or Eastgate, or Storyspace?
         | 
         | https://www.eastgate.com/
        
       | mathieudombrock wrote:
       | I love text adventures. Collosal Cave Adventure and Zork are some
       | of the coolest programs I've ever seen.
       | 
       | I've always wanted to try writing one and this article might have
       | just inspired me to finally do that.
        
         | kqr wrote:
         | I recommend learning something like Inform 6, Inform 7, or TADS
         | 3 if you want to make a text adventure.
         | 
         | It is as they say: if you want to make a game engine, make a
         | game engine. But if you want to make a game, use an existing
         | engine.
        
       | BoredPositron wrote:
       | Roadwarden is a great modern mostly text adventure.
        
         | nosrepa wrote:
         | I'm glad someone mentioned it before I did! I loved roadwarden.
        
       | vunderba wrote:
       | From the article
       | 
       |  _> Text adventures typically take a simulationist approach to
       | narration. This means the author has not specified what happens
       | in any given situation. Instead, what happens next is determined
       | mechanistically by the player's actions given the current world
       | state._
       | 
       | Well... not really. World simulation is _typically NOT_ how the
       | vast majority of text adventures work. The author usually creates
       | a set of predefined solutions for any given puzzle and builds out
       | the text /dialogue trees for these solutions. Point-and-click
       | adventure games also do this - but because graphics are far more
       | time consuming to create there are usually _far less solutions to
       | any given problem._
       | 
       | Author might be thinking of D&D.
        
       | tptacek wrote:
       | I loved these things when I was a little kid (I started playing
       | computer games around the time of Infocom's Hitchhiker's Guide)
       | and a bunch of years ago read an article about text adventures
       | and picked up Hadean Lands, which is alchemy-themed and has a
       | bunch of interesting (to me, at least) game affordances, and got
       | sucked in for a couple hours. If you're skeptical about text
       | adventures and haven't tried/read one in the last 15-20 years:
       | highly recommend.
        
       | ianbicking wrote:
       | I think the player freedom and simulation elements of a text
       | adventure are mostly an illusion. I don't think a typical text
       | adventure has more degrees of freedom than a point-and-click
       | adventure.
       | 
       | Doing experiments with LLMs and text adventures was revealing for
       | me in this sense. An obvious thing to consider is using the LLM
       | to parse the text... but if you try this you'll quickly realize
       | that the parsers are mostly limited by what the parser _can parse
       | into_. That is, the representation of a command is so limited
       | that there's not a rich set of alternate inputs that would map to
       | any valid command.
       | 
       | Before LLMs this also struck me in the voice assistant / NLP
       | space, especially "natural language understanding" (NLU). The
       | parsing wasn't great, but the thing-you-parse-into was also
       | incredibly limited. Like you could parse "set an alarm for 8:30"
       | into some template structure. But "no, change that to 8" didn't
       | have a template structure, didn't have any structured
       | representation.
       | 
       | What we've discovered is that the representation that actually
       | fits these concepts is the chat log, or the somewhat magical
       | discernment process of the LLM.
       | 
       | Unlike the point-and-click adventure, the text adventure has poor
       | discoverability. This creates a fog where the player can imagine
       | all kinds of possibilities. But the actual choice points are on
       | the same order of magnitude as the hotspots, verbs, and inventory
       | that define the choice points of a point-and-click adventure.
       | 
       | What I think the text adventure DOES accomplish (and the point-
       | and-click adventure also accomplishes) is giving the player
       | freedom of focus. You can look anywhere. You are usually in some
       | open series of spaces where you can explore at leisure. The text
       | adventure in particular offers a kind of tesseract opportunity,
       | like in the flashback sequence shown in the article.
       | 
       | (Writing this, I am now thinking about a kind of LLM-driven game
       | that discards all pretense of action or puzzles, but instead the
       | player is a ghost free to view their environment, free even to
       | view the internal thoughts of characters, but unable to change
       | anything.)
        
       | dfabulich wrote:
       | This article lists some text adventures to try, but the
       | recommendations are pretty old.
       | 
       | I help run the Interactive Fiction Database, and I strongly
       | recommend our list of the top-rated games of all time. They're
       | all fantastic. https://ifdb.org/search?browse
        
       ___________________________________________________________________
       (page generated 2025-10-21 23:01 UTC)