Hello, Twine Community!
I am a relatively new Twine writer, and I'm currently working on a big project. I wish to adapt the video game
Until Dawn into a text game personalized using my friends and I as the main characters.
One major gameplay factor of the game is the "Don't Move" component, in which you must hold your controller completely still. Your ability to remain still will affect the story and could make a huge difference.
I am wondering how I could make something like this in a textual format. Making choices "Move" and "Don't move" seem too simple and obvious, so is there a more complex way to implement this into Twine?
Comments
Instead, a less complex idea: I'm pretty sure that all versions of Twine have a way to time things. You could inject a certain amount of "move / don't move" interactivity into some decisions by adding a timer-- say, you have to wait until a monster passes the place you're hiding, and clicking to move out of hiding before then gets you caught. You could also do the reverse: something's chasing you, and you have to make your navigational decisions on a time limit before it catches up.
I've been doing twine for ages, though I've never done any javascript. However, I could help you with a timer. You wanna use a (live:) macro. If you give me an example of something you want done I could write out some code for ya.
(Example: Sam hides from the Psycho behind a wall. If you fail the "Don't Move" segment, the Psycho notices her. If you succeed, you have a chance to escape.)
Basically, [character] must stay still for [time] in order to [goal] or else [character] will face [punishment].
When you say controller, d'you mean this is gonna be a console game? Cause I dunno how to do console stuff. But something like that probably involves javascript?
The original game is for console, but not what I'm working on.
I'm not 100% familiar with Javascript, how can I go about using it?
If you ain't using a console, then how can you hold a controller, and make it affect the game?
Sorry, I wasn't clear. I'm not planning on using a controller for this. What I was hoping for was a timer or Javascript thing that could do something similar to a controller.
This is the starting passage:
And this goes in a passage entitled "Exit the clock":
The (live:) macro causes the contents of its attached hook (the stuff next to it in brackets []) to be run every x seconds; for example, (live: 3s)[hello] will print "hello" after 3 seconds (and every 3 seconds after that, but you can't see it change.)
In order to display something different as time passes, we stick an incrementing $wait variable into the loop: its value will increase by 1 every time our (live:) macro fires off.
Then we can check the $wait variable each time the (live:) macro runs and display different messages depending on its value.
Or you could use the (mouseover:) macro so the player's mouse has to stay still, otherwise it will hit a loada hidden (mouseover:) links:
I'd like to point out that this can cause massive headaches due to how users move the mouse and how the HTML box model operates. A simple accidental move or miss by a few pixels can trigger (presumably dire) consequences. It's also entirely incompatible with mobile input. Which could be a problem, depending on the audience.
To the original topic, I really like this idea, but it needs some consideration as a mechanic in text. A few issues: 'waiting' in text is not hard. As you read, you wait by default, and forcing the player to wait too long is in fact annoying and bogs down gameplay. Or, if the passage is too long, they win by default by waiting.
Instead, I'd suggest doing the opposite: force the player to act quickly (which is stressful in text, as you may not know everything). If you have 7 options to choose from and one or two lines of text to read... and now a counter ticking down from say 15s, that'd make a more compelling mechanic.
I know, I know. Not quite like the original idea, but it fulfills a similar spiritual concept in the text-based world.
Another, slightly simpler, option is to do what I did in my game: hide a chance-based consequence under an innocent seeming text option. The way this plays out (in my case) is that the player will get three options, eg. "approach" "attack" "sneak away" and in any one of these there's a chance the player will be 'ambushed' (calculated via a check to the player's skills). If they fail the check, they get forced into combat even if they chose a safe option. I used this to add tension to 'creepy' areas of the story and I suppose smth similar could be adapted for use in this case.