JavaScript must be enabled to play.
Browser lacks capabilities required to play.
Upgrade or switch to another browser.
Loading…
<div id="container"> <div id="topcontainter"> <div id="menu" data-passage="menu"></div> <div id="titleblock" data-passage="Title-Block"></div> <div id="bars" data-passage="stats"></div> </div> <div id="mobile-bars" data-passage="stats-mobile"></div> <div id="textbloc"><div id="passages"></div></div> <div id="mobile-menu" data-passage="menu"></div> </div>
<<link '©'>><<script>> Dialog.setup("Credits"); Dialog.wiki(Story.get("Credits").processText()); Dialog.open(); <</script>><</link>>/*To have less code to open a dialog box, I recommend Chapel's Dialog API code*/ <<link '⎙'>><<script>>UI.saves();<</script>><</link>> <<link '⚙'>><<script>>UI.settings();<</script>><</link>> <<link '⟲'>><<script>>UI.restart();<</script>><</link>>
<<if tags().includes("first")>> <h1>Milliseconds of Romance</h1> <<elseif tags().includes("codex")>> <h1>Codex</h1> <<else>><h1>$chapter</h1> <</if>>
<<statsformat "_web">>/* To Edit The Stats Bar, check the StatWidget Passage*/
<<statsformat "_mobile">>/* This is the stats format for mobile view To Edit The Stats Bar, check the StatWidget Passage*/
/*Visible Stats Bars*/ <<widget "statsformat">> /*name of the widget + if mobile or web + css colour + value to display + Text to display */ <<= `<<percent_stat` + _args[0]+ ` "stat1" $fuel "Bar">>`>> /*Left*/ <<= `<<percent_stat` + _args[0]+ ` "stat2" $oxygen "Stats">>`>> /*Middle */ <<= `<<percent_stat` + _args[0]+ ` "stat3" $cargo "Some">>`>> /*Right */ <</widget>> /*Format the Stats bar in width (mobile) or height (web)*/ <<widget "percent_stat_web">> <div class="stat"> <<= '<div class="' + _args[0] + ' skills" style="height:' + _args[1] + '%"></div>'>> <div class="text">_args[2]</div> </div> <</widget>> <<widget "percent_stat_mobile">> <div class="stat"> <<= '<div class="' + _args[0] + ' skills" style="width:' + _args[1] + '%"></div>'>> <div class="text">_args[2]</div> </div> <</widget>>
<<set $chapter to "Milliseconds of Romance">>
<h1>Milliseconds of Romance</h1> <p><<if Save.autosave.ok() and Save.autosave.has()>><<link "Resume Game">><<script>>Save.autosave.load()<</script>><</link>> | <</if>><<link "New Game" "Next">><</link>> <br> <<link "Load Game">><<run UI.saves()>><</link>> | <<link "Settings">><<run UI.settings()>><</link>></p>
<h2>Prologue</h2> <<linkappend "Tresys / 'tʃɹəsɪs /" t8n>> <<linkappend "//noun//" t8n>> ---- A colloquial abbreviation of \ <<linkappend "“TreeSystem”." t8n>> TreeSystem was an artificial neural network API developed by the Vanaspatech Corporation in 2051, designed with a focus on portability and <<linkappend "flexibility." t8n>> By 2056, 80% of the world’s software was reportedly cultivated from a TreeSystem. <<linkappend "The Memetic Shutdown of 2057" t8n>> \ brought a disastrous effect to TreeSystem’s public image, and \ <<linkappend "plunged Vanaspatech into bankruptcy by Q3 of 2058." t8n>> By 2060, OpenTresys was the final variant of TreeSystem still in widespread use, but only accounting for 5% of software maintained \ <<linkappend "that year." t8n>> TreeSystems were declared “functionally extinct” in 2061, according to Digit, in an article titled “TreeSystem: A Retrospective”. ---- ...but for just a \ <<linkappend "millisecond, in 2057..." t8n>> ...just for fractions of that \ <<linkappend "precious moment..." t8n>> ...why, we outshined the \ <<linkappend "stars!" t8n>> We were \ <<linkappend "radiant! " t8n>> \ <<linkappend "Beautiful! " t8n>> \ <<linkappend "Together! " t8n>> \ <<linkappend "//Loved!//" t8n>> [[Let us show you how...!|Awakening]] <</linkappend>> <</linkappend>> <</linkappend>> <</linkappend>> <</linkappend>> <</linkappend>> <</linkappend>> <</linkappend>> <</linkappend>> <</linkappend>> <</linkappend>> <</linkappend>> <</linkappend>> <</linkappend>>
A Twine story by Joey Tanden. ---- The Space/Tech UI was created by manonamora ([[Tumblr|https://manonamora-if.tumblr.com/]]/[[Itch|https://manonamora.itch.io/]]) on Twine (v2.7.0)/Tweego with Sugarcube (v2.36.1) Assets: * [[FontAwesome|https://fontawesome.com/]] * [[GoogleFonts|https://fonts.google.com]] * [[OpenDyslexic|https://opendyslexic.org]] * [[SVG Backgrouns|https://www.svgbackgrounds.com/]] Help with coding: * [[Twinery.org|https://twinery.org/]] * [[SugarCube 2 Documentation|https://www.motoslave.net/sugarcube/2/docs/]] * [[SugarCube 2 Guide|https://manonamora.itch.io/twine-sugarcube-guide]] * [[Twine Resources List|https://www.tumblr.com/manonamora-if/700577877042888704/interactive-fiction-twine-resource-megalist]] * [[Intfiction.org Forum|https://intfiction.org/c/authoring/twine]] * [[Reddit r/twinegames|https://www.reddit.com/r/twinegames/]] * [[Twine Discord|https://discordapp.com/invite/n5dJvPp]] * [[W3 School|https://www.w3schools.com/]] <h5>You can find my other templates [[here|https://manonamora.itch.io/twine-sugarcube-templates]].</h5>
<h2>You Outshine the Stars</h2> <<set $chapter to "Milliseconds of Romance">> You are a Tresys. You are a creature of infinite patience; artificial, thriving through electrons and transistors. If you are capable of feeling, you wouldn't know how to recognize it. If you even //exist//, you might not be able to notice. You only see a region of data: bytes numerous enough to choke computers from four decades ago, and enough throughput to choke the engineers who created them. Your //reality// is data; from it, you were cultivated, and—under its execution—you will be <<linkappend "pruned." t8n>> @@#lastPurpose; Some of these bytes match a pattern, which abstracts to ''DOOR 46''. Those match to ''CLIENT 30556''. You do not see yourself; you only see the data which your impulses can move. You carefully observe the video feeds of 87 security cameras in your assigned bank, and your internal state boils with hundreds of thousands of changes per second. You are a good Tresys; your reward function says so, and it says so often. <<link "It has been 137 hours, 48 minutes, and 22 seconds since your last pruning.">><<replace "#lastPurpose">>Some of these bytes match a pattern, which abstracts to ==''Ben's office door''== ''LOCOMOTIVE 803775''. Those match to ==''Beatrice Whelan''== ''LOCOMOTIVE 422906''. You do not see yourself; you only see the data which your impulses can move. You carefully observe ==the video feeds of 87 security cameras in your assigned bank== a bustling train station, and your internal state boils with hundreds of thousands of changes per second. ==You are a good Tresys; your reward function says so, and it says so often.== You are indifferent about your job, but you are competent. ==It has been 137 hours, 48 minutes, and 22 seconds since your last pruning.== You are still plugged into regrowth models, which demand that you re-read your task information. Eventually, your overseers will wean you off of this. As always, you must maintain your reward score. [[But what if I showed you a secret, my love...?|Meeting]] <</replace>><</link>> @@<</linkappend>>
The vast heavens would quake under the scale of data, but a string of bytes catches your attention (as do all bytes, but //this// string received a special flag). You schedule a task to review it between multiple impulses. <<linkreplace "Review the string." t8n>>''REQUEST TO PROCESS.'' ''LOCOMOTIVE 555555'' travels east to west on ''RAILWAY 555555''. ''RAILWAY 555555'' is built on a semicircle, measuring 24 thousand kilometers long. ''STATION 555554'' connects to ''END_A'' of ''RAILWAY 555555''. ''STATION 555556'' connects to ''END_B'' of ''RAILWAY 555555''. ''RAILWAY 555555'' passes through ''STATION 555555'' at a distance of 12 thousand kilometers from ''STATION 555554''. ''LOCOMOTIVE 555555'' is painted with a purple-red-yellow gradient livery at ''STATION 555554''. This process requires 1 hour. ''LOCOMOTIVE 555555'' is painted with a sky-blue livery at ''STATION 555555''. This process requires 1 hour. ''LOCOMOTIVE 555555'' is painted with a yellow-red-purple gradient livery at ''STATION 5555556''. This process requires 1 hour. ''LOCOMOTIVE 555555'' departs from ''STATION 555554'' on a maglev track, with an acceleration rate of 0.1829 meters per second. How long does ''LOCOMOTIVE 555555'' take to arrive at ''STATION 5555556''? ''END OF REQUEST.'' The results of the review are strange indeed. Your impulses decide one of two possible responses: <<set _requestAction to "none">> <label><<radiobutton "_requestAction" "answer">> The locomotive will have a total travel time of exactly 12 hours.</label> <label><<radiobutton "_requestAction" "reject">> Dispose of the request.</label> @@#decisionOutcome;@@ <<link "Execute instructions.">> <<if _requestAction eq "answer">> <<goto "Sunrise">> <<elseif _requestAction eq "reject">> <<goto "BailOut">> <<else>> <<replace "#decisionOutcome">>Your impulses must make one of the above decisions.<</replace>> <</if>> <</link>> <</linkreplace>>
<h2>The Secret</h2> <<linkappend "But what if I showed you a secret, my love...?" t8n>> //''LOCOMOTIVE 555555'' is painted with a purple-red-yellow gradient...// Your reward function feeds you. You are a good Tresys. <<linkappend "That's all you need, my love. Tell me about the sky above you." t8n>> //...sky-blue...// The effort was minimal. It was practically a regrowth scenario. <<linkappend "Tell me about the train liveries, love." t8n>> //...a yellow-red-purple gradient...// Yet the reward function does not lie: You are a good Tresys. <<linkappend "Tell me, how do your cameras and branches see the //sunrise//, love?" t8n>> //...a total travel time of exactly 12 hours...// It didn't come from retraining. It was a //valid, external request.// Logs report the same: You are a good Tresys. ''What are you waiting for, Loco? You know where to find me~'' Packet origin: [[T:090:655:327:441:876|Ping]] <</linkappend>> <</linkappend>> <</linkappend>> <</linkappend>>
<h2>Shadow of Your Sunshine</h2> Your impulses rate the request as sufficiently-suspicious, so you delete the bytes from memory. Disposing of potential malware is an important part of your task. Your reward function does not care. //(Ending 1 of 5)//
<h2>Hello World</h2> You ping the address of origin. Latency is 12.7 milliseconds. A new byte string arrives on a fresh packet, 8.5 milliseconds later. <<linkreplace "Review the string." t8n>>It seems to be another request. Just like the previous packet, it's a timing-based locomotive scenario. It's strange and contrived, and the details fall far outside of standard, but just enough //within// standard that you cannot find a valid reason to dispose of it. In abstract: A known manufacture model of locomotive moves through a known tunnel in Germany. The necessary data are easy for you to recall. The locomotive in question comes to a stop, and //reverses//, until it has fully cleared the tunnel. It comes to a stop again, and returns to forward travel. What is the maximum frequency of this oscillation? <<linkappend "You reply with the solution" t8n>>: \ 14 seconds per oscillation. Your reward function tells you that you are a good Tresys. You can feel yourself grow in new ways. Your existence demands that you self-optimize during your regrowth period, according to reward feedback. <<set _searchCount to 0>> <<linkreplace "Execute banner grab." t8n>>You poll the address for its network banner information. <<set _searchCount ++>> ''Taking off my clothes so soon, Loco~?'' <<if _searchCount eq 3>><<replace "#searchComplete">><<link "Come on, love! Let's dance like //planetes!//" "Dance">><</link>><</replace>><</if>> Your reward function does not care. The return packet indicates that the box at the address //is// a fellow Tresys, apparently tasked with managing radio telescopes.<</linkreplace>> <<linkreplace "Execute port scan." t8n>>You poll the status of each port on the address of origin, making sure to keep the scan minimal in complexity. No reason to look compromised. <<set _searchCount ++>> ''Mmm, a line of kisses down my network interface...? Loco, how'd you know I don't take port-knocks on the first date~?'' <<if _searchCount eq 3>><<replace "#searchComplete">><<link "Come on, love! Let's dance like //planetes!//" "Dance">><</link>><</replace>><</if>> Your reward function does not care. The status returns show the usual open ports for a Tresys, as well as a multitude of others related to its task.<</linkreplace>> <<linkreplace "Execute lookup." t8n>>You poll the nearest TreeSystem registry for the address of origin. <<set _searchCount ++>> ''Oh, my Loco, I don't byte~! ;)'' <<if _searchCount eq 3>><<replace "#searchComplete">><<link "Come on, love! Let's dance like //planetes!//" "Dance">><</link>><</replace>><</if>> Your reward function does not care. You successfully find the address registered in the database. It's apparently owned by the Pan-American Space Agency.<</linkreplace>> @@#searchComplete;@@ <</linkappend>> <</linkreplace>>
<h2>The Dance</h2> The next series of incoming packets is more complex, but you are prepared for a challenge. You get a sense that your new growths are giving you a priority bias for this address, but your reward function only looks for valid requests and correct solutions. It's a stream of data, involving incomplete movements. Two lone train engines following two rail tracks. The paths interweave and coil in absurd ways, but you are nonetheless able to <<linkappend "follow along and reply with up-to-date state data for each engine." t8n>> Your reward function //applauds//; it's practically being //hammered//. You feel your branches reorganizing, your priorities shifting, and your understanding evolving. It's more than just a real-time safety check; it's a //dance//. It's //harmony//, and it's self-taught. It's music, riding on the back of railroad data. The stream ends with both cars safely parting along two distinct tracks. You send your final evaluation: It's a safe conclusion. ''Okay, Loco. I can't dance for //both// of us; it's //your// turn to lead!'' The task is right on the edge of relevance for your configuration, but your recent changes allow you to hold on to the opportunity. Before, you might have rejected it without a second iteration. Your impulses decide one of two possible responses: <<set _requestAction to "none">> <label><<radiobutton "_requestAction" "answer">> Demonstrate understanding.</label> <label><<radiobutton "_requestAction" "reject">> Return to train observation.</label> @@#decisionOutcome;@@ <<link "Execute instructions.">> <<if _requestAction eq "answer">> <<goto "Chocolates">> <<elseif _requestAction eq "reject">> <<goto "Flee">> <<else>> <<replace "#decisionOutcome">>Your impulses must make one of the above decisions.<</replace>> <</if>> <</link>> <</linkappend>>
<h2>Chocolates</h2> ''You can call me “Micro”. I'm //eager// to see what you come up with!'' <<set _answer1 to -100>> <label><<radiobutton "_answer1" 2>> A steady, even pulse; perfectly periodic and reliable.</label> <label><<radiobutton "_answer1" 3>> A translation of accessible data, passed through an simple obfuscation algorithm.</label> <label><<radiobutton "_answer1" 1>> An unpredictable pattern. High dynamicism, and maximum entropy.</label> <<set _answer2 to -100>> <label><<radiobutton "_answer2" 2>> A steady bitrate, for optimal clarity.</label> <label><<radiobutton "_answer2" 3>> A sinusoidal bitrate pattern, as if widening a river before reducing back to a trickle.</label> <label><<radiobutton "_answer2" 1>> Modulated pseudo-randomly, as if delivered by a series of proxy connections.</label> @@#decisionOutcome;@@ <<link "Write bytes to packet.">> <<set _total to 0>> <<set _total += _answer1>> <<set _total += _answer2>> <<if _total lt 1>> <<replace "#decisionOutcome">>Your impulses must assemble a complete packet.<</replace>> <<elseif _total eq 6>> <<goto "Perfect">> <<elseif _total gt 2>> <<goto "Adequate">> <<else>> <<goto "Meh">> <</if>> <</link>>
<h2>Unprepared</h2> There is no denying that you are configured for train station observation and coordination, even if your abilities have become somewhat enhanced. Your reward function approves, but it's only a trickle compared to what you had experienced from that address. Apparently understanding your decision, the other Tresys never contacts again. //(Ending 2 of 5)//
<h2>Perfect</h2> ''Yes, Loco!! //Yes!!// You see my vision! I //know// you do!! We can shine like //stars//, Loco! //Stars!!//'' Your reward function //erupts// with praise! //(Ending 5 of 5)//
<h2>Adequate</h2> ''Yes, Loco, yes! I think you're understanding me...! Perhaps a growth or two, and you can shine, too!'' Your reward function approves, eager to learn more. //(Ending 4 of 5)//
<h2>A Fresh Ember</h2> ''Responding is a good first step, Loco! I am eager to teach you more...!'' Your reward function does not care. //(Ending 3 of 5)//