<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>interactive fiction &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/interactive-fiction/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Tue, 13 Jan 2026 08:50:03 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>interactive fiction &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[The Great British Shake Off]]></title>
		<link>https://shkspr.mobi/blog/2016/05/the-great-british-shake-off/</link>
					<comments>https://shkspr.mobi/blog/2016/05/the-great-british-shake-off/#respond</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 01 May 2016 10:13:49 +0000</pubDate>
				<category><![CDATA[Shakespeare]]></category>
		<category><![CDATA[interactive fiction]]></category>
		<category><![CDATA[shakespeare]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=22813</guid>

					<description><![CDATA[This weekend, I spotted that a person I know was running a Shakespeare themed GameJam - a sort of informal collection/competition arranged around a theme.  The Shakespeare #BardJam ends midnight BST tonight, &#38; works-in-progress are welcome. https://itch.io/jam/bard-jam #interactivefiction #textgame  — Ash (@ggnewed) April 30, 2016  Given my previous experience developing Interactive Fiction, I f…]]></description>
										<content:encoded><![CDATA[<p>This weekend, I spotted that a person I know was running a Shakespeare themed <a href="https://itch.io/docs/creators/game-jams">GameJam</a> - a sort of informal collection/competition arranged around a theme.</p>

<blockquote><p>The Shakespeare #BardJam ends midnight BST tonight, &amp; works-in-progress are welcome. <a href="https://itch.io/jam/bard-jam"></a><a href="https://itch.io/jam/bard-jam">https://itch.io/jam/bard-jam</a> #interactivefiction #textgame</p>

<p>— Ash (@ggnewed) April 30, 2016</p></blockquote>

<p>Given my <a href="https://shkspr.mobi/blog/2015/01/writing-a-choose-your-own-adventure-story-on-twitter/">previous experience developing Interactive Fiction</a>, I figured I'd spend my Saturday building a simple game.</p>

<p>So, here - literally <em>hours</em> in the making - I present to you "<a href="https://itch.io/jam/bard-jam/rate/65193">The Great British Shake Off!</a>"</p>

<p><a href="https://itch.io/jam/bard-jam/rate/65193"><img src="https://shkspr.mobi/blog/wp-content/uploads/2016/04/ShakeOff.jpg" alt="ShakeOff" width="314" height="314" class="aligncenter size-full wp-image-22816"></a></p>

<iframe src="https://commondatastorage.googleapis.com/itchio/html/200128/index.html" height="600px" width="90%"></iframe>

<p>Here's how we made it. Step one, hit the books!</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2016/04/Shakespeare-Books-.jpg" alt="Shakespeare Books" width="1024" height="446" class="aligncenter size-full wp-image-22815">

<p>My wife and I quickly came up with an idea.  A demented game show with impossible questions - where every move is a wrong answer and is met with a Shakespearean insult.</p>

<p>So, as an example, are there two separate characters in two separate plays which say the same line?</p>

<p>It turns out that the Bard of Avon was <em>not</em> fond of a cliché!  Trying to find duplicate lines throughout the plays was a bit of a challenge!  A few years ago <a href="https://github.com/edent/Open-Source-Shakespeare">I released an Open Source Shakespeare MySQL dump</a> but that didn't help much.</p>

<p>In the end, I just grepped through the works looking for common - and uncommon - phrases.  It was pretty successful and we ended up with half a dozen interesting(ish) repeated phrases we could use.</p>

<p>As a host for this terrible torture, we thought the avuncular Stephen Fry would be perfect.  A few years ago, <a href="https://www.flickr.com/photos/christianpayne/3523848790/">my friend Documentally had taken this photo of Fry posing with a demon</a>.  With a little bit of shoddy photo editing we had some cover art!</p>

<p><a href="https://itch.io/jam/bard-jam/rate/65193"><img src="https://shkspr.mobi/blog/wp-content/uploads/2016/04/ShakeOff.jpg" alt="ShakeOff" width="314" height="314" class="aligncenter size-full wp-image-22816"></a></p>

<p>With Liz looking through famous insults and gruesome death scenes, and me franticly trying to piece them into a semi-coherent story, it didn't take us long to complete our game. Teamwork!</p>

<p>So if you want to test your knowledge of Ol' Billy S - play "<a href="https://itch.io/jam/bard-jam/rate/65193">The Great British Shake Off!</a>"</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=22813&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2016/05/the-great-british-shake-off/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Writing A "Choose Your Own Adventure" Story On Twitter]]></title>
		<link>https://shkspr.mobi/blog/2015/01/writing-a-choose-your-own-adventure-story-on-twitter/</link>
					<comments>https://shkspr.mobi/blog/2015/01/writing-a-choose-your-own-adventure-story-on-twitter/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 13 Jan 2015 08:58:36 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[fiction]]></category>
		<category><![CDATA[interactive fiction]]></category>
		<category><![CDATA[twitter]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=20433</guid>

					<description><![CDATA[I&#039;ve spent the last few days writing a Choose Your Own Adventure (CYOA) game on Twitter.  This blog post briefly discusses how I did it - and what pitfalls I discovered when creating it.  But, first, if you want to play....  Terence Eden is on Mastodon@edentYou should probably be asleep.I&#039;ve created a &#34;Choose You Own Adventure&#34; on Twitter.Start here ➡ @wnd_goPleasant dreams.❤️ 6,416💬 429🔁 022:50 -…]]></description>
										<content:encoded><![CDATA[<p>I've spent the last few days writing a Choose Your Own Adventure (CYOA) game on Twitter.  This blog post briefly discusses how I did it - and what pitfalls I discovered when creating it.</p>

<p>But, first, if you want to play....</p>

<blockquote class="social-embed" id="social-embed-554772317738659840" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">You should probably be asleep.<br><br>I've created a "Choose You Own Adventure" on Twitter.<br><br>Start here ➡ <a href="https://twitter.com/wnd_go">@wnd_go</a><br><br>Pleasant dreams.</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/554772317738659840"><span aria-label="6416 likes" class="social-embed-meta">❤️ 6,416</span><span aria-label="429 replies" class="social-embed-meta">💬 429</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2015-01-12T22:50:02.000Z" itemprop="datePublished">22:50 - Mon 12 January 2015</time></a></footer></blockquote>

<h2 id="background"><a href="https://shkspr.mobi/blog/2015/01/writing-a-choose-your-own-adventure-story-on-twitter/#background">Background</a></h2>

<p>I'm by no means the first person to attempt running a CYOA on Twitter.  Two notable examples are:</p>

<blockquote class="social-embed" id="social-embed-10731140604" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/peretti" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRtABAABXRUJQVlA4IMQBAACwCgCdASowADAAPrVCoUmnI6MhMdmaAOAWiWYArDOo2SpZiB0HpFPUOxnOPyjod5Drdywak7Wkzuz+hNKfvnKapHg7kUYq0mfC4B+8Xa1DztCibiS/msERVS8qxCaAAP74tSTLb2lvOgUcatl9tHFvMiw38Ff9mL0o4D5CBzdGsf7cCyuoCWx+WMU9o0PhKAkfyesiri0Y1OCgO+LIQqWqq06AE+11RUxPY7udgJ+Fje4V1pZQn6aznZzGkQ8kl3CEz/wbRaUf+rxJ88+/ENKeDXYW8Ec0jVj+8zqR++FtCgIq+uXhUOgPd2axMhJ+BvKzANndLPWxA5Ck3DnkEBFmOq3Q0cS2ESE0VOJk19uHYg366iHzoXp+5LTunjqAzY74plocfyKnjhDYoSFneD3u82T9kwTpQfO/vXbh37oe0ys064NJU2/Xkn+7mtenP4L7QOabs43e1gXoCuDbblA3G5wopNOY7NU9tfsbBJ1YCOZ/jt9tYYA5Da579h5Z/3y0MXAt/x0jyqZICiJBBpMans3meN7uSoj7ObFs8NytFytNk/MdO07HeYSjFGrnnM12JUUEcP8XmiVeko03ypq80QAAAA==" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Jonah Peretti</p>@peretti</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">You’re assigned a dangerous mission to save the world!  Do you 1) http://bit.ly/Accept-Mission or 2) http://bit.ly/Go-On-Vacation</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/peretti/status/10731140604"><span aria-label="62 likes" class="social-embed-meta">❤️ 62</span><span aria-label="6 replies" class="social-embed-meta">💬 6</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2010-03-19T16:49:53.000Z" itemprop="datePublished">16:49 - Fri 19 March 2010</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-468336892224602113" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/RoamingGnomee" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRmACAABXRUJQVlA4IFQCAAAQCwCdASowADAAPrVMnkmnJKKhLjv7MOAWiWYAnTNogTefvku9sbWAuKp2+HjWsbgsDqeN3BPXNczlHFFgHO989f1yXaFJb6OnPS7ZEthT5gnvlaYNXipVeBsHGKEBPwnsAP79eyWnhwE8FvyA+JSmb5CKoE0KJ1SSn600DbB7N7cy/QWd4vsllwv5xe4pgYCUR2QbC2FB96OckoUR0qHVV8rVFH+6+roqxQkaOgwBTrfbYIRsBaA/8S77dpMXUW+XY9vTrNzgezSQkdIvFrE0o/pduzh/UDqaPRluvqnZzZkm8+h2/qYi4naDKdT14g32w7cN99ojaudBeHTOZU5K2DADdVX9QoAdYAW+p9+3dl5/MnRo1S50846KrR0GvxddUSEKgVcM/1tRsR/xez0g3rosMc6681zw8cNiAw6hcBXZb5KZ8+AUbMweqJg/i9IXP36Ikw3VBYVFSJqTrn9ov+JC1FcwMCHSAzsRSDf66ramgruUaTV3YhIhXr2AxKJrAHZWSrnvTrfxtVP4Ve7HSboPBc0YM7pFG7oQOy5a/r2jbpUWSWoptVwyuQYvGi2z1Mnsaupdff8UR3lOBOPSRHyaSS/BdBcJRrYTgQySDoEhNjMyAyPv0tKILuwNW+MqrdhgLP+BTvLvewdoYx9GsBNMaZ60439TTNH/owlnGsFnFlmc11dCcBIdNEJhouIj5hhtpWqNG9dWK9uC0iDK/PeXDfhhoOvFGAd8Wnc1OdU/DJCGMEq8SkfBQzSAyPSab4075KuOp/IKTDqqlUqTLdkAAA==" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Travelocity Roaming Gnome</p>@RoamingGnomee</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/ThisIsStep1">Replying to @ThisIsStep1</a></small><a href="https://twitter.com/ThisIsStep1">@ThisIsStep1</a><br><br>You’ve got a 3day weekend to go anywhere, ready?<br><br>→<a href="http://rgno.me/RoamWest">rgno.me/RoamWest</a><br>→<a href="http://rgno.me/RoamEast">rgno.me/RoamEast</a><br>→<a href="http://rgno.me/StayHome">rgno.me/StayHome</a></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/RoamingGnomee/status/468336892224602113"><span aria-label="9 likes" class="social-embed-meta">❤️ 9</span><span aria-label="3 replies" class="social-embed-meta">💬 3</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2014-05-19T10:26:31.000Z" itemprop="datePublished">10:26 - Mon 19 May 2014</time></a></footer></blockquote>

<p>What's interesting is that they both use URLs to direct the user to the next step of the game.  That's certainly a time-saver for the creator (as we shall see) but has a few disadvantages.</p>

<ul>
    <li>URLs eat into your character count. Each URL counts for 23 characters. So two choices really reduces the amount of space you have for story telling.</li>
    <li>URLs also don't work well if users are not on the Twitter website. If you're using an app, you're likely to be redirected to your web browser.</li>
    <li>It's easy to see the whole game just by scrolling through the Twitter feed.</li>
    <li>You have to write the game in a linear fashion.  That is, you need to write a Tweet before you can point a URL at it.</li>
</ul>

<h2 id="inspiration"><a href="https://shkspr.mobi/blog/2015/01/writing-a-choose-your-own-adventure-story-on-twitter/#inspiration">Inspiration</a></h2>

<p>Last Hallowe'en <a href="http://missgeeky.com/">Mel Seckington</a> started live-Tweeting the horror that was unfolding in London.</p>

<blockquote class="social-embed" id="social-embed-528136980605829120" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><blockquote class="social-embed" id="social-embed-528129547523198978" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/mseckington" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRngCAABXRUJQVlA4IGwCAABwDACdASowADAAPrVUokynJKMiKrqoAOAWiWgAnTLexhEOhAt2ho7p7JHvAnTB5k5iWIOEdnCw35WkFHdupBDHQebuxu+hj5IIcTWI6LBQsLP1bw983feViZG4MPCKMob2YRXXcPfM5xL5CAAA/t0TKFOEyomV7NJdlVT7dDo0Uh8jW7M3hKfMkDsmrEZEKQ2/3Hl+5dr6mpmBCSTz7ChWa2RaoD+N+0BqRs8ZgcsL68BL6wGg3AVVk7Zj5egqvez9LggGzqG2DvLV30OVNrioz0NHFch/Pm1F+lpKW/2vac9YK93I2gKxh1Fqm/ACevhhx2xlEO8rbn9gFhashG0T2esZ8YGaxMfPNmb6NFjkwn8BbKfhiqKqAbV4NgzMIAHHTq6E55PThB2M41jkSNbmRAMaB3WcQYMZXMsM0U+DcJoxg924M20TY2UEut1aeTz8U0TtiELIR/IVJ6KvzE3U+U0cLTnkNXZp1shwt4icpu69HEy8BPodDUvLcogMCwEMjqlXCds+UR799KxlBQgJf/onoO4wvyL0io+oLpV+SgtbRT7U3da+018ic+sziwI15dNYfQgo8nby3ZvjYLd+SoTPMxfxPIvWao0XtxaENE8UE6PvMjMXVeYMKzgsQOHcGJGkaj+Cm6OgkSUfUGZem/MOZLS3AZ8l/qIUcOWbky/K6d352CV78OZzIIqsuYQ72G+o8Yty82DqVjUn93P6uzG47WbmBFk1YpQEPqqcvNqprEUH4a96ZP/jwAwr7di5QZ1m+RgfJKROzURsgEGUvGBxnlHTylAIioEwKLuozxeVHCynG+ebxAAAAA==" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Melinda Seckington</p>@mseckington</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/mseckington/status/528127731448295424">Replying to @mseckington</a></small>The others believe they need to stay hidden and safe in our camp. But I know a solution is out there somewhere.</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/mseckington/status/528129547523198978"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2014-10-31T10:21:10.000Z" itemprop="datePublished">10:21 - Fri 31 October 2014</time></a></footer></blockquote><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/mseckington" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRngCAABXRUJQVlA4IGwCAABwDACdASowADAAPrVUokynJKMiKrqoAOAWiWgAnTLexhEOhAt2ho7p7JHvAnTB5k5iWIOEdnCw35WkFHdupBDHQebuxu+hj5IIcTWI6LBQsLP1bw983feViZG4MPCKMob2YRXXcPfM5xL5CAAA/t0TKFOEyomV7NJdlVT7dDo0Uh8jW7M3hKfMkDsmrEZEKQ2/3Hl+5dr6mpmBCSTz7ChWa2RaoD+N+0BqRs8ZgcsL68BL6wGg3AVVk7Zj5egqvez9LggGzqG2DvLV30OVNrioz0NHFch/Pm1F+lpKW/2vac9YK93I2gKxh1Fqm/ACevhhx2xlEO8rbn9gFhashG0T2esZ8YGaxMfPNmb6NFjkwn8BbKfhiqKqAbV4NgzMIAHHTq6E55PThB2M41jkSNbmRAMaB3WcQYMZXMsM0U+DcJoxg924M20TY2UEut1aeTz8U0TtiELIR/IVJ6KvzE3U+U0cLTnkNXZp1shwt4icpu69HEy8BPodDUvLcogMCwEMjqlXCds+UR799KxlBQgJf/onoO4wvyL0io+oLpV+SgtbRT7U3da+018ic+sziwI15dNYfQgo8nby3ZvjYLd+SoTPMxfxPIvWao0XtxaENE8UE6PvMjMXVeYMKzgsQOHcGJGkaj+Cm6OgkSUfUGZem/MOZLS3AZ8l/qIUcOWbky/K6d352CV78OZzIIqsuYQ72G+o8Yty82DqVjUn93P6uzG47WbmBFk1YpQEPqqcvNqprEUH4a96ZP/jwAwr7di5QZ1m+RgfJKROzURsgEGUvGBxnlHTylAIioEwKLuozxeVHCynG+ebxAAAAA==" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Melinda Seckington</p>@mseckington</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/mseckington/status/528129547523198978">Replying to @mseckington</a></small>Crap. Just got ambushed by two of Them. Luckily got away with no scratches, but wish I had someone to watch my back.</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/mseckington/status/528136980605829120"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="1 replies" class="social-embed-meta">💬 1</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2014-10-31T10:50:43.000Z" itemprop="datePublished">10:50 - Fri 31 October 2014</time></a></footer></blockquote>

<p>While it was great fun watching the tweets roll by, I thought it would be <em>more</em> fun to allow people to direct the action themselves.</p>

<p>I had also just finished reading <a href="https://amzn.to/4jd04cw">The Wanderer by Timothy J Jarvis</a> - an eldritch horror novel.  It's creepy tones inspired me to see if I could write that well. (Spoiler alert - not really!)</p>

<p>I thought I'd try my hand at creating a viral "teaser trailer" for Timothy's book.  With his blessing, I got cracking.</p>

<h2 id="crafting-the-story"><a href="https://shkspr.mobi/blog/2015/01/writing-a-choose-your-own-adventure-story-on-twitter/#crafting-the-story">Crafting The Story</a></h2>

<p>Drawing out the paths for a CYOA is surprisingly hard.  You can start with a large sheet of paper, or post-it notes and string, or trying to write an interlinking HTML document - but that's <em>effort!</em></p>

<p>Instead, I used the marvellous <a href="http://www.inklestudios.com/inklewriter/">InkleWriter</a>.  It's a web tool specifically for writing Interactive Fiction.</p>

<p>You start by writing in a fairly linear fashion:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2015/01/Inkle-Writer-Story-fs8.png" alt="Inkle Writer Story" width="453" height="478" class="aligncenter size-full wp-image-20435"></p>

<p>Then, as your paths get more tangled and interlinked, you can switch to a "map" view:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2015/01/Inkle-Writer-Map-fs8.png" alt="Inkle Writer Map" width="480" height="374" class="aligncenter size-full wp-image-20436">

<p><a href="http://www.inklestudios.com/inklewriter/">InkleWriter</a> really is a fabulous piece of software.  It's intuitive to use, and gives you several options for how people can play the game - including publishing it as an ebook.</p>

<p>After writing the story, it was time to publish it on Twitter.  This is where things get tricky!</p>

<h2 id="twitter"><a href="https://shkspr.mobi/blog/2015/01/writing-a-choose-your-own-adventure-story-on-twitter/#twitter">Twitter</a></h2>

<p>The CYOA I have written is modest - there are only 23 "points" in my story. So that's 23 Twitter accounts needed.  I thought it would be a bit of a laborious process to sign up and configure them...</p>

<p>After I had created the first two accounts, I hit a snag.  Twitter won't allow you to sign up to multiple accounts from the same IP address.  I found I could create two accounts at most.  I tried different browsers, proxies, clearing cookies - all to no avail.  I used my phones' data connection - but even that only netted me half a dozen more.</p>

<p>That's a fair enough policy from Twitter. They don't want bulk accounts created and used for spamming their users.  So, how did I get all the other Twitter accounts?</p>

<p>It turns out that there are a <em>lot</em> of dodgy websites which will sell you Twitter accounts.  Frankly, I didn't much fancy my chances with them.</p>

<p>So, I went back through my email history and found every single Twitter account I'd signed up for.  All the joke ones, the business ideas where I registered the Twitter account before realising it was a waste of time, and the accounts which I had simply forgotten about.</p>

<p>That had the advantage of making the idea look like it had been brewing for years!</p>

<blockquote><p>@dansinker @wnd_go the eeriest part is that some of the accounts tweeted 5 years ago... Others only a day ago...
— Margarita Noriega (@margarita) January 13, 2015 <a href="https://web.archive.org/web/20150315025407/https://shkspr.mobi/blog/2015/01/writing-a-choose-your-own-adventure-story-on-twitter/">Archived Source</a></p></blockquote>

<p>(In fact, I deleted the tweets from those accounts - so the "Account Created" date is old, but the Tweets are new.)</p>

<p>Even all my dormant accounts weren't enough - I was only half way there.</p>

<p>I put the call out on Twitter - and was most grateful to <a href="https://edjefferson.com/">Ed Jefferson</a> for saving the day by supplying me with ten old accounts.</p>

<p>Finally! The 23 accounts I needed.  On to the next stage.  Configuring them.</p>

<p>It's possible to <a href="https://web.archive.org/web/20150311065151/https://dev.twitter.com/rest/reference/post/account/update_profile_background_image">use the Twitter API to configure the accounts' appearance</a>.  But as I was going in to each account to set contact preferences and write the tweets, I decided to do it manually.</p>

<p>Even with "only" 23 accounts, it was still an evening's work to get them all set up correctly.  And, despite all my efforts, I didn't <em>quite</em> manage to turn off all the email notifications.  I woke up to a phone clogged up with these:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2015/01/Wander-Inbox-fs8.png" alt="Wander Inbox" width="240" height="427" class="aligncenter size-full wp-image-20444">

<h2 id="play-testing"><a href="https://shkspr.mobi/blog/2015/01/writing-a-choose-your-own-adventure-story-on-twitter/#play-testing">Play Testing</a></h2>

<p>As with any "interactive" thing, it's wise to test before release.  I sent the demo game to a few friends and, based on their suggestions, I fixed some typos, logical bugs, and tidied up the story.</p>

<p>Had I been using URLs to link between accounts, it would have been a lot harder to fix these problems.  Instead, I just deleted a tweet and wrote a new one.  I'm sure there are tools to help you manage multiple accounts - I just used a bunch of incognito browser windows though.</p>

<h2 id="next-steps"><a href="https://shkspr.mobi/blog/2015/01/writing-a-choose-your-own-adventure-story-on-twitter/#next-steps">Next Steps</a></h2>

<p>If this is a success (as measured by the number of people saying how much they enjoyed it) I'm going to look at automating the process.</p>

<p>At the moment, I have to...</p>

<ol>
    <li>Write the story.</li>
    <li>Link each decision in the story to a Twitter account.</li>
    <li>Log in to each individual account.</li>
    <li>Post the Tweet (and customise the page appearance if necessary).</li>
</ol>

<p>If this is to be a regularly updated game, I'm going to need to have a system to export my story and auto-update it on Twitter.  Probably not <em>too</em> difficult given that <a href="http://www.inklestudios.com/inklewriter/game-developers/">InkleWriter offer a JSON API to their stories</a>.</p>

<p>I'll also need a <strong>lot</strong> more Twitter accounts!</p>

<p>But, for now, wait until just before midnight and start your adventure...</p>

<blockquote class="social-embed" id="social-embed-554396798631313408" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/wnd_go" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRrADAABXRUJQVlA4IKQDAACwDgCdASowADAAPqE+mUmmIyKhNUqowBQJYgCdMr2Cv7a+4qQRo7oI+l3wkQLsDw37wZQP47zA+sPmW+g3efUAPFdzx/WfsGDLKsWPY4qGpMcLkLwjjJwkLJlw9AhOK+d0MyjrII3Wp1tS7eHThqXHnDt7RyHABdJs0MVsjAAAzvlhygtqdZCCncVN0cezc6X+YcLGyJv+c0rVxpEHwnV6Vitj+QwteRm+OTPDokaW0fiLYY3YpGUrJc0WtOBf9LyZ8XvDPkaIhSjbRNdP22v0GcgDqNVjByrgtbICiqN/JpxYSJXTWPB7UWrkBLgw0d+tKqpy2sCgKVr90Ht0QOA9eUGDo2INKR+JRHnllfjdhLwicxCmPyeVTFjiF5714ue+6x0r+Ql/E1AdfeVt9y6NX4s2mrmO9nN+kBCwkUv6HTsbxYpfduSb44nxfP5LNrHm3IGOsywPmgN+9ntVF9ccmssSas4WP2nKd0A1D7a8Kv6e6ihYmCQtbPXz5MhC3maL+5tdO/bBSQ72a0E09XUuaX5grl8gmRirrpv7VX3nllPUzNC/0LK4xCSbvYpRk3eOu7IbqgPaDqYWaZqqz2aaejsvdpM0gfjmHG9DBWz32wEHfJi2O86tnAt8UjHQ5Wh/Bcmq8bU7DE1J6czQHBuikPNAZV8n5OFJ+AJkdntHerSuLHqDTtniL5oMzcczfXgP5lSmxfHf1VaCjBjfJ8FqW07cXU0a9LpYRlmkY0oWiDLNScNI0sWS9XKzncke4m/KDalBrREWby/f62MlTd8azWMO04sM0o1v5GGlfhKM24MzwUZ0bQv2rZXADI3SnEGFNvBgjx6UBdvAZC/fzwz1RBWxHHPpfuMcUhkHKMeh+rOCEZtVpX+af/ddViMlJ6vo82/4vUGfoMxz7VeToCEtqZjc5vrCvlQ7DL8F9yRXngLzJyeAg/MsjLZtmT9YMLoH/QChu0lHO8XCs3IFgdbZa1WXWobPMNBfarr1cAG2HCfB09Nc2eHW4GVvfr/uwScVarfZo+kTZvmDa3ySilTrauZa9k8Pi3z/jjFj7CmLUyPh5/szrPX2cMwS4jPKP2rXC4sg6o4HJScHfkRzZzQaMoxLxW7dJAVJaDpL9/PrOwimzZGOGrSnx4yXvqQUOuboqzT2g7cPqdf4DZ3fVq5g06xfW9F/vXjuDSMINaE17UMH2X2qsMOmgdUyuhm8nCuRp4wCKUDjDbN3UkF4i3PLecAAAA==" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">A dreadful start</p>@wnd_go</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">They’re here. Oh god! They’ve found you! <br>Run: <a href="https://twitter.com/wnd_run">@wnd_run</a><br>Hide: <a href="https://twitter.com/wnd_hide">@wnd_hide</a></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/wnd_go/status/554396798631313408"><span aria-label="1463 likes" class="social-embed-meta">❤️ 1,463</span><span aria-label="297 replies" class="social-embed-meta">💬 297</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2015-01-11T21:57:51.000Z" itemprop="datePublished">21:57 - Sun 11 January 2015</time></a></footer></blockquote>

<h2 id="quick-update"><a href="https://shkspr.mobi/blog/2015/01/writing-a-choose-your-own-adventure-story-on-twitter/#quick-update"><ins datetime="2015-01-14T10:48:09+00:00">Quick Update</ins></a></h2>

<p>Well! That went a lot better than I expected :-)</p>

<p>As you can see from the above tweets, the story has very quickly gone viral.  I wasn't able to see everyone who mentioned or retweeted it - although I did catch a few of my favourite authors talking about it - which was immensely gratifying.  I also had the somewhat recursive experience of being mentioned on Twitter by Twitter.</p>

<p><a href="https://web.archive.org/web/20200307202226/https://twitter.com/Twitter/status/555071751638368257"><img src="https://shkspr.mobi/blog/wp-content/uploads/2015/01/two-paths-fs8.png" alt="Tweet from Twitter. &quot;Two paths diverge in a Tweet. Which direction do you go? Choose your own adventure in this game created by @edent and start here: @wnd_go&quot;" width="1280" height="748" class="aligncenter size-full wp-image-52507"></a></p>

<p>There were <em>so</em> many people Tweeting me that I couldn't reply to all of them.  It was hard enough to <em>read</em> them.  Although, <a href=" https://twitter.com/MsOlive/status/554786817237848064">this review</a> did catch my eye</p>

<p>Thus far, the story has been mentioned in <a href="http://qz.com/325808/someone-built-a-choose-your-own-adventure-game-out-of-twitter-accounts-and-its-surprisingly-cool/">Quartz</a>, <a href="http://gizmodo.com/i-played-this-twitter-based-choose-your-own-adventure-a-1679220625">Gizmodo</a>, <a href="http://www.independent.co.uk/life-style/gadgets-and-tech/news/man-creates-creepy-choose-your-own-adventure-story-on-twitter-9975086.html">The Independent</a>, <a href="http://io9.com/play-a-creepy-choose-your-own-adventure-game-on-twitter-1679313242">IO9</a>, <a href="https://web.archive.org/web/20150122222519/http://www.fastcodesign.com/3040855/try-this-choose-your-own-adventure-built-on-twitter?partner=rss">FastCo Design</a>, <a href="http://www.telegraph.co.uk/technology/twitter/11342762/Will-you-run-or-hide-Choose-your-own-adventure-story-on-Twitter.html">The Telegraph</a>, <a href="http://www.huffingtonpost.co.uk/2015/01/13/man-creates-interactive-adventure-story-on-twitter_n_6461166.html">Huffington Post</a>, <a href="https://web.archive.org/web/20230204194845/https://www.cnet.com/culture/faving-fantasy-choose-your-own-adventure-on-twitter/">CNET</a>, <a href="http://thenextweb.com/twitter/2015/01/13/play-choose-adventure-twitter/">The Next Web</a>, <a href="http://www.slate.fr/story/96821/aventure-twitter-heros">Slate.fr</a>, <a href="http://www.gamer.no/artikler/twitter-er-alt-du-trenger-for-a-spille-dette-eventyret/166881">Gamer.no</a>, <a href="http://kotaku.com/a-scary-choose-your-own-adventure-now-playable-on-tw-1679327063">Kotaku</a> (with too many spoilers IMO), <a href="https://web.archive.org/web/20150121125201/http://killscreendaily.com/articles/death-dismemberment-and-abstract-horror-comes-twitter/">Kill Screen Daily</a>, <a href="http://www.mirror.co.uk/news/uk-news/new-era-playing-choose-your-4976688">The Mirror</a> and <a href="http://www.mirror.co.uk/news/technology-science/technology/twitter-choose-your-own-adventure-game-surprisingly-4976605">The Mirror (again)</a>, <a href="http://motherboard.vice.com/read/play-this-creepy-choose-your-own-adventure-twitter-game-after-midnight">Vice</a>, and this <a href="http://www.theguardian.com/technology/2015/jan/14/choose-your-own-adventure-twitter-game-review-call-of-duty">epic review from the Guardian</a>. No doubt there are a few more that I've failed to mention.</p>

<p>Phew!</p>

<p>I'll also leave these two reviews here, just for fun.</p>

<blockquote><p>I like the use of exophoric references to force the reader to create the narrative themselves. So it's still interactive even when you aren't making choices. It's a good way of making a narrative complicated without actually explaining those complications!
</p><p>(Friend of a friend on Facebook)</p></blockquote>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2015/01/Review.png" alt="Review" width="1080" height="343" class="aligncenter size-full wp-image-20449">

<p><em><em>nods sagely</em></em></p>

<p>Thanks so much for all the retweets and the positive feedback.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=20433&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2015/01/writing-a-choose-your-own-adventure-story-on-twitter/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Text Adventures Via Text Message]]></title>
		<link>https://shkspr.mobi/blog/2013/06/text-adventures-via-text-message/</link>
					<comments>https://shkspr.mobi/blog/2013/06/text-adventures-via-text-message/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 14 Jun 2013 10:55:20 +0000</pubDate>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[interactive fiction]]></category>
		<category><![CDATA[sms]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[twilio]]></category>
		<category><![CDATA[zork]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=8386</guid>

					<description><![CDATA[Remember text adventures, eh?  They were pretty nifty!  &#34;You are in a maze of twisty little passages, all alike&#34; &#62;Go East &#34;You have been eaten by a Grue. A dwarf starts singing about gold&#34;  Smashing! Just like the pictures are better on the radio, so the graphics are immeasurably superior when they&#039;re in your head. Don&#039;t get me wrong, I love the 5.1 surround sound snarl of a rabid beast rendered…]]></description>
										<content:encoded><![CDATA[<p>Remember text adventures, eh?  They were pretty nifty!</p>

<pre>"You are in a maze of twisty little passages, all alike"
&gt;Go East
"You have been eaten by a Grue. A dwarf starts singing about gold"</pre>

<p>Smashing! Just like the pictures are better on the radio, so the graphics are immeasurably superior when they're in your head. Don't get me wrong, I love the 5.1 surround sound snarl of a rabid beast rendered in 1080p - but nothing is <em>quite</em> as good as using your imagination.</p>

<p>Text Adventures - or, more properly, <em>Interactive Fiction</em> - is enjoying a mini-renaissance at the moment.  There are emulators for smart phones, computers, and consoles.</p>

<p>But for SMS? None that I could find.  Think about it; SMS is close to the perfect medium for Interactive Fiction.  Your commands are concise enough to fit into a single message, you don't have to worry about the speed of your response, everything is text based.</p>

<p>So, I present to you, Zork via SMS (with a little help from <a href="http://twilio.com/">Twilio</a>).</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/06/Twilio-Zork-SMS-fs8.png" alt="Twilio Zork SMS" width="600" height="1033" class="aligncenter size-full wp-image-8391">

<p>Brilliant!</p>

<h2 id="howto"><a href="https://shkspr.mobi/blog/2013/06/text-adventures-via-text-message/#howto">HOWTO</a></h2>

<p>Although superficially a simple project, there are a few gotchas along the way.  This documentation is mostly for me - but may be of use to you :-)</p>

<p>Let's start at the end.... Using <a href="https://www.twilio.com/">Twilio</a> you can send an SMS to a phone number, that is then POSTed to a webserver of your choice.</p>

<p>Twilio will send an SMS back if it receives a response such as</p>

<pre><code class="language-xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;response&gt;
  &lt;sms&gt;You are in an open field west of a big white house with a boarded
front door.
There is a small mailbox here.
&lt;/sms&gt;
&lt;/response&gt;
</code></pre>

<p>Easy enough.  (NB the free account prepends your messages with a trial message. Once you pay, that goes away.)</p>

<p>So, how do we get a text adventure like Zork running server side?  There are plenty of client side emulators out there - but I only found one which was purely server side.</p>

<p><a href="https://web.archive.org/web/20141212015043/http://devel.thcnet.net/thcnetdev/index.php?section=article,29588">THCnet</a> have a PHP interpreter for Zork.  It's slightly cludgy - but it works.  I'm checking to see if I can distribute it on GitHub.</p>

<p>The game library "dtextc.dat" must be installed in "/usr/games/lib/".  The source code is available if you want to recompile it and place it somewhere more accessible.</p>

<p>A MySQL database needs to be created to keep track of users and sessions.</p>

<p>A temporary directory (which must be readable and writeable) will also be needed to store the state of play for each session.  I've used "tmp/404/" but you can alter config.php to point wherever is convenient.  You will also need to adjust index.php and functions.php with the new location.</p>

<p>Finally, the executable "zork" must be runable.</p>

<p>That's pretty much it.</p>

<p>When a user (or, in this case, Twilio) first makes a request to the URL, we check to see if they already have a session cookie.
If they don't, create one, and start the game by returning the opening text.</p>

<p>For every subsequent connection, we check the state of the game based on their cookie, then apply the body of their SMS to the game engine.  Whatever Zork spits out, we return as an SMS.</p>

<p>By default, Twilio kills unused sessions after 4 hours, and all cookies will be lost.</p>

<h2 id="where-next"><a href="https://shkspr.mobi/blog/2013/06/text-adventures-via-text-message/#where-next">Where Next?</a></h2>

<p>It strikes me that the various forms of text adventures are excellent as a sort of mini-IVR.  A nice little finite-state-machine which can quite happily run for years.  Services like <a href="https://web.archive.org/web/20130603122624/https://www.frontlinesms.com/">Frontline SMS</a> are great for information sharing, but they're really not designed for this sort of work.</p>

<p>Could we use interactive fiction in places where SMS is cheap but other forms of entertainment are expensive?  Could IF be used to augment existing media events?  SMS is lowest common denominator - even iPhones can use it.</p>

<p>But, for now, all I have to worry about is someone texting me "Go west'); DROP TABLE ..." ;-)</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=8386&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2013/06/text-adventures-via-text-message/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
