#NICAR15: Create your own interactive newsgames without coding (much)

Hi. This doc is at http://rsm.re/nicar15twine

I’m Rebekah. I make journalism, Internet things and some games. You can find me as rsm on Twitter.

  • Please ask questions and help each other out by taking notes down at the bottom of this doc!
  • A brief and incomplete intro to text-based games …

    Text-based games are most commonly about narrative and choice. The most common example is the old Choose Your Own Adventure model. Building these for the web gives us a lot more options. We can add timings and animation, link to additional resources, use images, design elements, even actual data to enhance the narrative.

    Text-based games to try …

    Depression Quest: You may have heard of this game because of Gamergate. It’s the game that made Zoe Quinn an indie game darling, and ultimately why she got in the crosshairs of a bunch of trolls. Quinn calls this game "interactive non-fiction," as it draws from her own experiences and those of other people with depression. The game is a fantastic example of how experiencing a simulation through gameplay can help a player understand complex issues. Some mental health professionals have used it to build empathy with the family members of people with depression. 

    Steam (The first Twine game ever greenlit!)

    A Dark Room: A breakout text-based role-playing game that’s open-source and then became a bestseller on the app store, much to the surprise of media. You could build this in Twine pretty easy-peasy, especially with some of the new timing features in Twine2.

    iOS | Fork it | A Dark Room: The Best-Selling Game That No One Can Explain (New Yorker) 

    Howling Dogs: Porpentine is one of the most prominent indie game designers in the world, and she uses Twine a lot. Howling Dogs, one of her most popular games, is about confinement, trauma and escapism. It’s weird and beautiful and affecting. 

    You Will Select A Decision: A clever story-within-a-story on communist versions of Choose Your Own Adventure Books.

    BKLYN Trash King: How far will you go to fund your novelty Kickstarter?

    The Bicycle Race: A newsgame on bike safety.

    Some other interactive text-based games that I love: These games are mostly text-based, with some extra bells and whistles. They all have design and gameplay components to use as inspiration, and some of these could be entirely built with Twine, if you have a little extra coding skill.

    Blood & Laurels: Political intrigue in ancient Rome (iPad only)

    Blackbar: On censorship and resistance (iOS)

    80 Days: A game based on the Jules Verne novel (iOS)

    Device6: Mystery and puzzles (iOS)

    Spent: Managing poverty (Web)

    Newsgame Resources

    Newsgames directory: A list of some journalism games.

    Newsgam.es: The Newsgame Design Toolkit: An as-yet incomplete methodology and resources for designing news games. Contribute on GitHub

    Getting started with Twine2


    Twine is the app we’ll use to make our own text-based games

    Using the app

    Basic syntax (linking, TwineMarkup)

  • Links
  • [[Make a phone call]] Generates a new passage named after the link text.

    [[Pick up the gun->Bang]] reads "Pick up the gun" and points to a passage named "Gun". 

    Also in reverse: [[Bunnies<-Chase after them!]] reads "Chase after them!" and points to a passage named "Bunnies."

  • TwineMarkup
  • You can write HTML directly into your game, but TwineMarkup can help you write faster. It’s similar to markdown, with some quirks …

    HTML/CSS TwineMarkup
    <h1>  to <h6> #This is an h1 … ######This is an h6
    <hr> ---
    right-align ==>Right-aligned text
    center =><=Centered text
    justify <==>Justified text
    left-align <==Left-aligned text
    <strong> **bold word**
    <em> *italics*
    <del> ~~strikethruword~~
    escape character I want single quotes around `'escaped'` text

    Intermediate syntax (TwineScript)

  • Variables
  • Operator Does this Example
    + adds $lives+1
    - subtracts $lives - $poisons
    * multiplies $poisons*2
    / divides $lives/2
    % Gives a remainder (modulo) 26%5 returns 1
    () Orders operations (like algebra) (5+10)*2 = 30
    > greater than 5>7 evaluates FALSE
    < less than 2<7 evaluates TRUE
    <= less than or equal to 3<=3 evaluates TRUE
    >= greater than or equal to 5>=4 evaluates FALSE
    and and (if: $dogs>1 and $bones>1)
    or or (if: $dogs>2 or $bones>4)
    not not (if: $bones not 3)
  • Macros & Hooks
  • A macro is a command, and a hook is a thing that command acts upon.

  • Common macros:
  • (font: "Arial")[This hook will print in Arial.] This text will print as Times.

    (if: $lives > 2)[This text will only print if you have more than two lives.]

    Saving/exporting and hosting

    To save …

    Will download an HTML file.

    You can host this on any old standard server.

    OR you can host it free on GitHub pages.

    Workshop notes …

    Add additional notes from the workshop down here, please! 

  • Thank you! Also, please share your work!