Apologies! Your web browser lacks required capabilities. Please consider upgrading it or switching to a more modern web browser.
Initializing. Please wait…
/%if you want to start a passage by playing audio, use this%/
<<audio "intro-ottawa" play>>
The world you see is not the only one. This device caries with it a multidimensional transponder.
/%the next bit calls the location variables, which initializes our access of the geolocation api%/
Currently you are at $Location.latitude and $Location.longitude which is on the cusp of an area of thin dimensional stability. Our research indicates the strongest concentration is somewhere near the old Horticulture building. You should start there.
Sweep and scan frequently.
First, you need to [[calibrate the scan]].
/%below I show how easy it is to embed other content within Twine. Perhaps the player needs to closely examine some kind of 3d object to figure out where to move next%/
<iframe src="https://p3d.in/e/O4Xyo" width="640" height="480" frameborder="0" seamless allowfullscreen webkitallowfullscreen></iframe>
This is an experimental text adventure plus low-tech augmented reality experience. It is dependent on the player's physical location. Please make sure to use a device with GPS capabilities, and grant access to them when prompted.
Warning: This experience contains content that may be upsetting and/or triggering. Proceed with caution.
[[Start|Are you in Dolphin?]]
/%this is a comment. Below is the bit the player will see when the game starts%/
/%this sets up our variables for our geotriggers%/
<<set $buffer = 0.0005>>
/% Tavern Alley %/
/% Tavern Alley Old
<<set $tavernAlleylat = 39.306597>>
<<set $tavernAlleylong = -76.620743>> %/
<<set $tavernAlleylat = 39.3066152>>
<<set $tavernAlleylong = -76.6207696>>
<<set $tavernAlleyAnswer to "">>
<<set $tavernAlleyCorrect to "moss beach">>
<<set $tavernAlleySolved to false>>
/% Cohen Plaza %/
/% Cohen Plaza Old
<<set $cohenPlazalat = 39.308350>>
<<set $cohenPlazalong = -76.621409>> %/
<<set $cohenPlazalat = 39.3083761>>
<<set $cohenPlazalong = -76.6214029>>
<<set $cohenPlazaAnswer to "">>
<<set $cohenPlazaCorrect to "sweetpea">>
<<set $cohenPlazaSolved to false>>
/% Park Ave Park Bench %/
/% Park Ave Park Bench Old
<<set $parkBenchlat = 39.308885>>
<<set $parkBenchlong = -76.626362>> %/
<<set $parkBenchlat = 39.3088958>>
<<set $parkBenchlong = -76.6263449>>
<<set $parkAvenueAnswer to "">>
<<set $parkAvenueCorrect to "3/7/15" >>
<<set $parkAvenueSolved to false>>
/% Penn Station Statue %/
/% Penn Station Old
<<set $pennStationlat = 39.307080>>
<<set $pennStationlong = -76.615871>> %/
<<set $pennStationlat = 39.3070663>>
<<set $pennStationlong = -76.6156965>>
<<set $pennStationAnswer to "">>
<<set $pennStationCorrect to "rpi">>
<<set $pennStationSolved to false>>
/% Test Location %/
<<set $testlat = 39.310782>>
<<set $testlong = -76.626949>>
/%add more points of interest by uncommenting and copying the code below
<<set $ANOTHERPOINTlat = >>
<<set $ANOTHERPOINTlong = >>
remember, decimal degrees. You can click on a google map, and the point you clicked will be in the URL. That's a handy way of grabbing points%/
/%if you were going to use audio, put the files in the same folder as your html (this precludes us from useing the philome.la twine hosting service, by the way, since you can only load the html; you could use full http links to sound files stored somewhere else, but you'll run into loading and caching problems)%/
<<cacheaudio "childsnightmare" "ChildsNightmare.mp3">>
<<cacheaudio "akeley" "Akeleys_Wax_Cylinder_Recording/Akeley_MiGo_Ritual_64kb.mp3">>
<<cacheaudio "intro-ottawa" "ottawa-intro.mp3">>...calibrating...
/%This is the nuts-and-bolts of a geotrigger. We come back to this passage again and again to obtain the latest location. Then, in a series of nested if-else statements we go through our list of potential locations. A more elegant version of this code is in the orphaned passage 'buffer-test'. For a more elegant version see the 'calibrate the scan' passage%/
<<if $Location.latitude lte ($natsciencelat + $buffer) and $Location.latitude gte ($natsciencelong - $buffer) and $Location.longitude lte ($natsciencelong + $buffer) and $Location.longitude gte ($natsciencelong - $buffer)>>
<<display "Natural Sciences Building">>
<<elseif $Location.latitude lte ($horticulturelat + $buffer) and $Location.latitude gte ($horticulturelat - $buffer) and $Location.longitude lte ($horticulturelong + $buffer) and $Location.longitude gte ($horticulturelong - $buffer)>>
<<display "Horticulture Building">>
<<elseif $Location.latitude lte ($benefactorsplazalat + $buffer) and $Location.latitude gte ($benefactorsplazalat - $buffer) and $Location.longitude lte ($benefactorsplazalong + $buffer) and $Location.longitude gte ($benefactorsplazalong - $buffer)>>
<<display "Benefactors' Plaza">>
<<else>>
<<display "This zone is clear">>
<</if>>Currently you are at $Location.latitude and $Location.longitude
"You're still not in the right place! I thought you wanted to see me today :("
[[Rescan|calibrate the scan]]<<if $tavernAlleySolved and $pennStationSolved and $cohenPlazaSolved>>
<<display "Park Invite">>
<<elseif $tavernAlleySolved and $pennStationSolved>>
<<display "Locations Hint Cohen">>
<<elseif $tavernAlleySolved and $cohenPlazaSolved>>
<<display "Locations Hint Penn">>
<<elseif $cohenPlazaSolved and $pennStationSolved>>
<<display "Locations Hint Alley">>
<<elseif $cohenPlazaSolved>>
<<display "Locations Hint Alley Penn">>
<<elseif $tavernAlleySolved>>
<<display "Locations Hint Cohen Penn">>
<<elseif $pennStationSolved>>
<<display "Locations Hint Cohen Alley">>
<<else>>
<<display "Locations Hint">>
<</if>>
<<if approxEqual($Location.latitude, $natsciencelat) and approxEqual($Location.longitude, $natsciencelong)>>
<<display "Natural Sciences Building">>
<<elseif approxEqual($Location.latitude, $horticulturelat) and approxEqual($Location.longitude, $horticulturelong)>>
<<display "Horticulture Building">>
<<elseif approxEqual($Location.latitude, $benefactorsplazalat) and approxEqual($Location.longitude, $benefactorsplazalong)>>
<<display "Benefactors' Plaza">>
<<elseif approxEqual($Location.latitude, $tavernAlleylat) and approxEqual($Location.longitude, $tavernAlleylong)>>
<<display "Tavern Alley">>
<<elseif approxEqual($Location.latitude, $parkBenchlat) and approxEqual($Location.longitude, $parkBenchlong)>>
<<display "Park Avenue Bench">>
<<elseif approxEqual($Location.latitude, $pennStationlat) and approxEqual($Location.longitude, $pennStationlong)>>
<<display "Penn Station Statue">>
<<elseif approxEqual($Location.latitude, $cohenPlazalat) and approxEqual($Location.longitude, $cohenPlazalong)>>
<<display "Cohen Plaza">>
<<elseif approxEqual($Location.latitude, $testlat) and approxEqual($Location.longitude, $testlong)>>
<<display "Leake Hall">>
<<else>>
<<display "This zone is clear">>
<</if>>
/%this bit of code does the same thing as the 'old-code calibrate the scan' passage, but instead calls on the 'approxEqual' function that we made in this story's javascript. The 'display' command will display other passages when you put the desired passage's title within the quotation marks. Note we also make a passage for when the player is in a location we haven't coded for. That particular passage could contain hints etc%/
<<if $tavernAlleySolved and $pennStationSolved and $cohenPlazaSolved>>
<<display "Park Invite">>
<<elseif $tavernAlleySolved and $pennStationSolved>>
<<display "Locations Hint Cohen">>
<<elseif $tavernAlleySolved and $cohenPlazaSolved>>
<<display "Locations Hint Penn">>
<<elseif $cohenPlazaSolved and $pennStationSolved>>
<<display "Locations Hint Alley">>
<<elseif $cohenPlazaSolved>>
<<display "Locations Hint Alley Penn">>
<<elseif $tavernAlleySolved>>
<<display "Locations Hint Cohen Penn">>
<<elseif $pennStationSolved>>
<<display "Locations Hint Cohen Alley">>
<<else>>
<<display "Locations Hint">>
<</if>>
[[Rescan for Geotriggers|calibrate the scan]]
/%in the passage above, the player will see the text 'rescan for geotriggers, but the link will be to the passage called 'calibrate the scan'%/Sound effects found at soundbible.com:
Gunfire_In_Crowd-KevanGC-1080318106.mp3
Please%20Open%20The%20Door-SoundBible.com-1938859889.mp3
Pickaxe-SoundBible.com-1937292892.mp3
Sad_Male-Mike_Koenig-58602415.mp3
Other sounds public domain, retrieved at Internet Archive:
https://ia700706.us.archive.org/4/items/ChildsNightmare/ChildsNightmare.mp3
https://ia801408.us.archive.org/16/items/Akeleys_Wax_Cylinder_Recording/Akeley_MiGo_Ritual_64kb.mp3
https://ia700500.us.archive.org/16/items/WORLDSOLDESTRECORDEDMUSIC/WORLDSOLDESTRECORDEDMUSIC-PIANOCORNETTHELOSTCHORD1888.mp3
https://ia700400.us.archive.org/5/items/Cabin/LittleOldCabinInTheLan.mp3
https://ia700704.us.archive.org/16/items/WartimeRadio1941/1941-08-14BbcWinstonChurchill-TheAtlanticCharter.mp3
Remaining sound effects by Shawn Graham.
Loading image: http://fc07.deviantart.net/fs25/f/2008/181/f/f/Trippy_Design_by_Cru_the_Dwarf.jpg
Anomaly found image:
https://openclipart.org/image/300px/svg_to_png/28414/PBCrichton-Malware-Hazard-Symbol-Red.pngCurrently you are at $Location.latitude and $Location.longitude: Leake Hall
"Whatcha doing here cutie? Aren't you supposed to be out looking for clues or something? Stop being lazy."
[[I'm testing things!]]
[[Rescan]]Currently you are at $Location.latitude and $Location.longitude: Tavern Alley.
"Oh, hey! This alley is pretty grimy, but I hid a clue here. You're gonna have to solve the puzzle if you want to hang out later. Look around, use that big brain of yours."
[[What puzzle?|Tavern Alley Puzzle]]
[[What am I looking for?|Tavern Alley Puzzle Hint]]
[[I'm tired of your games.]]
[[Rescan]]"Hey! Are you in Dolphin right now?"
[[I'm at the tavern.]]
[[I'm at home.]]
[[Yeah, I'm in Dolphin.]]
[[I'm somewhere else.]]"Bit early for that, don't you think?"
[[...|calibrate the scan]] "Well then, get off your butt and come hang out with me! I promised you coffee ages ago, let's do something like that!"
[[...|calibrate the scan]] "You are!? Oh, that's perfect! I thought you didn't like being in Dolphin. You would never tell me why though...
Anyway. It's perfect because you're super close to one of my puzzles! Don't you want to find me? Let's hang out!"
[[...|calibrate the scan]] "I know! I don't know why I even ask, I know where you are at all times! Currently, you're at $Location.latitude and $Location.longitude"
[[...|calibrate the scan]] Currently you are at $Location.latitude and $Location.longitude: Park Avenue Bench.
"It's nice and quiet here, huh? I know you like to sit here and think late at night sometimes. I'm not sure that's the best idea."
[[You're not my mother.]]
[[You're probably right.]]
[[Rescan]]Currently you are at $Location.latitude and $Location.longitude: Penn Station.
"I told you this statue was ugly as sin when you came to visit here."
[[Yeah, it's pretty ugly.|Penn Station Puzzle]]
[[Rescan]]"Oh, you don't mean that. Can't we just get along? You always have to be grouchy. You haven't changed a bit."
[[Okay, look, I'm sorry. What am I looking for?|Tavern Alley Puzzle]]
[[Fuck you.]]"Wow. You never say stuff like that. I thought you were a good partner, but I guess not. Solve my puzzles, or don't, I don't care."
[[...|Tavern Alley Puzzle]] "Do you remember where we went with my mom that one time? It was so beautiful there...do you remember?"
"Where did we go?"
<<textbox "$tavernAlleyAnswer" "" autofocus>> \
<<button "Submit">>
<<if $tavernAlleyAnswer.trim().toLowerCase() is $tavernAlleyCorrect>>
<<goto "Tavern Alley Solved">>
<<else>>
Wrong!
<</if>>
<</button>>
[[You said something about a clue?|Tavern Alley Puzzle Hint]]"Does it look like I care? Get moving, dumbass."
[[...|Rescan]] "Don't be like that. You know I'm just looking after you. Now sit for a while, I'll be there soon!"
[[...|Park Avenue Bench Puzzle]] "Of course I am. Now sit. I'll be there soon!"
[[...|Park Avenue Bench Puzzle]] Currently you are at $Location.latitude and $Location.longitude: Cohen Plaza.
"I told you that when you got here, I'd probably ignore you."
[[That really hurt my feelings you know.]]
[[Rescan]]"You do remember!"
<<set $tavernAlleySolved to true>>
[[Of course I do!|Rescan]]"You know, you asked me out on a bench a lot like this one. Do you remember that day?"
"When was it?"
<<textbox "$parkAvenueAnswer" "" autofocus>> \
<<button "Submit">>
<<if $parkAvenueAnswer.trim().toLowerCase() is $parkAvenueCorrect>>
<<goto "Park Avenue Bench Solved">>
<<else>>
Wrong!
<</if>>
<</button>>
[[Uh...help?|Park Avenue Bench Puzzle Hint]]"Yeah...of course you remember."
[[I remember it well, actually. That was a good day.]]
[[Well, yeah. It's hard to forget that day.]]Wrong!"Hey, there's a few places we could hang out! Check out Penn Station, the alley behind the Mount Royal Tavern, and Cohen Plaza. Maybe you can find me ;)""Hey, you've visited everywhere else, come join me at the park on Park Avenue, by the fountain.""When you came to visit me, you had just gotten in from visiting from another school. Some technical school or whatever, I don't remember. Sometimes I wish you had gone there instead."
"What school was it?"
<<textbox "$pennStationAnswer" "" autofocus>> \
<<button "Submit">>
<<if $pennStationAnswer.trim().toLowerCase() is $pennStationCorrect>>
<<goto "Penn Station Solved">>
<<else>>
Wrong!
<</if>>
<</button>>
[[Can you give me a hint?|Penn Station Puzzle Hint]]"Sorry, that was unnecessarily harsh. But I do struggle having you attend school here too."
[[...|Rescan]]
<<set $pennStationSolved to true>>"Hey, you've been to the alley and Penn Station already. Why don't you check out Cohen Plaza?""Alright, you've visited the alley and Cohen Plaza, why not head to Penn Station?""Hmm...you've already seen Cohen Plaza and Penn Station. Check out the alley behind the Mount Royal Tavern.""Well, you've seen Cohen Plaza. Exciting, right? Consider going to the alley behind the tav or Penn Station.""What'd you think of that alley? Try Cohen Plaza or Penn Station next!""Well, you've seen that statue now, and trust me, once is enough. Now maybe go to Cohen Plaza or that alley behind the Mount Royal Tavern?""I do miss you sometimes...hah, I was about to call you by my old nickname for you. It was kind of silly, but I think you thought it was cute."
"What did I call you?"
<<textbox "$cohenPlazaAnswer" "" autofocus>> \
<<button "Submit">>
<<if $cohenPlazaAnswer.trim().toLowerCase() is $cohenPlazaCorrect>>
<<goto "Cohen Plaza Solved">>
<<else>>
Wrong!
<</if>>
<</button>>
[[This place is kind of big...what am I looking for?|Cohen Plaza Puzzle Hint]]"Well can you blame me? Even seeing you hurts me. Why did you come here?"
[[...|Cohen Plaza Puzzle]]"I miss you, a lot. Do you miss me?"
[[...|Rescan]]
<<set $cohenPlazaSolved to true>>"I'm sorry sweetie, I can't make it today."
"Find your own closure."
[[The End]]"Yeah...it was, wasn't it? Do you remember that time we woke up early, went to Pardee Park, laid out a blanket on the grass, and watched Howl's Moving Castle while drinking tea?
[[That's one of my favorite memories of you. I can't wait to see you.]]"Aww, that's sweet of you!"
[[I mean, because you kind of fucked up my life.]]"You're an asshole. I thought we were having a good time."
[[...|Time passing]]"Mine too. I'll see you soon, okay?"
[[...|Time passing]]...it's been a little while...
[[...|Ending]]"You're looking for the name of a place. I hid a decal with it somewhere in this alley. It's white lettering, but that's all the hints you get!"
[[Okay, I think I've found it.|Tavern Alley Puzzle]]"You know, Mark Golden was the one who convinced me to stop smoking. So I don't use these things anymore, but you might find a hint on one."
[[Okay, give me a shot at your riddle.|Penn Station Puzzle]]"All I can say is that sometimes, benches are good for more than just sitting and being awkward teenagers on."
[[Alright...|Cohen Plaza Puzzle]] "If you're by the fountain, you're in the right place. Check out these benches while you're there. Might be useful."
[[Mhm, real helpful...|Park Avenue Bench Puzzle]]Thanks for playing Just Be Still With Me. I apologize if it wasn't exactly what you expected or wanted, but I appreciate you for trying it out and sticking with it regardless.
[[If you wouldn't mind leaving some thoughts here, I'd appreciate it.|https://docs.google.com/forms/d/e/1FAIpQLSeMUOVEur2yEaNarz1ovRQZyuuOrJn37to_W_X5qJIv3xlL_Q/viewform?usp=pp_url]]
[[If you're curious about how this was made, click here.|https://deckardkane.github.io/projects/just-be-still-with-me/]]
This project would not have been possible without Twine, JavaScript, specifically the work of Shawn Graham, whose efforts in adding geolocation functionality to Twine were the basis for mine, and GitHub Pages.