[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)