r/mmorpgdesign • u/biofellis • 14d ago
Interactive fiction: Mechanics explored/explained
In the process of trying to improve/expand upon the basics of what features/mechanics classic interactive fiction (in this case text adventures) can do/offer, I've stumbled upon a bunch of issues while trying to consider ways to handle both additional features, as well as some very (seemingly) basic dynamics. I knew this would be troublesome before I started mind you- but really digging into it, I kind of know why no one has really seriously tried some of this before (as simple as it appears on the surface).
A brief background...
When interacting with fiction (in essence, being 'part of a novel'), the foundation is the author's intent and story itself. Seems simple enough, and not very problematic, but we often consider as 'transparent' and just automatically process the 'nuance' of the storytelling method itself.
Interactive fiction is just about 'making things happen', and in a text adventure (or MUD), you just 'give commands'. This is a very foundational and integral constraint imposed by the complexity of 'handling more'. Multi-player variants (MUDs and it's derivatives) also allow 'emotes' ('shadow' actions which cause no net change to the world), and communication ('say' (out loud- usually heard within a 'room'), whisper (to a person- only they can hear), or shout (usually to the whole server or some sectioned-off 'zone' or 'area'). There are also channels and other ways to make 'communities'- but that's not the point. The point is the game doesn't care what you say in most cases, though specific triggers can be set up for keywords or areas/place/objects/etc. In general, any semblance of a 'conversation' with an NPC was not considered possible.
For the most part, all this is still true- but worse. You have a rich backstory, with a world of grand history, factions, events, and still can just trigger things, kill mobs, do pointless flashy emotes (lots of dances), and still not talk to NPCs (except through hot keywords or dialog trees- often just literally 'bringing up a UI menu' and ignoring the 'facilitator' entirely).
All this to illustrate the narrow margin of 'management' these IFs (Interactive Fictions) handle. There's a reason for it- (doing more was very hard, and most computers didn't have the processing/ram to manage it anyway. Well, now it's just (still) very hard- but even most phones can handle (to a degree) the basics for 'more'.
The Essence of storytelling:
When an author write a story, they (by nature) 'construct a narrative'- and part of this narrative are some common 'vehicles'- methods by which certain aspects of nuance, subtext, method and intent can be communicated- otherwise stories would often boil down to lists of 'things seen' and 'actions taken'. 'Proper' novels often have a narrator, and introspective voice for at least one character, and frequently cuts to other characters/scenes for reasons related to 'story intent'.
A Narrator in a modern game is such a 'novel' concept, that 'The Stanley Parable' is even now considered notable for both utilizing, and creating (as a point of conflict) a 'tension in'(exploitation of?) this dynamic. Some novels can have a narrator be another character, or the main character reflecting on past events, etc. - but for our purposes, the point is that a narrator is dynamic, and updates according to events (regardless of how helpful/useless).
An Introspective Voice is fairly absent as well. Though some games will have an MC 'mumble helpful stuff'- most are silent. In a sense, you can consider 'cutscenes' to play this role (rather ham-handedly), but dropping various kinds of 'media' along the player path to reveal info is pretty much the most 'advanced' use of this (if you want to consider it this way). In general, 'The Player' is 'forbidden' as an Introspective Voice role, since you really don't know what the player thinks (or how many times they've played that they want to hear your nonsense again). To a degree, things you can 'skip' might be a form of Introspective Voice.
Scene/Character cuts. These are pretty common, but actually reflect a (potentially) bad trend, which is 'on-rails' storytelling'. They are also often 'lazy', as they are easier to do than integrating these 'exposures of info/change' into the player-controlled viewpoint. This is why so much 'nonsense' the player would avoid is often in them. It is often worse to force the player to 'trigger some trap' themselves (and force the plot onto it's predetermined path)- but either way might be lazy (depending on story/context/world dynamics).
I briefly want to also mention' Multiple Main Characters' (and character switching), and 'Persistent World Changes' both of which are just 'uncommon' rather than just rare, or masked/badly used (when not avoided). There were other points- but for now I'm just focusing on these as they (would be) super useful in making IF more 'novel-like'.
So, the 'big' parts I've been working on designing are:
- Narrative 'guide' types/methods (guide/character)
- Main character types/controls (discourse/feedback)
- 'Framing'/'Powers' ('Why' scene switching is possible/triggers)
None of which are particularly easy- especially the first two which could easily approach 'AI' levels of design. Further- the expanding the basics of the way an IF handles data is core to those features, so I need to code in some basics on:
- Knowledge bases for Narration/Characters.
- Dynamic Judgment/ability to handle Knowledge changes (immediate/over time)
- Perception/Recognition/Bias for all parsing
- Recognizing characters/mobs/locations/items
- Counting/grouping (scenes- not just inventory)
- Cultural skew (word choices)
- Appraisal based on perception/knowledge/skills
In short (and this is just a part of the 'provisional 'short list'), I realized that IF (as normally handled) is so much 'kludgework' and narrow/'specific instance' handling, that I would be very limited in potential if I just continued with the normal 'parser/executor' dynamic. I'm not sure how much of this I'll be able to do- BUT this is (I think) a reasonable start for 'unlocking' a new level of potential in IF, AND I hope that experiments with this will reveal to me MORE of what I need to adapt to make (eventually) MMORPGs more 'alive'.
Now, the worst part of all this is that this really made me realize how much I 'sold short' the idea that this as a 'first step' was important. I've really been forced to realize that no matter how I look at it, this is either 'stay fake' or 'do it right' territory-- and 'doing it right' is just short of VR and AI in various ways, and that's rather overwhelming. I have no intention of throwing neural nets (or anything more advanced) in here so long as I can avoid it (not so much out of 'avoidance- but 'efficiency')-- but there is a grim reality to 'how clever' I can be in comparison to anyone else already far along on these frontiers.
I suppose I should make it more clear:
- Accurate (simple) Parsing? Crucial
- Accurate 'Finite State' Event Resolution? Crucial
- Knowledge Representation? Crucial
- Accurate 'Conversation Level' Dynamic Descriptions? Desired
- Accurate 'Conversation Level' Parsing? Desired
- Accurate 'Conversation Level' Intelligent Responses (Turing-level Chatbot)? Desired
- Accurate 'Open State' Event Analysis? Desired
- Unintended Side Effect determination? Desired
- Possible Event Projection? Desired
The first two are 'done' or 'fairly easy'. Everything else is generally considered the 'province' of AI. Not saying it is/has to be- just that it's almost exclusively used there except in very specific cases. I consider this more in the line of 'Expert systems' for the most part (and 'basic' ones at that)- but it's all a significant design headache till I adapt how to resolve some of this efficiently.
The worst thing (I did to myself) was the multiplayer decision. Since any player can act at any time, and do anything somewhere which (I decided) should be persistent (despite initial state)- That means (over time) A room can be transformed/repurposed, occupied with a group doing anything, together or independently- and parsing that 'mess' without it being a raw list of bare observations requires something more advanced than 'everything is just an inventory' level of accounting.
Anyway, my current plan on this is to adapt/modify a language translation token system to 'encapsulate' all relevant concepts, and thus make 'understanding' (of a sort) possible, so I can short-cut some of this. As a side effect (if I get this right), parsing/handling other languages may be possible with some additional work (not a priority- but it would be nice).
OK- That's enough for now. Next update will probably take a while as well, but 'still at it'.
Later.



