So, Colossal Cave Adventure was a thing…
Which do you want to read:
A) Long story
B) Long story short
A. [Long story]
I’ve already mentioned this in my game’s devlog, but I made a text-adventure template half a year ago as a part of my Master’s Thesis project… and now that I was supposed actually start implementing it to the project I felt that it kind of sucked. So, I thought I should rebuild it from scratch (something I apparently like to do a lot), this time I’m making it room/area-based, like Colossal Cave Adventure. I’ve talked about it a bit on my devlog but figured, since the subject is kind outside of my actual game concept and idea that it would be better off on it’s own topic for anyone more interested in the template or implementation.
B. [Long story short]
I started making a text-adventure template. It’s room-based, like Colossal Cave Adventure for example and I figured I might as well make a topic about it for anyone who is interested in the idea.
Goals of the template:
A game should be writable with spreadsheets alone, without having to touch the code at all.
Currently everything is displayed with widgets, which, as far as I know, is the best way to realize a text-based system.
Progress so far:
Moving between “rooms” (also shortcuts like “north” and “east” etc. are doable) and taking items from the rooms. All possible directions from each room are defined in spreadsheets per room, so they can be whatever the creator wants them to be, just like the used vocabulary and shortcuts.
Look/examine functions, for rooms and items. it’s also possible to add hidden items that are only revealed after the room is examined. And just like with directions items can also have several call names so players don’t need to guess a specific name but can guess any number of call names (again defined through spreadsheets). Inventory also works with a single word and items in it can be examined at any time with the same names that they can be obtained from the map with. (unless the one of the items in the map overwrites one of the call names (for example in the case of several swords)
Items can also be dropped, which changes their field description from their initial field description (in case the creator wants to make a more dramatic reveal of the items, like say for “the master sword on the pedestal”). I’ve also added some possible events (only a few so far) such as automatic movement between maps.
There is also support for NPCs that can be talked to and the player input can locked for specific conversation so the player cannot escape from it until they answer. For example in the case an NPC asks for the player’s name, which can be tied to a variable which can then be used wherever, same with choice based input locks where players can be given possible answer (and synonyms for each answer) which affect the response they get. The characters can be placed in different rooms and they can be given both multiple lines of dialogue, that change as you talk to them multiple times, as well as multiple stages of conversation that change with the story/room progress.
All events are recorded after they are launched as are their results so that they can leave a permanent mark… but it is also possible to make events and conversations that don’t record variables.
Again, everything is doable from spreadsheets, so that the writer doesn’t need to touch any code while writing the game and its assets.
it’s still under work, and there are quite a few things I’m planning on adding, like more event types, action types (like using and equipping items, attacking, etc.), and enemies and combat.
Since I doubt there is much interest for text-adventures I might release the system for free after it’s done and/or make a tutorial (or more detailed posts on this topic) on how to make it, if anyone actually is interested.
And if anyone interested has any questions or improvement or feature ideas, I’m all ears.
Ps. As it is currently part of my Master’s thesis project which does not require all the functions that I’m planning on adding to it, the progress will slow down after I meet the minimum requirements, and will remain more slow-paced until I finish my thesis.