The best tools to create interactive fiction, text adventures and visual novels, with or without programming knowledge

in #programming7 years ago

I’ve always been a fan of interactive fiction and for a long time it was a pretty small niche of people who cared about it after the initial big success of text adventures in the 80s like Infocom’s famous Zork.

7154389844_ecf548b671_z.jpg
Image credit: Marcin Wichary, licensed CC BY 2.0

With smartphones and app stores, interactive fiction is starting to get popular again. On mobile, multiple choice style interactive fiction is popular. On PC/Mac, it’s visual novels. Sadly, real text adventures like Zork where you write “get lamp” and an interpreter figures out what you meant by that, still aren’t as popular as they were back in the day. But who knows, maybe it’s just a matter of time until these classics will have their revival as well.

In this post I want to give you an overview of some of the best tools I’ve come across over the years to develop all three kinds of interactive fiction, starting with text adventures, then multiple choice interactive fiction, and ending with visual novels. I will keep the description of the tools short because this is really just meant to give you a nudge in the right direction, but I might write more in-depth posts about some of the tools in the future, with tutorials were needed, although they all come with pretty good documentation already.

All of the tools I show here can output the interactive fiction games you create with them for multiple platforms and usually also the web, but one of the tools to create the stories only works on Windows. Most however do work cross platform, on Linux, Windows and Mac and one even works in the web browser so you don’t have to install anything.

Text adventures

For creating text adventures in the style of Zork, I personally like two tools best and they both have vastly different approaches on how to create games. Both are equally good in my opinion, but some people will like the style of Adrift better while others will like the style of Inform better.

Adrift

adrift.jpg

This is a very old and mature toolkit that is already at version 5.0 and is still being developed today. It’s one of the most popular choices when it comes to creating text adventures.

On it’s website it lauds itself as the easiest solution to create interactive fiction. I guess that is arguably true. While the application is extremely complex, it is a complete graphical, GUI based approach to creating text adventures, you don’t need to write a text file in a specific format, you don’t need to write any programming code. Instead, you just click buttons to create new rooms or objects and then you change properties of those to configure them for your needs. It comes with a help file that teaches you everything you need to know, step by step it helps you create your first text adventure.

This application sadly only works on Windows, you can get it to work on Linux and Mac through WINE, but there are some issues with that.

Inform 7

inform.PNG

Inform is also a very old and mature toolkit, the last release was in 2015 but it has everything you need and works great as is. Inform version 7 was a great departure from the earlier versions of Inform, the paradigm on how you create text adventures with Inform changed completely. It used to be a compiler that takes the programming source code you wrote and compiles that into a text adventure game. Inform 7 is very different. You still write to create the text adventure, but you don’t exactly program. You write in plain English instead.

“The old wooden chest is in the attic. The chest is a container. It contains a treasure map and a compass.”

That is how you write text adventures in Inform, I kid you not. This text gets executed as if it was a programming language and then you can play the game that you just created. You can open and close the chest, because Inform knows what a container is and what you can do with it. You can take items out of the chest, you can put items in. And you can teach Inform new things too, maybe you want to be able to sit on the chest.

This sounds extremely great and easy and it is, but it also has it’s pitfalls. Some people really like this style of creating interactive fiction, others however have too much trouble keeping in mind what subset of English sentences Inform understands, because it does of course not understand everything that makes up a language as complex as English or any other human language.

I highly recommend checking it out for yourself to see if this is something that works for you or not. It comes as a graphical application with the text you write on the left and you can put the game you create while you write it on the right side of the application to test it out, or you can put the included manual there which is extremely in-depth and extremely easy to understand and comes with hundreds of small examples that help you create the text adventure of your dreams, by doing nothing else than writing plain English.

Inform is available for Windows, Linux and Mac.

Multiple-choice interactive fiction

While these games aren’t as interactive as text adventures, they are much easier to create and much easier to play, too. Having to just select a sentence as your action after reading a passage of text means these type of games work really well on smartphones and that’s why they are so popular on those devices.

Again I’ll show you two tools that go about things very differently but are both very good in what they do.

Twine

Twine.png

Twine is a graphical solution to creating multiple choice interactive fiction. The interface looks a lot like a flow chart when you have written a few passages. Before that it is an empty canvas with just a single box in the center. That box tells you to double click it to edit. A window opens that lets you change the text.

“You are standing in front of a mirror. For a moment you think you saw a face in the mirror that wasn’t your own, but it might have just been your imagination. [[Touch the mirror]] [[Back away slowly]]”

Writing that into the text box and clicking on the X in the top right to close the editing window, creates two new boxes on the canvas and arrows point from the original box to these two new ones. Now it looks like a flow chart. One of the boxes is called “Touch the mirror”, the other “Back away slowly”. Double click them in turn and edit their description, add some more text in between braces [[like this]] to create more passages.

You can do a lot more in Twine, but with this very simple and easy to understand concept you can already create great games with Twine. Out of all the application in this post, this one is by far the easiest to use. Give it a try, it even works right in the web browser if you don’t want to download the app for Linux, Windows or Mac.

Ink

inkle.png

Ink is completely different and even though Twine is much easier to use, personally I prefer Ink. Maybe just because I’m a programmer, or maybe it’s because it feels more natural to just write text when you want to write a story instead of creating a lot of boxes with arrows pointing to them like in Twine.

You don’t have to know how to program in Ink, instead you just have to write in a specific format. It’s a bit like writing a script, a play. It comes with great and easy to understand documentation that explains everything you need to know.

The same example I gave for Twine would look like this in Ink (with some additional text):

You are standing in front of a mirror. For a moment you think you saw a face in the mirror that wasn’t your own, but it might have just been your imagination.
* Touch the mirror
   Carefully, you reach for the mirror with your hand and at the touch of your index finger, you are suddenly sucked into the mirror.
* Back away slowly
  You back away slowly and stumble, land on your bottom. A figure appears in the mirror, this time you can see it clearly. It’s a woman. Her left hand presses against the mirror from the other side and her lips mouth the word “Help!”.

Ink and it’s text editor Inkle which I highly recommend using since it allows you to play the game you create while you write it, is available on Linux, Windows and Mac.

Visual novels

renpy.jpg

When it comes to visual novels, I know only one application and it has been used in hundreds of freeware and even commercial games. It’s cross platform and you do need to do some programming here, but unless you want to do something very advanced, it’s a very simplified version of the already very easy to learn Python programming language, so even programming newbies should be able to get quite far with this application without having to learn much. It’s actually a bit similar to Ink in the way you use it, since you basically just write text in a specific format to get what you want.

The program is called Ren’Py and runs on Windows, Linux and Mac. It comes with many built in transitions and animations for the characters and background graphics you import to use in your game. And if there is something Ren’Py doesn’t do, you can always write normal Python code to expand the features of your game beyond what Ren’Py provides. That way, you could even combine a visual novel with for example a Final Fantasy style battle system, or anything you can think of really.

Sort:  

What a brilliant service this post is! Just today I was thinking about how to do this, and there's your post that takes all the guesswork out of it! I can only give you $0.10 with my upvote, but you'll win a Best of Steemit award tomorrow, and my undying thanks in the form of a follow, and, well, anything else I can think of. When I'm rich and famous, I'll always take your calls.

Thanks so much for your kind words! Just doing my part to keep interactive fiction alive :) It can be a bit tough to find all of these tools, so I thought an overview like this might be quite interesting to people. Twine and Ren'Py are well known by now I believe, but Ink for example is fairly new compared to the other tools. It was used in the highly acclaimed indie game 80 days, whose creators are also the creators of Ink.

My brain's been going overtime since I read this. Honestly, the number of applications for this kind of thing is ridiculous. I'm tempted to make a game with one of these and use it as a resume. I'm going to have the kids in my history classes build these and play test them on each other. I'm loving the ease of use of these things! You're my hero!

For a resume, a multiple choice interactive fiction created with Twine or Ink would probably be best. I think you can even insert pictures and videos instead of just having text passages displayed. You could for example create an interactive FAQ and one of the questions is "How do you look?" and the answer would be a picture of you that gets displayed. If the app you end up using can't do that out of the box, all of the apps I've shown can be extended with new features if you can program or if you find a plugin someone else has written with the functionality you need.

For teaching kids, Twine is probably best since you can explain how to use it in less than 5 minutes. Just make sure to tell them to close the text editing windows that you open by double clicking on a node in the flow chart by pressing on the X in the top right corner, if you close it any other way, for example by clicking outside of the text editing window, the [[links in brackets]] don't get parsed correctly, seems to be a bug. Other than that kids should have no problem figuring out how to use it extremely quickly, it's quite intuitive once you understand the basics.

Ink is more involved, you have to learn the format you need to write stories in, but it's very easy to pick up since you can just learn the basics and get very far with those, just like you can do with Twine. Just read the first few pages of the manual that comes with the Inkle Editor, that should be more than enough to start and then you can probably explain the basics in 10 minutes. The upside of Ink is that you can easily share the created stories or just snippets of them to show a specific part off, you just copy and paste the text from the editor. Could be easily written to the blackboard as well. With Twine to show something you'd have to use a projector and to share a story with someone you have to share the story file, so Ink might be easier to deal with.

Thanks. I'll share what we end up doing.

@cristof that's great idea... if you want some basic info about Twine I can give it too as I made few things with it before (Just basic info though, but it's enough to create something that's not complex like the game I made)

If you want just PM me on Discord.

My sons and I are about to sit down and try making something, just to see how the tools work.

What a wonderful article on the background, and current state of Interactive Fiction. Well done @crypticwyrm!

I have written interactive fiction - on and off - since I was a boy. In 2014, I took the plunge, and entered the IFComp (* https://ifcomp.org/comp/2014) and tied for 33rd place with ' The Secret Vaults of Kas the Betrayer'! Woo hoo ... ha ha

Do you write any interactive fiction you'd be willing to share?

Thanks for your kind words! It's cool that there are so many people interested in IF and writing here on Steemit, really awesome community! I'll check your IFCOMP entry out when I get the chance, haven't really taken the time to play much IF lately but I should, I really enjoy these interactive stories and books in general.

I've only played around with IF, never written anything sophisticated enough to publish. But I do plan to do it eventually. I've been working on and off on a book for a few years and I've played around with turning that into interactive fiction since it fits nicely, it's a fantasy world. I'll probably release them both whenever they are done, maybe even here on Steemit (saw some people doing that, release chapter by chapter, pretty nice alternative to selling a book actually) but that could still be years off :)

I'm sadly not that good a writer, at least when it comes to fiction. Maybe me being a programmer just makes me naturally more inclined to write very technical, I think my stories always sound a bit like a movie script, so I have to work more on that, get some more practice time in. I did write a lot of Harry Potter FanFiction when I was younger and had some pretty successful stories with thousands of fans but I stopped writing FanFiction after two years or so, should have kept at it to improve my writing! :)

Is this software only for creating apps, or could it also be used to create an interactive e-book in one of the recognizable ebook formats? I would be interested in trying this, but I have doubts that I would be able to publish it as an app because my technical knowledge is virtually non-existant.

With Twine and Ink you can output the story as a website and the epub ebook format for example is just a website with files named in a certain format and an index put into a zip file and renamed to .epub. So it should actually be possible, but I have never tried it so I don't know how to do it and from doing a bit of Googling this is quite a complex task, you'd need to know a bit of web development for sure to figure this out.

You might want to look into Inklewriter by the same people who made Ink which I covered in my post, it is as easy to use as Twine and apparently for a fee of $10, they convert your story to an ebook for you. I didn't find any mention of this on the website but people are talking about that on the Twine forum here.

As for publishing on App stores, yeah you are going to need to know a bit about web development here too. So if you ever made a website with HTML/CSS/JavaScript you'd be fine, but if you didn't then you'd have quite a bit to learn. If you do go down that route, from Googling the issue a bit, most people seem to be using Adobe Phonegap (based on Apache Cordova) to publish their Twine stories for smartphones.

Thanks for the lengthy response. I will check out Inklewriter.

You're welcome. It's weird that I didn't find any app that could just do this at the click of a button so you don't need to know anything. I'll have to Google that a bit more. I might write an app like that myself sometime if I can't find anything. If I should find anything or create one myself, I'll get back to you.

Cool article! Perfectly written! Straight to the point)

Fantastic article. Lots of information for me to think about! Thanks for sharing your well hard earned info!

great info mann thanks for sharing ...

Congratulations @crypticwyrm! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Really nice article! I love visual novels and also played around with twine a year ago

Thanks! I haven't played visual novels in years, right now I'm mostly into multiple choice fiction on Android, but yeah there are some really great ones. I used to especially like kinetic novels. They aren't interactive, but use really neat graphic and sound effects to make reading quite an experience and tend to tell more sophisticated stories than those you find in most visual novels.

There is one free visual novel on Steam I did play a year or two ago, made by a Russian team of developers that plays in a Russian pioneer camp. I think it's originally a hentai dating sim but the Steam version has that content removed so it's just a really interesting mystery story. It's called Everlasting Summer.

That visual novel has one seriously cool game mechanic. You play through the game and then, you play through it again and your character notices that he has seen all of this before... It's like being caught in a time loop. The story begins anew every time and you can use things you learned the last time you played it to get better results. Oxenfree also does this, another really cool game, but it's a point & click adventure not a visual novel.

Impressive one der @crypticwym
Steem on

I'm a fan of Interactive-fiction and Visual Novels... actually I've made one myself with Twine (the only one published between many unfinished ones)... written a review about one... and want to write a review about another one but don't want to write two reviews about VN games in row.

As person who game because there are stories that can be only be told interactively.. I love these genres of games.

I've never tried "INK" maybe I should check it out.... Thanks for this topic!!

EDIT: followed You!!

A procrastinating indie game dev, ha, I should really play that game, that could be me. I've started tons of game projects over the years but rarely finish anything. Growing up I wanted to become a game developer, but I became an app and website developer instead, I'm much better at that :)

To me, with interactive stories it's not about stories that can't be told otherwise, but it gives you a greater attachment to the story and characters. Games are much better at delivering emotions that way than movies or books. I can't wait to see in what direction VR games will go once all of the kinks are worked out, that is going to make you even more attached to the worlds people create. And maybe interactive fiction can be combined with that as well.

Just imagine putting a VR helmet on and suddenly being in a dark cave with the flickering light of a lantern giving you just enough illumination to read the virtual leather bound book in your hand which is your in-game interface to the original text adventure, colossal cave. So VR could be used to set the mood for an interactive fiction story, instead of being a game on it's own.

Ink is really cool, I'd highly recommend checking it out. While Twine is easier to get started with (it is by far the easiest of all the tools I metion in my post) the advanced features are much easier and more comfortable to use in Ink in my opinion. Then again, Twine gives you a great graphical overview of your story through the flow chart display. Both have their strengths and weaknesses really.

To me, with interactive stories it's not about stories that can't be told otherwise, but it gives you a greater attachment to the story and characters.

me too...

Just imagine putting a VR helmet on and suddenly being in a dark cave with the flickering light of a lantern giving you just enough illumination to read the virtual leather bound book in your hand which is your in-game interface to the original text adventure, colossal cave. So VR could be used to set the mood for an interactive fiction story, instead of being a game on it's own.

That's an interesting idea... never Ever thought of it that way...

Yeah... Twine is very good program... I can't give opinion on Ink until I try it though... Thanks for replying.

Great article! Thanks for sharing all these and providing the analysis.

I'm a big fan of the Unity3d game engine and just did a quick search in their Asset Store to see what they had and came across this: https://assetstore.unity.com/packages/templates/systems/fungus-34184

Looks like there's a couple more 'related' plugins as well, so looks like you can have some options there as well.

Thanks! Ah cool, didn't know Unity3D has plugins for that. I've installed Unity multiple times over the years but for some reason I never actually end up spending the time to learn it :) Looks like it's starting to become a neat tool for creating 2D games too, that makes it a lot more interesting to me, creating 3D games is a much too big task for me so I've mostly only played around with 2D engines over the years. I only did 3D one time, when I started creating a Dungeon Master / Legend of Grimrock style game using Three.js.

Great info ! Thanks for sharing

I've been toying with Ren'Py and Twine. Now I'm looking forward to trying out the rest on this list. @cristof's warning about this post was mild. LOL

Wow I just read his post, that is seriously cool of him to write :) And yes he does get a tiny bit overboard, lol.

Oh, wow! Memories!!!

And a Kaypro!

I remember them so well. It was just the next step from D & D , with paper and pencil and dice.

Zork was so much fun! Hmm, I may still have an old copy somewhere.

This would be so much fun to use with kids! What a learning and teaching tool!

I used Twine once on a project at work, but hadn't considered it to write games/stories.

Thanks for your reviews. I want to check them all out, but Ren 'Py is attracting me most!

old computer-1895383_1280.jpg

I might just resurrect an old 80's machine...

All of the old Zork games including the graphical adventures are on GOG if you can't find your copy. Zork Anthology is a collection of all the Zork text adventures. The Zork games all sell for €1,49 I think it was whenever they are on sale, which GOG does quite often, so just wait for a sale and grab them all, that's what I did :)

My foray into computers started with the Amiga 500, didn't even know what type of computer that picture shows, but it looked like an old school Terminal so I had to use it here, fit perfectly :)

Great tools! I think these apps can help even in creating content for Steemit :) I will try it :)

I thought about that too :) Would be cool if you could embed these games in Steemit posts since the games can be exported to HTML + JavaScript, so can be played in a web browser, but I guess instead you could just host them somewhere else and then just link to them in a short Steemit post that describes the story :)

Might be a cool way to finance writing these type of interactive stories, instead of selling them directly, if there is enough interest on Steem. Especially when you're just starting out and haven't created something sophisticated enough yet to be sold on an app store.

Nice share! Thanks for this. I'm working on a live action idea to create fiction within the steem framework, engaging across multiple accounts. But, it's all in my head at the moment. I taught drama for twenty years, and this is something I've wanted to do for a while, steem puts all the pieces in one place where it could be done.

Yeah Steem has a lot of potential for these kind of things, I'm playing around with a few ideas there myself :)

Well, If you're interested, I'd love to chat on discord or other. I'm looking for collaborators on a couple of things.

Already got way too many projects running right now, so I'm not sure how much I'd be able to help, but I'd love to hear more about your idea. Unless you're already familiar with Steem development I could at least tell you if what you're thinking of would work the way you imagine it since I've already developed and published two Steem apps.

While I'm by no means an expert, due to my work on those apps I do know in general what is and isn't possible and how to do it. You can reach me best via email, cryptowyrm at protonmail.ch, haven't used chat apps in years, took up way too much of my time and I'm self employed so I need to be the one who tells me to not be lazy on the job :)

Not talking about apps as much as just as different method of publishing within steemit. And I totally get what you're saying, if you want to be your own boss, you have to boss yourself.

If it works with Steem as is that's even better of course. One of the things I want to do when I find the time is making an app for writing fiction collaboratively on Steem. Everyone would write a small part of a story, and then people can upvote those they like and the part with the highest reward is added to the story and then a new round of writing and voting begins. I wrote a website like that about 20 years ago, was really fun.

One problem is that when the story gets too long and too popular, the amount of time needed to read through everything to participate becomes crazy, but since you would get money for the upvotes on story parts you write, that might incentivize more people to do it and put some real effort into it to raise the quality.

Might even result in a complete novel that could be self-published and then the rewards split between everyone whose content ended up in the book, that's been done before, I remember reading that in the news a long time ago.

Well, that's not too hard. Steemplus allows for the rewards to be split automatically. So, publish the first part, then allow people to drop links in the comments, tell the readers to upvote the comment link they like. Then, just build a growing repository of links to find the rest of the story. Not perfect, but it would work, and get a lot of people interested.

This is great information for me. I have recently been trying to identify some writing software to help me put a book together. I like the multiple choice fiction software, it would make for fun reading!

Hi @crypticwyrm and fellow @Steemians, I’ve started a crowd-sourced story here. It’s about AgentX and his secret life with cat-women. Here’s an invitation to write the next line of the story! https://steemit.com/story/@suezaacat/chapter-1 @suezaacat

Very good post @crypticwyrm. Also visit my post and vote