24 September 2019

    Drew Hook

    How to add music and colour to your Twine game

    Making your own game on Twine is simple, and now you can get even more creative with the inclusion of colour and sound

    In our previous article, we went over the basics of creating a playable text-based game using Twine, a free, web-based programme for aspiring game developers. Now that we have the fundamentals under our belt, it's time to take a look at how to personalise your game with your own sounds, colours and images. 

    Adding an Image

    Nothing helps build a mood or create a sense of place than some evocative imagery. So you no doubt will want to include some images in your twine game, to help set the mood. You can either create your own illustration and upload it to the web, or use an existing image (with the owner's permission of course). Once you know what your image's URL is, having it display in your story is as simple as entering the correct HTML code to show up:

    <img src="the URL of your image" width="500" height="300" alt="Two foxes">

    The width and height part of the code control the size of your image on the page. If you leave them off, then it will display the image in the dimensions as you saved it.

    Adding a Video

    Instead of an image you may want to include some sort of motion video. The code to enter for a video is similar to what you use for an image:

    <video src="the URL of your video" width="640" height="480">

    There are a lot more options for customizing how your video appears – try this HTMl5Rocks article for details.

    If you'd like to embed a video from a service like YouTube or Vimeo, check the page for an option to embed it. See YouTube's help and Vimeo's help for specific instructions on how to get the embed code and customize it. Once you have that code, enter it as-is into your passage to have it display.

    Adding Sound Effects and Music

    Writing a story about a haunted house? Why not add some sound effects of footsteps from above or some creaking floorboards? The code to add a basic sound effect looks like this:

    <audio src="the URL of your sound effect" autoplay>

    The autoplay attribute causes it to play as soon as the passage it is in is displayed.

    That said, SugarCube has features that make using audio much simpler, and also allow for music. If you use the code above, you'll find that any music ends as soon as the reader navigates to another passage, which is probably not what you'd like to have happen. There are two steps to using audio in SugarCube. First, you'll need to cache it. Caching it allows the browser to load your audio ahead of time, so that there isn't a delay when you ask it to be played. It also allows you to give each sound effect or piece of music a short name to make

    <<cacheaudio "door-opens" "the URL of your sound effect">>

    The best place to cache audio is right at the start of your story. On a later passage, playing a sound effect is as simple as writing:

    <<audio "door-opens">>

    There are many other options that let you fade in and out sounds, play multiple at the same time, and even move to another passage when a sound effect finishes. For more information, see the Audio section of the SugarCube macro documentation.

    External Resources

    • DJ White created a library called Twine Audio for incorporating narration into Twine stories. It only works on Chrome and Opera browsers, however. The original web site twineaudio dot com seems to currently point to spam sites.

    • Dan Cox has published a tutorial video on adding images with the SugarCube story format.

    Drew Hook