I decided to give a brief overview of commonly used frameworks for interactive fiction and text based games development. Most of them are primitive enough to be covered on a single page. I don't want to write yet another tutorial #1000, I maybe put some links to existing ones.
I start with Twine. People who write interactive fiction nowadays like this 'framework' because it allows to create a 'game' from scratch in a minute. Literally. You don't need to be a programmer. You don't need to use your brain most of the time. You just write some passages, add some links, some variables (variables are for advanced Twine users, don't laugh, don't laugh) - and your game is ready to be published in the internet.
|Psyduck uses Twine. Psyduck feels bad.|
That's why every simple framework like Twine may be fatal for complete newcomers in games development with zero knowledge of any decent programming language techniques and patterns.
So, I want to create my first interactive fiction game. I don't know how to start, but I am clever enough to google things. I encounter Twine. What do I do now?
1.) I download and install it.
2.) I launch it:
4.) I click on that fancy square and edit it's content:
5.) I press '+ passage'. I edit this new passage:
6.) I add '->' after the text of my first passage. Twine suggests me the name of my second passage (so kind), but it actually fails: as you can see, it added ']]' symbols, but didn't add '[[' at the beginning.
7.) I fix it and I see the miracle of science: arrow appears!
8.) Time to test my creation. I press 'play'.
9.) I press on the text and the game shows me the second passage:
10.) [Optional] I cry because I have finally created something - my brand new game.
As you can see, it's pretty simple. It's simple when you need to create something simple. But if you need variables, conditions, classes and objects, events (any simple thing that you usually use during development) Twine says 'Of course you can do it, mate, but don't ask me to help!'
- Tons of macros. Literally. Save your eyes, don't look at them.
One girl posted a guide here describing how to create something 'advanced' using Twine.
There is even something that looks like code snippet:
(else:)[ You hit the monster!
(set:$monster_hp = $monster_hp - 1)
(if: $monster_hp < 1)[ The [[monster is dead]]! ]
Its health is $monster_hp.
- You are not a beginner and you just want to create something simple and fast.
- You need to create something that will use browser as it's engine. This is probably the only reason why I could use this tool.
- You are a beginner and you want to create something simple and fast and forget about it in a hope that your brain will not be damaged.
Here's an another blog of a girl who uses Twine with tutorial and with a list of games you can play. For example, 'at the bonfire' (yeah they use dropbox to distribute their games!) Some links are broken tho.
I also suggest this blog of yet another girl, Gersandelf. It contains an article which describes really advanced Twine techniques showing the implementation of items system with really good explanations. If you decided to use Twine, check this out.