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.

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

Cool article! Perfectly written! Straight to the point)

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