The line between IF and text-based RPGs

They totally affect the text. Fallen London is probably the uber-example of a QBN. There are different structures, but in FL the story is told by “cards” that can be randomly drawn. Not every QBN follows the card-based format but that’ is probably the easiest way to envision how it works.

The qualities the player builds affect what cards are in the deck and can be drawn. For example, there can be a quality called “lawbreaker” which increases when the player makes choices to steal something or commit crimes. The higher this quality gets, the more “a wandering policeman recognizes your face” cards are in the deck for you to draw and need to deal with. They might require you to pay a fine, might send you to jail where you have to escape. This same quality might put a card in the deck “Befriending a thief” which lets you get information about an underground thieves guild that you wouldn’t have access to if the player didn’t build up the lawbreaker stat.

There could be a “disease” stat that increases if the player messes with things that might cause infection and at a certain point the player might need to pay for medication to reduce the disease quality, or go in the hospital, or potentially die. When diseased, there might be a chance that you won’t be admitted to a quarantined area, or you could be so “diseased” that you are accepted as an ally of toxic monsters who will stop attacking you.

There may be generic qualities like “suspicious idea” that are collected from random encounters - you might draw a random card “Party Gossip” representing that you learn random information that increases suspicious idea which increases your chance of having new choices when doing random research in general. If you’re in a library and suspicious idea is at 5 you might have a 50% chance to find a useful book with information when searching. If it’s at 9 you may have a 90% chance. And finding information might cost you 5 suspicious idea so you have to do more research to be successful again.

5 Likes

The question of what separates an RPG from a QBN really gets more and more interesting the more I think about it… Because it really gets to the core of how a QBN works and thinks.

Sure, both RPGs and QBNs have “stats”, but I’d say that in an RPG, things have properties. The player has stats for his strength, intelligence, etc.; the NPCs and enemies have stats of their own; equipment has certain stats; and so forth.

Whereas in a QBN, everything is a “quality” that you have. The countess doesn’t have an affection level of 4 towards you. You have a “The countess likes you” quality on level 4. You’re the center of everything. And basically, everything is just a global variable, created equal.

Yes, everything. Physical, metaphysical, it doesn’t matter. A special amulet; a number of incriminating documents, working like a currency; a sense of melancholy; a rented apartment; a recurring nightmare; a relationship to an NPC.

What I’ve always found fascinating about Fallen London especially is the worldview that comes with this kind of mechanic – where everyhing, no matter what, is a “quality” that can be gained or lost, and who you are as a person is just the sum of your qualities at this moment in time.

6 Likes

Wow. This is such an interesting thread. I’m amazed at the depth and subtle differences. In my (admittedly very inexperienced) mind, RPG equals “leveling up so I can swing that oversized superpowered sword”.

So thanks everyone for the information and the game suggestions.

3 Likes

In the Berlin Interpretation of the term ‘roguelike’, there is a ‘Low value factor’ that is formulated like this:

That seems to be interestingly in line with how you are thinking of RPGs here: there’s a certain kind of symmetry between the player character and the rest of the world.

But I think it’s far more useful to talk about Fallen London in the way you do (which is insightful), than to try to elevate it to a general theory about QBNs versus RPGs. Those are very wide categories.

4 Likes

Yes, roguelikes are sort of the other extreme, aren’t they? With them, it’s all about individual actors and their properties, and how they interact. And there’s this ambition that as many properties as possible are shared between all actors, to give a sense of predictability to the gameplay.

You’re right, I was really talking more about Fallen London. Admittedly, I may have read a lot of stuff about QBNs, but I don’t have that much actual experience with them outside of that game (which shows in my examples).

3 Likes

Interestingly, I think this dichotomy is/has played out within tabletop RPGs as well – most games of the 80s / 90s have more simulationist systems where a character’s stats are either the classic DnD Strength, Wisdom, etc. array, or near-cousins to that approach. But with the rise of narrativism and genre emulation starting in the aughts, you began to get games like FATE, where each character is defined by more or less free-form aspects; a daredevil character might have Watch This 4 and Never Lose My Hat 3 as their core competencies.

7 Likes

I would contrast RPGs and adventures, specifically, rather than IF in general. It’s actually adventures versus almost all other types of games, and the distinguishing feature is that adventures avoid repetitive activities. Most games have a core repetitive activity that repeats every 10 to 30 seconds. The nearest thing in an adventure is mapping, but repetition is limited to the number of rooms, and diminished in force because in theory every room is unique.

7 Likes

----…ahem…----

> X BUTTON

It’s the X-button on the computer’s keyboard. You have to deduce its function from its place between the other keys, because the letter has faded through long-term repetitive use.

3 Likes

That’s something I’m wondering about. The thing I think AI is really good at is summarizing a lot of information and presenting inferences that may or may not be true. If 100 people write product reviews, an AI can report “A lot of people like this product and think it smells good, but a few also complained about the battery life.”

Is it possible to have a “curated” AI or LLM which is trained just on a specific world model? Like if Cragne Manor had npc townsfolk you could ask about elements of the game worlds it’s used as a database. It might spout some completely wrong nonsense, but in the context of a game where you’re talking to a random creature that’s fine. Characters who hallucinate interesting weird discussions sounds like the ideal.

Yeah, in an RPG the player knows the rules and some of the gameplay involves things like “Oh, my Stunning Greaves of +3 to Necromancy will work better than this Health +1/Charisma+3 Ascot of Loquacity.” (because inexplicably they take up the same slot)

Which is the type of game structure where some truly emergent gameplay can occur. The author of course needs to create the narrative confines but take a granular step back. Working with Storynexus, which was basically the FL engine, it made me re-evaluate some linear narrative stories I had and think more in terms of board games or card games. Cards/Passages Plot/Narrative is purposely a little less specific so the player can make inferences and rationalize how event A led to event B even though they could have been experienced in any order or not at all. Kind of how Dwarf Fortress feels epic even though it’s just complicated systems that allow the player’s imagination to go “that one isn’t moving. is it sleeping or dead? Nobody will approach him, he must have been the town bully…”

Ideally, but consider the QBN concept of “grind” - to qualify to enter the Halls of Knowledge, you must spend five days studying in the Great Library to prepare, but then you also have to go to work and make sure you eat, and don’t get accosted by that weird angry dwarf in the well. The exact details of your hour of reading aren’t so important and can be a gamified currency specifically so that it takes some time because “thou shalt get sidetracked by bullshit every goddamn time.”[1][2]


  1. In Fallout episode 3, Walton Goggins’ The Ghoul dismisses Lucy’s idea of what "the golden rule " is, instead claiming that Fallout’s apocalypse has its own "golden rule ": "Thou shalt get sidetracked by bull*** every god****** time.* " In one sentence, the Ghoul illustrates exactly what the player experience in a Fallout game is really like. Similar to the TV series itself, the Fallout games rely on an overarching narrative that sees the protagonist work toward a specific goal, but usually, most of the player’s time doesn’t go to the main questline. Instead, much of the player’s time winds up being spent on various distractions that occur along the way. ↩︎

  2. ↩︎

2 Likes

The current problem is that LLMs are just autocomplete on steroids. I think that problem can be build around to some extent, and that may even be enough for a kind of AI DM. OpenAI already has many guardrails and filters in place. The LLM itself has no world model or sense of logic, but that doesn’t prevent you from building one around it. It’s certainly not easy, that’s why I gave my 10 years estimate.

There is a company working on the AI NPC use case already, they have a knowledge base and you can just ask them questions.

Huh, I didn’t think I’d read about Roguelikes or Roguebasin from here.

Something I find quite interesting about global variables is that many programmers say “global variables are bad”, meanwhile there are entire games build around an absolute ton of global variables.

2 Likes

Some early IFs tried out mixing things up like Beyond Zork and Coconut of Quendor. I don’t know if they did well with it though. And there are gamebooks, like Choice of Games, Sorcery, Fighting Fantasy, Roadwarden, etc. Eamon was also a way to create IF adventures from what I understand.

Adventures are knowledge gated in that they prevent you from progressing by giving you a wide selection of verbs but only some are useful. An RPG has a more consistent and unversal set of verbs which repeat, hit, cast, wear etc. It’s not that a game would stop being IF if it gated more content with stats, but an author has to write a lot more to justify using stats as an obstacle. If you only have one goblin, you find the sword, type attack and done, or you need a more complicated but interesting puzzle. If you have a combat stat, at three levels of upgrade, you need a minimum of three monsters. And really in this case combat stat becomes just another item but one you can upgrade a few times. So if you have 3 enemies per level of skill to show it off more, you get 9. But if you also had several skills, let’s say lockpicking, now you have a lot of doors and chests to add. Or you make the encounters random and place the rewards randomly too, so they repeat a lot. But this size will clash with the puzzles, since it will be easier to miss important items, and tedious to backtrack without fast travel of some kind.

Quest for Glory and similar point and click /rpg hybrids did well, so building one in text would work. It is still smaller than an average crpg but bigger than any point and click adventure. Quest for GLory 1 has about a hundred rooms, roaming monsters, day night cycle, and three classes, about 20 npcs. Still a lot of work but I think this is as small as an rpg can get.

5 Likes

I think the original statement is not quite correct, these are usually not “global” variables in programming sense. They are usually encapsulated into the player object. Now, that player object is usually a singleton (meaning that there is only one such object in the lifetime of the program) and has many many properties, especially in a QBN. So, this is actually a huge “global state” of the player in the game. The reason we do this is in the technical massive difference between a collection of naked global variables and somewhat controlled access/changes to the singleton’s properties. For example, you can then implement in one place how they influence one another, or you can implement thread safety, etc.

The problem with this is still, however, that any part of the program can contribute/change the state through requesting the change to the global state. If there is a typo, there would be nothing really to prevent the change. Consider: you interaction with the countess means that the relationship between you and the countess changed, but some programmer made a typo and that instead affected your relationship with the count, which is not even in the room.

So, to combat that, a better choice is that the relationship predisposition is part of the interacted object: if this is a property of the countess, then the chances of a programming mistakes are much smaller. Note: this is still a “global state” but it’s better encapsulated and reduces such mistakes.

I am pretty sure the authors of Fallen London understood that and implemented a way to ensure that it’s clear which properties a certain action can interact with and probably made their own clear boundaries which player properties a particular action or object can have influence on.

4 Likes

This is kind of tangential, but in exploring RPG design, I discovered that if you have too many stats, there won’t be any interplay between them, so the various situations players encounter in-game (cough QBNs cough) will seem disconnected; while if you only have a couple of stats, there won’t be many interesting decisions to make, and not enough different ways to approach encounters. Which in turn means you won’t be able to come up with enough different encounters to make a game of any decent size.

Turns out, there was wisdom in old-school RPGs that all seemed to have around half a dozen primary stats, and another half a dozen derived stats: neither too many, nor too few. Go figure.

3 Likes

Usually when I’ve seen people say something to the effect of “global variables are bad” it seems it’s in service to memory conservation. I’ve used a couple of systems where there are nothing but “global” variables and it might seem like a waste to use a system variable to keep track of whether the player put butter or jam on their toast. Usually these are RPG systems whose text and interaction isn’t so granular. “The player is flipping a coin here, why store the outcome as a global? Use a temporary variable!”

Usually in QBN the world-model is a bit more abstract similar to Twine, so there aren’t physical objects to assign properties to or doors that know if they’re open or not or chests with a simulated space inside them. Even though you might have a binary quality like “the player has a keycard to enter this space” or numeric for “The player has sustained this much damage” the qualities can also serve as player experience. The player doesn’t physically explore the library with defined objects and locations - the library might be a single card or passage with a bit of flavor text like a Magic the Gathering card but essentially just offering choice nodes that allows grind with a chance to increase the player’s “lore” quality or the “corruption” quality if the player chooses to grind dark arts. Or the player can nap in the library since it’s extra-quiet to reduce a “tension” quality. And often these qualities aren’t specific to one plot line or quest. If the player has an opportunity to play in the town orchestra, the location and specific interactions might take several qualities into consideration to determine if grinding an ‘artistic merit’ quality is successful - if the player has enough ‘practiced violin’ quality - which in turn might be de-buffed by a high ‘tension’ quality.

One project I experimented with in Storynexus required a clock to determine what time of day it was (which was a cycling quality that affected multiple things - what characters were available, what stores were open, etc) except in SN there was no facility to just have an “every turn” rule that would tick the clock, or an engine to count turns. I solved this by putting several clock advancing cards called “time passes…” into the deck.

When the player “drew” from the deck they had three slots in their hand and choosing to draw would fill all empty slots with random cards representing actions they could take. ‘Time passes’ didn’t do anything but advance the clock, but the player had to choose to activate it - so they could potentially ignore it and play on, but now they only had two slots for action cards they could hold onto. If they drew a second “time passes” they’d only be drawing one potential action card at at time which would limit their available actions they could take. Drawing the third ‘time passes’ card filled their hand so they could not draw, and the only choice was to process the clock card, and playing that card cleared their hand and advanced the hour of the day.

In the background, I also kept track of an invisible quality that was something like “things done” that many significant cards would increase. There were extra “time passes” cards that had limits that they were only available the deck if “things done” was at a certain level, so if “things done” was 0 there were only three clock cards the player qualified for. If it was at 1 another clock card became available to draw so there was a higher chance of drawing an increasing number of “time passes” cards the longer the player did other things besides advancing the clock, which also reset “things done” to 0.

I suppose the major element of QBN is there is a sense of randomness instead of a linear plot, and the quality structure serves as a “game master” limiting what players have access to at any given point and what they can and cannot do in random and potentially repeating situations.

3 Likes

That’s what I was kind of picturing. The LLM/AI doesn’t scrape the internet, but the author basically would have an opportunity to “train” or “direct” them by interacting with it as part of the authoring process. In my idealized situation, the author would sit and converse with the AI telling it things like

“Bob is another character. You’re not friends with him because at one point in the past he stole your wallet. Bob’s wallet is a secret that you should not talk about until the player mentions it first. If the player talks about Bob for more than three turns, you will go upstairs and out of play until the player returns to the Lounge again. You are not fond of lizards, so if the player talks about them you will become more angry. If the player shows you a lizard, you should run from the room and go off-stage leaving the bag you’re carrying in the Lounge until the scene where the Countess returns home.”

Since AIs can construct grammatical sentences and statements, they have no actual set dialogue but can improvise based on what they’ve been “told” by the author.

Way way blue sky, but what I imagine could be possible.

2 Likes

Getting off topic, but global variables are bad because they make your program more difficult to understand. Because they’re accessible to all parts of the program, they make it unclear which parts actually modify or read them, and in what order. Obviously, the smaller the program, the easier it will be to understand despite having many global variables. Using a variable which is local to a class or function is a way of avoiding mysterious interactions between different parts of the program. Memory conservation is unlikely to be relevant in a normal program, but possibly in retrocomputing.

5 Likes

for the Divine’s sake… Inform 7/10’s NL has just reached the mature stage, if Graham throw into it a major immature tech (AI), it’s again square one…

Best regards from Italy,
dott. Piergiorgio.

I wouldn’t go as far as to describe NPC behavior with an LLM. It would be hard to get consistent text generation out of it such that the “go upstairs” system is reliably triggered. I can already see the bug reports for broken quests when I close my eyes…

2 Likes

Tarek, you have played Melbourne house’s sherlock ? CLOSE EYES lead to spectacular bugs…

Best regards from Italy,
dott. Piergiorgio.

2 Likes

As does keeping them open, too!

3 Likes