Twine: Day 1

twine logo

A new tool has emerged that empowers just about anyone to create a game.”

Carolyn Petit, Gamespot

Having wanted to get into video game development over the last few years, I’ve been having a hard time figuring out where to start. A lot of people seem to disagree as to what is the best way to dive in to this industry. Some people say that you should put your nose to the grindstone and just learn a few languages like C++ and what not. Others say that you should explore different engines/IDEs before settling in and committing to making a game.

Neither of these options seem appealing to me, which is probably why I latched on so strongly to something I heard on a recent Idle Thumbs podcast. While reading an email from a listener that was basically going through the same thing as me (lots of writing experience/no game making experience), they suggested that he try a program called Twine. Having read about so many different engines and development tools over the last year, I felt the same level of fear and wariness when they mentioned Twine, but as they kept going, I started to feel my fear back down a bit and be replaced with excitement.

This program is undoubtedly a great way to start learning about how games work. It only took a few minutes to get the gist of how the player’s decisions effected the flow of the game and without having to learn anything other than one simple programming function! This was a great feeling, especially after looking over the interfaces of the Unreal engine and Unity.

I first tested out the mechanics of Twine with a simple scenario where the player fights a bouncer after unassumingly bringing a knife into a busy bar. It worked great: the layout of the game/story that you make is extremely easy to use and makes it extremely easy to keep track of the flow of the game, something that I now realize is extremely important when mapping out something that can have so many different path (contradicting paths, diverging paths, and especially re-merging paths so that your main story is intact). So far, I’ve had a lot of fun.

One thing that might seem a little daunting to complete newbies is the use of html. If you’ve never used tags before, prepare to get a crash course in expressions and just general html syntax (which is a little confusing because it seems like Twine has its own syntax as well). That being said, there are tons of great online resources that I’ve found already to help out with keeping tags and just general coding issues. Here’s a list of expressions you can use in Twine to make things a little more interesting. I’m finding, having learned the basics of html two winters ago, that it’s coming back to me fairly quickly. Html is, thankfully, a fairly simple and straightforward way of organizing what you want to do, even if it can seem repetitive at times. Twine also supports CSS, if you feel like you’re up for that.

The output of Twine is a block of html code that you can copy into your browser. I use this website to test my code just because it’s pretty lightweight and easy to use. If there’s a better way of testing html code, let me know (especially if it’s possible to do offline). When you run your code, you get a “text adventure” of sorts with a fairly basic layout. Your title and any other tags or paratext bits you added in Twine will show up next to your actual text in a fairly simple design, but I’ve seen a few games so far that, using CSS presumably, looked fantastic all decked out with inline images and even sound! Here’s a pretty neat but still basic example of a Twine game.

Anyhow, I’m still learning on how to set conditions in Twine, like making the game remember that you chose a certain path and having that provide you with a different ending to the game (think: you chose to pick up a torch earlier and that means you can sneak through a cave later instead of a fighting a troll). It’s definitely a little more complicated than what I’ve done so far but the results are pretty encouraging!

I definitely recommend Twine. It’s free and there’s a decent community out there from what I can tell after a day of searching here and there for answers to some of my questions. Try it here: http://twinery.org/

6 comments
  1. I think I’m in much the same situation as you and the Idle Thumbs listener: lots of ideas for games, almost no clue how to make them. I’ve also had a try of a whole load of “Make games without coding!” tools, and Twine is by far the best one. If you’re not trying to include a lot of bells and whistles, you can have your first game finished in a matter of minutes, but if you’re willing to get your hands dirty and fiddle with variables, you can do just about anything. I can’t, personally, but there are some very impressive examples online.

    If you’re interested in working with something a bit more graphical, I’ve also found RPG Maker VX Ace to be very easy to pick up and use. However, without spending a significant amount of time learning to use it (and the art skills/connections to produce/get original sprites and tiles), it feels a lot like painting by numbers. The steep learning curve once you step away from the pre-made enemies, skills and classes kind of detracts from its early ease of use.

    • I will definitely have to check out RPG Maker cause, even though Twine is cool and all, it does have it’s limits in terms of playing something with actual action involved.

      Here’s a smart article that makes a good point about how, by cloning existing games (simple ones), a new developer actually learns a lot about how to make games in general. As soon as I get the time, I will definitely be all over that.
      Link:
      http://www.hobbygamedev.com/beg/clone-videogames-to-learn-real-time-videogame-design/

      Thanks for reading!

      • That sounds like a really good idea. “Learn Python the Hard Way” does something similar by getting you to type out simple programs while gradually adding in new commands, but it’s fairly slow going, and the “See Spot run” quality of the programs makes it hard to get excited about slogging through the next one. I’d be much happier typing out (and ideally tweaking) games if it meant I could see what effect the code had in an actual game.

        I’d definitely recommend trying to get some kind of deal on RPG Maker: it’s pretty pricey as standard, but they occasionally drop the price significantly. I got it through a Steam sale, and I think the time I’ve spent just fiddling around (and knowing for sure there’s a way I can cobble together a simple top-down game) has already made the purchase worthwhile.

        • Wow, I actually didn’t know you could buy those kinds of programs from Steam. Cool.

          I agree about seeing what effect your code has as you’re writing it. Codeacademy.com is kind of a way of doing that, but it’s also extremely slow going and, when I was last using it, there were a number of bugs that made correct code just not work. Ah, well.

          I’ve also been reading up on C++ textbooks and I think I’m going to buy the C++ Primer book and just try to get through one section every day/week, depending on how hard that is.

          • Do you know what benefits C++ offers over Python (or any language over any other, for that matter)? That’s one of the things that’s holding me back from really getting stuck into learning one. There’s plenty of advice online, but a lot of it’s contradictory and even having decided to go for Python initially I found that there were at least two versions with small (but significant) differences. I gather that learning one language can get you a foothold in another, but it would still be good to pick one based on its merits rather than “Meh, here’s a tutorial I can start working through right now.”

            • Haha, your first sentence is literally what I’ve written into the Google search bar about fifteen times now. No, I don’t. I don’t think anyone definitely knows what the “best” language is for people in our situation. I picked C++ because it’s widely talked about and it seems to have a massive amount of literature I can refer to when I’m learning it. I agree, almost all the online advice contradicts some other advice I’ve seen. I get the feeling that, once you get an idea of how logic can/does work, learning new languages will just be a matter of memorizing new syntax, which I think is actually the easy part. I’m not too worried!

say something