I used to love playing text adventure games. They were always so so hard, but they really challenged you to think outside the box and explore every imaginary inch of the situation.
A few years ago I decided to make a text adventure engine and I got some way to doing that. I abandoned the project half finished and haven't thought much about it since.
But since working on the Nth Society game project it struck me that it might be good to have a look at it again. I think we could use it to prototype some of the technical features. Although I still think that MineTest is the best option for a proper prototype, it will take some time to a variant off the ground. However I think I can get a text adventure running as a web app in a couple of days. And it might be fun just to tinker with. Oh, and both MineTest and this engine use Lua for scripting, which is handy.
Shut up, I just want to play it!
If you're here for the free beer game you get jump straight in and play the test game. 😅 🍻
I wrapped it up with a nice bow as a Docker deployment so you can just download the files and with just two commands you'll be playing the demo.
Of course you can build it yourself if you're comfortable with that but even still, Docker deployments are a magical way to do things. 🦄 🌈
Prerequisites
You must have Docker installed before proceeding. Download it via the Docker Community Edition web page
Installing it is beyond the scope of this post, but it's pretty straightforward.
Downloading
You need to download this the GitHub repository for the game at https://github.com/thrize/textadv-engine
You can either download the files via the website or use the following git
command if you are comfortable with that:
git clone https://github.com/thrize/textadv-engine.git
Installing and playing
It's pretty simple to do this as I've created scripts to handle the process. There's not much to these scripts but it's just makes it that little bit easier. 😄
Linux or Max
./deploy.sh
./play.sh
Windows
deploy.bat
play.bat
And your in the game!
You should be presented with something like this
Playing the game
So the first to remember is that this is modelled after classic text adventures which are really hard. Don't forget to look at and examine everything, try lots of different combinations, contemplate the descriptions for clues, and enjoy the scenery in your imagination.
There are only three rooms to the demo game and it's not very long but it will give you a sense of the engine and the retro feel.
Next steps
I will write up a more comprehensive plan of what I'm going to do to get a minimum viable text-based multiplayer game set up as a web app, but here's the jist:
- Convert C++ bindings to Javascript on the Node.js framework
- Create web app front end for command input, resulting output and maybe a map
- Create basic player login authentication
- Live event system in real time multiplayer game (what other players, NPCs and natural events are doing)
- Procedural environment (landscape) generator
- Minimal crafting (combining / decomposing objects)
- Minimal survival (have to eat, drink, etc.)
After that I will look at how we can start describing the game structure in a kind of psudo-code specification called Backus-Naur form, more on that later. The reasons for doing this are (1) so that it can be designed in the abstract and (2) that when we switch to a more complex engine, we can reuse all of this specification as it is engine independent.
I agree; I wanted to suggest text-based games but most seem to want graphics. I think this also makes it easier to decide on the language and vocabulary of the game, and this is independent on whether one can visually see an object being picked up or just types in the command.
Hi personz,
Thank you for your very intesting text-Adventure-Projekt!
Do you really think, it would be possible to include it in MINETEST, as you mentioned - when i understood correctly??
That would be wonderful, but how could it work?
Can you give me a little more instruction?
Best regards from Germany!
Heiko Idensen