"I still can't believe you actually used a [DeLorean]," says Larry.

"Hey, if you're going to do a thing, you ought to do it right," says [Richard].

Larry looks at the [DeLorean] with astonishment. [Richard] has done it up to look exactly like the car from Back to the Future.

Larry eyes the [DeLorean car]. "Give me the keys," he says. "I want to take this baby to 88."

"Oh, it doesn't drive anymore," says [Richard]. "I had to use the engine to power the time machine."

"So, run it by me again," says Larry.

"I modified this [DeLorean] to send information backwards through time," says [Richard].

"Just information. Not matter."

"Right."

Larry ponders this for a moment. "How... how does that even work?"

[Richard] waves his hands around. "Spooky action at a distance," he says.

"No, I mean, augh. I mean, what can you practically change about the past with this machine?" says Larry.

"Well, so far I've gotten my computer to crash five minutes before I push this [button]," says [Richard], gesturing at one of the controls inside the [DeLorean].

Larry reaches for the button and gives it a push.

"Nothing happened", says Larry, looking at the [computer].

"I told you you were going to push it," says [Richard].

Larry opens his mouth to say something, then seems to think better of it.

There is a beep as [Richard Richard's] [computer] spontaneously and inexplicably reboots.

"Aw, geez, you're going to push the button, aren't you?", whines [Richard].

"What? What button?" asks Larry, puzzled.

"Never mind," says [Richard].

null false false

"So I just write down the number I see on the screen?" says Larry.

"Yep," says Richard.

"And what does this tell us, exactly?" says Larry.

"Well, when you come out of the [room], I'm going to type the number you give me into the computer, which will make it show up on the screen before you wrote it down," says Richard.

"And what does this tell us, exactly?" says Larry again, exasperated.

"A number that neither of us picked," says Richard.

!fInRoom !fBeenInRoom true true

Larry sighs and opens the door. Inside the [room] is a computer [screen].

fInRoom false Larry goes back into the lab. [Richard] looks at him expectantly. "Well?" he asks.
fInRoom $[if (number === null) {]

Larry looks at the screen. It's blank. "Well, hell," he says, feebly scanning the [room] for another, hidden screen that might have a number on it. He doesn't find one.

$[} else {]

Larry looks at the screen. The number $(number) is displayed on it.

$[}]

He looks down at his piece of [paper] for a moment.

6 fInRoom $[if (false) {]

Larry is at a loss for a moment, but then decides that the thing to do is to just write down a number. He chooses six.

$[} else {]

"Huh," says Larry, scrawling down a large number $(number) on his paper. "Wonder what that means."

$[}]
fBeenInRoom $[if (number === null) {]

Larry shows Richard the blank piece of paper. "Nothing on the screen," he says.

Richard slaps himself on the forehead. "Of course! I can't believe I didn't think of that. If you don't show me a number, I won't type it in, which means you won't see a number, which means no paradox. Duh. How stupid of me. Forget I even asked."

$[} else {]

Larry holds up the piece of paper. "It said $(number)".

Richard looks quizzically at the paper. "$(number)? Are you sure?"

A look of alarm crosses Larry's face. "Is... is $(number) bad?"

"No, no, it's just I would have expected something, I don't know, more random, or meaningful, I guess," says Richard. "You didn't just make up some number?"

"Of course not!" says Larry, offended. "Go ahead and look for yourself. The screen says $(number)."

"No, no, I believe you," says Richard, and types a $(number) into his computer.

$[}]

Author's Notes

Hi there. That's all I've got for now. Here's some thoughts about what I'm trying to accomplish.

There are two ideas at play in this prototype. The first is that it might be interesting to see what happens when we get rid of the parser, and simply give the player the ability to know what she is capable of doing at any particular moment in the game. I don't see any reason why we can't create rich and interesting worlds by doing so. What appeals to me about this idea is not just the simpler interaction from the user's perspective, but the ability to have greater control of what the author has to model -- if something is not important to your game, you simply don't present the option to the player. Conversely, if an interaction is subtle or non-standard, you don't need to worry about teaching the player what the parser understands -- the verb is there. Your job is to make it interesting.

The second is to allow the player to interact with the story at any point that he has uncovered. Quite frankly, I am really uncomfortable making big decisions in most games. But a game should be the perfect place to make big decisions and explore the consequences! What bothers me is not that the consequences are unknown, but that my actions are irrevocable; that if I do something that I later understand was foolish, I am unlikely to be given a chance to redeem myself without playing through the game again. Always showing the player the entire story and allowing him to make changes at any point is a promise that he will never be punished for trying something, even if his character is; that he can learn from mistakes and move on. In this way, I can construct much harsher situations than may ordinarily be considered "fair"; I can do away with repetition of description and dialogue "just in case" the player forgets the vital information contained within; I can allow the player to dig himself into a hole, because I can give him the tools to quickly dig himself out.

I guess there's the time travel bit, too. I don't advise trying it, personally; building a model of the world in code where causality can occasionally be violated turned out to be much more difficult and time-consuming than I expected. I have no explanation for why I would have thought coding time travel paradoxes would be easy.

I would love to hear any and all feedback about your experience playing this game. I can be reached at jeremy dot penner at gmail dot com. Thanks for playing.