Since my first text adventure-related article, some readers asked me to write another one talking specifically about game engines designed for Interactive Fiction. So, I decided to make a series dedicated to IF game design and maybe some tutorials. Depending on your reactions and suggestions I can keep talking about other aspects of a text adventure game’s development. Let’s get to the first topic, then!

The purpose of this particular article is to introduce IF engines to beginners who (like myself) can’t code to save their lives, or even to experienced devs who want to experiment with a new genre, which means the engines I chose to list here require no coding (or support optional coding) and are very intuitive to use, in my opinion, while still offering a good range of features.

The source I used to access these game engines was the Engine List, from The Interactive Fiction Wiki. It contains many engines made for the text adventure genre, but I selected the ones I like more to talk about here. So if you want to know more engines, be sure to check out the list.

I created a very simple text adventure called 4 Rooms and tried to replicate it in all the engines I tested to measure how difficult or limited the interfaces were. The adventure consists of navigating through four different rooms, located underground, and solving the puzzle that connects them to find the way out.

Then, of course, I started with the IF engine I’m most familiar with; the same one I mentioned in my previous article…

Twine 2

USER INTERFACE: Hyperlink-based

Twine was the first IF engine I had contact with and I have used it quite a lot. In this engine, you build your story by creating passages. Twine’s interface is hyperlink-based, which means that in each passage you have to create hyperlinks that are going to take the player to another passage containing different text. So, all the choices and movements you make happen through clicking on links, Choose-Your-Own-Adventure style.

Version of “4 Rooms” made with Twine running on a browser

You can organize your passages over a grid, which gives you a nice visual notion of your story’s structure and size. It is really easy to make a simple story with the engine without any coding; just typing your text and cleverly connecting it all.

The project being edited on Twine

Despite the hyperlink interface, you can have string input in your project, but this is where the JavaScript coding comes in. Twine uses things like macros and hooks to achieve more advanced effects on the project, so besides writing the text, you can set variables, create text input boxes, and change the story’s appearance through scripting made inside the passages themselves, or inside the story’s stylesheet, which affects the project as a whole.

Scripting inside a passage
Scripting in the story’s stylesheet

I wanted my game to have a password puzzle, so I searched for the best way to do this with Twine. Then, I found out you can use JavaScript in your project to set up a keypad where the player can input a password. I never learned JavaScript, though I have a notion of coding logic. With some of my previous knowledge and a very useful tutorial made by Dan Cox on his YouTube channel, it was quite easy to achieve this.

Don’t let yourself get intimidated by the presence of coding in the engine; there are many tutorials on YouTube and a lot of documentation on Twine’s own website that will fill you in with what you need to know to use JavaScript in your story. Besides, the coding is entirely optional. You can finish a story without ever having to use it, so don’t worry too much if you’re not a programmer.

The in-game keypad for the password puzzle

However, Twine has different versions, so to speak, called story formats, each one having different features, like different macros, etc. The story format I use is the Harlowe format, which is the default format for Twine 2; more beginner-friendly and requires only optional scripting. You also have SugarCube, that was the default format for Twine 1. And for coders who have experience with JavaScript development, there is the Snowman format. You can know more about Twine’s story formats here.

Twine has an active community, and if you decide to dive into it, joining their official Discord server might be a good idea. There, you can discuss the engine with other users and even ask for help on specific situations. You can access it through their official website’s home page.

If you want to take a look at Twine’s version of my project to play it or to look at the structure to understand it better, you can view it here and open it as a project on Twine.

Twine exports your story as a compact HTML file, so anyone can play it on a browser, or you can host it on your website.

PROS: Intuitive and efficient interface. Easy to make interactive stories with images and dynamic gameplay. Active community.
CONS: It might take some work to implement things like input boxes, items, encounters or just change the story’s appearance, since those features rely on JavaScript to work, making it difficult for those who don’t know the language or coding logic in general.



When I first saw this engine, I thought I would have a hard time figuring it out. I couldn’t be more wrong. ADRIFT is one of the most intuitive and pleasant engines to use. Besides, you can find a few tutorials on YouTube teaching the basics of it. The parser interface is responsible for much of my appreciation for this engine; the classic text adventure interface where the player has to type commands to perform actions, as we can see in Zork.

Version of “4 Rooms” made with ADRIFT running on the engine’s preview mode

In this one, you build your story by creating locations over a map. Those locations can be rooms inside a house or specific outside areas. And the way you connect those rooms is very interesting and makes your job a lot easier. For example, if you create a location called “Room 1”, another one called “Room 2” and place it above the first location, on the map, you can link them with an arrow, and the engine will understand that to go to “Room 2” the player has to move towards the north direction, so it codes the command “go north” for you!

Of course, you can “code” any text commands you want through the tasks window, but you won’t be wasting too much time with most basic commands, like “look room” or “go south”, because the engine already takes care of those for the developer.

The project being edited on ADRIFT

Another example: inside the locations, you can place dynamic or static objects, give them descriptions and preview the project right away. So, if you try to type “look (object)”, there you go, it already shows you the item’s description without you having to manually tie that command to that action.

There is no scripting in the engine whatsoever, which is quite incredible for the number of things it can do. Of course, it has some expressions to use in mathematical operations and to show variables, for example, but this is inevitable. And the engine’s documentation helps you a lot regarding this topic. It’s not a big deal, really.

Speaking of variables, they were quite important when I tried to set up the password puzzle of my project in this engine. I could see immediately I wouldn’t be able to set up the puzzle in the same way I did it in the previous engine, with the keypad input.

So, I had to find another way. ADRIFT does not have any features to make that kind of puzzle specifically, but because of the way the software handles variables, and with a bit of logic on my part, it was really easy to make the puzzle work through commands. It took me a couple of minutes to figure it out, and I was able to finish the game on the very same night I installed the engine. That’s how easy it is to use it.

How the password puzzle looks like in ADRIFT’s version of “4 Rooms”

The engine has a dedicated forum, the ADRIFT Forum, where users have discussions regarding IF and ask questions about the software. If you want to take a look at ADRIFT’s version of 4 Rooms, you can download it here.

You can export your ADRIFT project to a few different formats, including a standalone Windows Executable, as I did with mine.

PROS: Intuitive, efficient and well-organized interface. Easy to make text adventure games with the old-school look, and possesses a vast number of features, like the easy implementa-tion of items, characters, dialogue, graphics, audio, etc.
CONS: There are very few tutorials available online dedicated to this engine. The use of it might feel confusing or overwhelming for those not very familiar with classic text adventure structure or terms.

AXMA Story Maker

USER INTERFACE: Hyperlink-based

I was unable to find any tutorials for this engine online, but I really did not need those. This engine is very similar to Twine in almost every aspect. It also builds the story through passages, uses hyperlinks and adds images in a very similar way, and it counts with a bit of JavaScript for some functions. Another Choose-Your-Own-Adventure engine, basically.

The project being edited on AXMA Story Maker

However, it actually surpasses Twine in some aspects. When you open the engine for the first time, you see it comes with a pre-made story that acts as a tutorial, teaching you the basics and allowing you to dissect its functions, and the overall presentation of the story, for instance, is much nicer. It has a menu that you can access during the game to save your progress or to change the audio settings, for example.

AXMA’s In-game menu

What I also found very interesting is the way in which the engine chooses to display the text; an image filling the entire background and a text box on the bottom of the screen. This layout may remind some (like me) of the visual novel genre of games. So, this engine allows you to create not only interactive stories but also visual novels. Or you can even mix the genres together if you want.

Version of “4 Rooms” made with AXMA running on the engine’s preview mode

Another cool feature is the macros menu that you can access in any passage, at the top left corner, giving you a list of macros you can use and explaining their functions. You click on the set macro, for example, and the engine is going to set that macro up for you in the passage, you just need to insert the name and value of the variable in the appropriate places.

The macros menu opened inside a passage

And those macros were very important to code the password puzzle of our little project. Of all the IF engines I tested, this was the one that allowed me to make that puzzle with the least amount of effort. I just needed two variables, the input and if macros, and it was done. The input macro creates an input box where you can type text or numbers and store those in variables. A super-easy way of implementing mechanics like passwords or asking for the player to name their character.

As a result, the password puzzle made in this engine also looks different from the other versions. And I must say that the Online User Manual for this engine is a blessing. Everything you need to know is in there and it teaches you in a very clear and useful way. If you had any experience with coding logic before, you don’t need to worry about a thing.

How the password puzzle looks like in AXMA’s version of “4 Rooms”

AXMA also has a discussion space for users on Google Groups. If you want to take a look at AXMA Story Maker’s version of 4 Rooms, you can view and download it here.

AXMA has two ways of exporting your story. The first and easiest way is to publish it to the Interactive Fiction Library, where you will find many interactive stories made with the engine, and where you can display your story for other IF enthusiasts to play, once you’ve created an account. The second way is by exporting the project to an HTML file, however you need to buy a professional account to do so. It costs 19.90 EUR (currently) and allows you to not only generate the HTML file but also to edit any file generated, among other features.

PROS: Intuitive and efficient interface. Easy to make interactive stories with images and dynamic gameplay.
CONS: It may require previous knowledge about basic programming logic. Practically 0 tutorials available online, although the engine’s documentation is a good replacement for those.

Honorable mention: Visionary Adventure Creator

WEBSITE: Not Available (last version on Wayback Machine)

By checking the manual and the official website (accessible now only through the WayBack Machine) it seems that this engine has been discontinued for a while, and some parts of the manual suggest that its current state is still incomplete (you will notice an absence of some basic features on its layout, like the test and export functions). That is why I decided not to include Visionary on the list as a direct recommendation, and why I didn’t make a version for 4 Rooms with it.

Visionary’s interface

However, the documentation explains in a very clear way all the engine’s features, and I found some of them very interesting, like the pre-coded verbs, a location intended to store items when they’re not being used, and a lighting system, which comes with standard lit and unlit lamps as items and a space where you can set up how long a torch will take to go out. You will not find any tutorials online, but you can still download the engine on its website, so if you want to test it for yourself, I don’t see why you shouldn’t.

Some helpful links

So this was my personal selection of very good game engines for IF beginner devs. Now, you just need to choose the one that suits your needs best and start developing! If you want to dive deeper into the IF community, some other good places to visit are The Interactive Fiction Database, The Interactive Fiction Archive, SPAG (Society for the Promotion of Adventure Games), Brass Lanternand Interactive Fiction Review Conspiracy. Some of those websites haven’t been updated for a long time, but they preserved a lot of IF material and history for those interested.

I hope this was useful to you, and until the next Text Adventure Talk!

Did you enjoy this article? Then consider buying me a coffee! Your support will help me cover site expenses and pay writers to create new blog content.


Borja Martin · May 28, 2020 at 10:15 pm

You should check Ink, from Inkle, a language specifically for choose your own adventure games. Is very simple, easy to learn and super effective.

    Mayara Albuquerque · July 10, 2020 at 9:14 am

    I’ll definitely look into it. Thank you!

keith · July 9, 2020 at 6:17 pm

Great article, will need to read it a few times to get all the info.

I am looking for a D10 (well D4, D6 etc) compatible text game engine. Do you think any of those (or do you know of one?) that will do the logic of dice rolls plus bonuses? So like old D&D combat with D10 plus your stat plus a weapon bonus, etc? I have all the content for it, I just don’t have the time and knowledge to code an engine for it. I’m fine paying for something, but not sure where to look.

    Mayara Albuquerque · July 10, 2020 at 9:28 am

    Hey, Keith. I’m sorry, but I don’t have that information. From the engines I reviewed, the one that, for me, seems more capable of doing that is ADRIFT, but I don’t remember reading about that specific subject anywhere in the documentation. If you want to read it for yourself, here’s the “Help” doc for the engine

    If you don’t find what you’re looking for, there’s a guy that helped me with a very specific situation that is also absent from ADRIFT’s documentation. He made a tutorial on YouTube, where I posted a comment and he responded, helping me a lot. I think if there’s someone that knows the answer to your question, it’s him. Here’s his tutorial
    Post a comment with your question and there’s a high chance he’ll answer. He’s Brazilian, but I think there’ll be no communication problem. If there is, come talk to me on my Twitter and I’ll help you guys out. I’m sorry if this wasn’t helpful.

Comments are closed.

By continuing to browse this Website, you consent to the use of cookies. More information

This Website uses:

By continuing to browse this Website without changing the cookies settings of your browser or by clicking "Accept" below, you consent to the use of cookies.