<?xml version="1.0" encoding="UTF-8"?><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>starborn - Undo Restart Restore</title>
	<atom:link href="/blog/tag/starborn-2/feed/" rel="self" type="application/rss+xml" />
	<link>/blog</link>
	<description>Interactive Fiction by Juhana Leinonen</description>
	<lastBuildDate>Tue, 10 Jan 2012 17:48:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.7.1</generator>
	<item>
		<title>Starborn: the Vorple edition</title>
		<link>/blog/2012/01/starborn-the-vorple-edition/</link>
					<comments>/blog/2012/01/starborn-the-vorple-edition/#comments</comments>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Tue, 10 Jan 2012 17:45:43 +0000</pubDate>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Undum]]></category>
		<category><![CDATA[Vorple]]></category>
		<category><![CDATA[starborn]]></category>
		<guid isPermaLink="false">/blog/?p=601</guid>

					<description><![CDATA[Almost one year ago to the date I released Starborn, a short keyword-based scifi story made with Inform 7. Now I'm proud to present an Undum-based version, enhanced with Vorple, of course. The content is essentially the same. Instead of typing the keywords you click on hyperlinks that are highlighted in the text and shown <a href="/blog/2012/01/starborn-the-vorple-edition/" class="more-link">Continue reading <span class="screen-reader-text">Starborn: the Vorple edition</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><a href="http://transcripts.game-testing.org/undum/starborn/"><img loading="lazy" src="/blog/blogcontent/uploads/2012/01/Starborn-300x173.jpg" alt="A screenshot of the story, showing the story text, the map and the keyword list" title="Starborn Vorple edition screenshot" width="300" height="173" class="alignright size-medium wp-image-602" srcset="/blog/blogcontent/uploads/2012/01/Starborn-300x173.jpg 300w, /blog/blogcontent/uploads/2012/01/Starborn-150x86.jpg 150w, /blog/blogcontent/uploads/2012/01/Starborn-1024x591.jpg 1024w, /blog/blogcontent/uploads/2012/01/Starborn.jpg 1249w" sizes="(max-width: 300px) 100vw, 300px" /></a>Almost one year ago to the date I released <a href="http://ifdb.tads.org/viewgame?id=xxzy1f49yw1n6ghj">Starborn</a>, a short keyword-based scifi story made with <a href="http://inform7.com/">Inform 7</a>. Now I'm proud to present an <a href="http://undum.com/">Undum</a>-based version, enhanced with <a href="http://vorple-if.com/">Vorple</a>, of course.</p>
<p>The content is essentially the same. Instead of typing the keywords you click on hyperlinks that are highlighted in the text and shown in a separate list next to the story. A clickable, dynamic map of locations is displayed on the opposite side. There's background music, but sound support is still a bit shaky in some browsers. Internet Explorer 7 or earlier will not work.</p>
<p>It uses the yet-unpublished version 1.2 of Vorple and demonstrates the use of the <a href="http://vorple-if.com/outgribe/2011/buttons/">button interface</a> in the map and in the keyword list, and tooltips that are displayed as brief instructions and as labels for the map. Under the hood it uses <a href="http://vorple-if.com/outgribe/2011/more-undum-link-types/">disposable links</a> and other similar features. It's also using the <a href="https://github.com/juhana/if-recorder">IF Recorder</a> plugin, probably the first time for an Undum story.</p>
<ul>
<li><a href="http://transcripts.game-testing.org/undum/starborn/"><strong>Play online</strong></a></li>
<li><a href="https://github.com/juhana/starborn">Source code</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>/blog/2012/01/starborn-the-vorple-edition/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>Starborn statistics follow-up</title>
		<link>/blog/2011/05/starborn-statistics-follow-up/</link>
					<comments>/blog/2011/05/starborn-statistics-follow-up/#comments</comments>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Fri, 06 May 2011 16:07:51 +0000</pubDate>
				<category><![CDATA[Statistics]]></category>
		<category><![CDATA[starborn]]></category>
		<guid isPermaLink="false">/blog/?p=549</guid>

					<description><![CDATA[Earlier I posted some statistics from transcripts collected from online plays of Starborn. Based on those statistics I released a new version at the end of January, mainly adding synonyms based on the most common typos players had made. Looking at the data from before and after the update, here's what happened to the total <a href="/blog/2011/05/starborn-statistics-follow-up/" class="more-link">Continue reading <span class="screen-reader-text">Starborn statistics follow-up</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Earlier I posted <a href="/blog/2011/01/starborn-play-statistics/">some statistics</a> from transcripts collected from online plays of <em><a href="http://code.google.com/p/starborn/">Starborn</a></em>. Based on those statistics I released a new version at the end of January, mainly adding synonyms based on the most common typos players had made.</p>
<p>Looking at the data from before and after the update, here's what happened to the total amount of invalid commands:</p>
<p><span id="more-549"></span></p>
<table class="stats">
<caption>Valid commands</caption>
<tr>
<th></th>
<th colspan="2">Before update</th>
<th colspan="2">After update</th>
</tr>
<tr>
<th></th>
<th>Amount</th>
<th>% of all commands</th>
<th>Amount</th>
<th>% of all commands</th>
</tr>
<tr>
<td>Valid commands</td>
<td>22208</td>
<td>93%</td>
<td>7545</td>
<td>98%</td>
</tr>
<tr>
<td>Invalid commands</td>
<td>1688</td>
<td>7%</td>
<td>146</td>
<td>2%</td>
</tr>
<tr>
<th>total</th>
<th>23896</th>
<th></th>
<th>7691</th>
<th></th>
</tr>
</table>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/05/valid-commands.png" alt="Pie graphs showing 7% of invalid commands before update and 2% after update." title="Valid commands before and after update" width="453" height="289" class="aligncenter size-full wp-image-550" srcset="/blog/blogcontent/uploads/2011/05/valid-commands.png 453w, /blog/blogcontent/uploads/2011/05/valid-commands-150x95.png 150w, /blog/blogcontent/uploads/2011/05/valid-commands-300x191.png 300w" sizes="(max-width: 453px) 100vw, 453px" /></p>
<p>In addition to new synonyms the update includes a new class of error message. The earlier version responded with "That is not a keyword the story recognizes" to all invalid input. The update shows the same message when the player gives only one word as input, but if the player had given more than one word the error message is ”Please type a single keyword to advance the story” followed by a list of available keywords.</p>
<p>This was inspired by the different ways people had given invalid input: some gave traditional IF commands, some typed more than one keyword at the same time. In addition to the new error message giving more accurate instructions on how to interact with the story, it also explicitly lists the input it accepts, leaving no room for confusion. I looked at how this affected "ragequitting" after giving invalid multiword input during the first turn: </p>
<table class="stats">
<caption>Quitting after receiving an error message to input with more than two words during the first turn</caption>
<tr>
<th></th>
<th colspan="2">"That is not a keyword the story recognizes."</th>
<th colspan="2">”Please type a single keyword to advance the story. Available keywords: ...”</th>
</tr>
<tr>
<td>Quit immediately</td>
<td>10</td>
<td>9%</td>
<td>0</td>
<td>0%</td>
</tr>
<tr>
<td>Kept playing</td>
<td>96</td>
<td>91%</td>
<td>16</td>
<td>100%</td>
</tr>
<tr>
<th>total</th>
<th>106</th>
<th></th>
<th>16</th>
<th></th>
</tr>
</table>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/05/error-message-types.png" alt="Two pie charts showing how before the update 9% quit after getting an error message from two-word commands, after update no-one quit immediately." title="Player perseverance by error message types" width="516" height="506" class="aligncenter size-full wp-image-556" srcset="/blog/blogcontent/uploads/2011/05/error-message-types.png 516w, /blog/blogcontent/uploads/2011/05/error-message-types-150x147.png 150w, /blog/blogcontent/uploads/2011/05/error-message-types-300x294.png 300w" sizes="(max-width: 516px) 100vw, 516px" /></p>
<p>(The sample set is so small that the results fit well within error margins, but they are still nice numbers to look at.)</p>
<p>In addition to reducing the total number of invalid input, the amount of error messages per game dropped as well. In the previous version about half of the players didn't encounter any error messages while playing, but more than a quarter bumped into them more than once, 10 percent more than three times. In the latest release the no errors group jumped up to two thirds and those who saw more than one error message dropped to less than 10 percent. </p>
<table class="stats">
<caption>Number of invalid input per game</caption>
<tr>
<th></th>
<th colspan="2">Before update</th>
<th colspan="2">After update</th>
</tr>
<tr>
<td>No errors during game</td>
<td>671</td>
<td>48%</td>
<td>250</td>
<td>69%</td>
</tr>
<tr>
<td>One error</td>
<td>339</td>
<td>24%</td>
<td>80</td>
<td>22%</td>
</tr>
<tr>
<td>Two errors</td>
<td>140</td>
<td>10%</td>
<td>24</td>
<td>7%</td>
</tr>
<tr>
<td>Three errors</td>
<td>93</td>
<td>7%</td>
<td>6</td>
<td>2%</td>
</tr>
<tr>
<td>More than three errors</td>
<td>144</td>
<td>10%</td>
<td>0</td>
<td>0%</td>
</tr>
<tr>
<th>total</th>
<th>1387</th>
<th></th>
<th>360</th>
<th></th>
</tr>
</table>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/05/errors-per-game.png" alt="Two pie graphs, errors during game before and after update. Before update 48% of players had no errors during the story, after update 69%." title="Errors per game" width="471" height="322" class="aligncenter size-full wp-image-560" srcset="/blog/blogcontent/uploads/2011/05/errors-per-game.png 471w, /blog/blogcontent/uploads/2011/05/errors-per-game-150x102.png 150w, /blog/blogcontent/uploads/2011/05/errors-per-game-300x205.png 300w" sizes="(max-width: 471px) 100vw, 471px" /></p>
<p>It was expected that by making the parser more error tolerant and helpful the percentage of people who played the story to completion would go up, as well as time spent with the game, measured here with the average number of turns per game (not counting those who quit without typing a single command). </p>
<table class="stats">
<caption>Game completion</caption>
<tr>
<th></th>
<th colspan="2">Before update</th>
<th colspan="2">After update</th>
</tr>
<tr>
<td>Loaded the story, didn’t play</td>
<td>170</td>
<td>11%</td>
<td>53</td>
<td>13%</td>
</tr>
<tr>
<td>Quit after first turn</td>
<td>177</td>
<td>11%</td>
<td>34</td>
<td>8%</td>
</tr>
<tr>
<td>Played more than one turn, not to completion</td>
<td>805</td>
<td>52%</td>
<td>183</td>
<td>44%</td>
</tr>
<tr>
<td>Played to completion</td>
<td>405</td>
<td>26%</td>
<td>143</td>
<td>35%</td>
</tr>
<tr>
<th>total</th>
<th>1557</th>
<th></th>
<th>413</th>
<th></th>
</tr>
</table>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/05/completion.png" alt="Two pie graphs showing that 35% of players finished the game after update as opposed to 26% before the update." title="Games played to completion before and after update" width="487" height="327" class="aligncenter size-full wp-image-554" srcset="/blog/blogcontent/uploads/2011/05/completion.png 487w, /blog/blogcontent/uploads/2011/05/completion-150x100.png 150w, /blog/blogcontent/uploads/2011/05/completion-300x201.png 300w" sizes="(max-width: 487px) 100vw, 487px" /></p>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/05/turn-average.png" alt="Bar graphs showing an average of 17.2 turns per game before update and 21.4 turns per game after update" title="Average number of turns per game" width="340" height="178" class="aligncenter size-full wp-image-562" srcset="/blog/blogcontent/uploads/2011/05/turn-average.png 340w, /blog/blogcontent/uploads/2011/05/turn-average-150x78.png 150w, /blog/blogcontent/uploads/2011/05/turn-average-300x157.png 300w" sizes="(max-width: 340px) 100vw, 340px" /></p>
<p>As the graphs show, the percentage of people who quit after one turn or right after the intro doesn't show any significant change. There are people who don't find this kind of medium their thing and there's not much that can be done to make them keep playing. in the other end of the scale are the hardcore IF fans who play anything they can get their hands on. Most players fall somewhere in between and to keep them engaged requires both a good story and smooth gameplay. </p>
<p>Betatesting can do a lot, but analysis of real life transcripts can reveal surprising things that have a significant effect on how players enjoy the game. Who would've thought that invalid one-word and multiword input should have different error messages? What would a similar stack of transcripts from games with full parsers reveal?</p>
<p>The good news is that I've almost finished with making the transcript recording functionality an actual Parchment plugin. It'll be released soon, first with Z-machine support and later with Glulx support, and even later with statistical tools to make all kinds of graphs like the ones presented here.</p>
]]></content:encoded>
					
					<wfw:commentRss>/blog/2011/05/starborn-statistics-follow-up/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title>Starborn: play statistics</title>
		<link>/blog/2011/01/starborn-play-statistics/</link>
					<comments>/blog/2011/01/starborn-play-statistics/#comments</comments>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Mon, 24 Jan 2011 11:18:16 +0000</pubDate>
				<category><![CDATA[Statistics]]></category>
		<category><![CDATA[starborn]]></category>
		<guid isPermaLink="false">/blog/?p=442</guid>

					<description><![CDATA[<em><a href="http://code.google.com/p/starborn/">Starborn</a></em> is a short interactive sci-fi story that uses a simple keyword interface instead of a standard IF parser. It was made as a speed-if for this year's New Year's Speed-if event on ifMUD. It was released to the public about a week ago and at first gained the usual amount of interest: the logs show 7 online plays on the release day and less on the next two days.

Last Wednesday however <a href="http://ifwiki.org/index.php/C.E.J._Pacian">C.E.J. Pacian</a> wrote a <a href="http://gamesforcrows.blogspot.com/2011/01/starborn.html">blog post</a> about it which was picked up by the <a href="http://www.indiegames.com/blog/2011/01/browser_game_pick_starborn_cej.html">IndieGames.com blog</a>. From <em>there</em> a couple of people tweeted about it and suddenly the play count jumped to about 600 plays per day. <a href="http://code.google.com/p/parchment/">The main Parchment site</a> reported similar amounts of traffic.

I'm running the online version of the story on a <a href="/blog/2010/06/collecting-real-life-gameplay-data-with-parchment/">modified version of Parchment</a> that saves the transcripts to the server. I now have 1557 transcripts consisting of 23&#160;896 turns (and counting, but the traffic is slowing down considerably). To my knowledge this is more play data collected than for any other single IF game so far.

So here's a random bunch of analysis from those transcripts. There are no spoilers other than keywords used throughout the game, but if you haven't played yet the data would probably make more sense if you at least checked out a couple of turns just to see what the parser looks like. <a href="http://parchment.game-testing.org/play/parchment.full.html?story=http://starborn.googlecode.com/svn/trunk/Starborn.z8">Online version</a> and <a href="http://code.google.com/p/starborn/">downloads</a> are available.]]></description>
										<content:encoded><![CDATA[<p><em><a href="http://code.google.com/p/starborn/">Starborn</a></em> is a short interactive sci-fi story that uses a simple keyword interface instead of a standard IF parser. It was made as a speed-if for this year's New Year's Speed-if event on ifMUD. It was released to the public about a week ago and at first gained the usual amount of interest: the logs show 7 online plays on the release day and less on the next two days.</p>
<p>Last Wednesday however <a href="http://ifwiki.org/index.php/C.E.J._Pacian">C.E.J. Pacian</a> wrote a <a href="http://gamesforcrows.blogspot.com/2011/01/starborn.html">blog post</a> about it which was picked up by the <a href="http://www.indiegames.com/blog/2011/01/browser_game_pick_starborn_cej.html">IndieGames.com blog</a>. From <em>there</em> a couple of people tweeted about it and suddenly the play count jumped to about 600 plays per day. <a href="http://code.google.com/p/parchment/">The main Parchment site</a> reported similar amounts of traffic.</p>
<p>I'm running the online version of the story on a <a href="/blog/2010/06/collecting-real-life-gameplay-data-with-parchment/">modified version of Parchment</a> that saves the transcripts to the server. I now have 1557 transcripts consisting of 23&nbsp;896 turns (and counting, but the traffic is slowing down considerably). To my knowledge this is more play data collected than for any other single IF game so far.</p>
<p>So here's a random bunch of analysis from those transcripts. There are no spoilers other than keywords used throughout the game, but if you haven't played yet the data would probably make more sense if you at least checked out a couple of turns just to see what the parser looks like. <a href="http://parchment.game-testing.org/play/parchment.full.html?story=http://starborn.googlecode.com/svn/trunk/Starborn.z8">Online version</a> and <a href="http://code.google.com/p/starborn/">downloads</a> are available.</p>
<p><span id="more-442"></span></p>
<h2>Parser errors</h2>
<p>Since the gameplay is just typing single keywords given by the story, the amount of understood input was substantially high (93%). Most of the errors were typos (53.3% of all invalid input).<br />
<img loading="lazy" src="/blog/blogcontent/uploads/2011/01/validity.png" alt="A pie chart showing that 93% of all commands were understood by the parser" title="Command validity" width="374" height="241" class="aligncenter size-full wp-image-444" srcset="/blog/blogcontent/uploads/2011/01/validity.png 374w, /blog/blogcontent/uploads/2011/01/validity-150x96.png 150w, /blog/blogcontent/uploads/2011/01/validity-300x193.png 300w" sizes="(max-width: 374px) 100vw, 374px" /></p>
<table>
<caption>Types of invalid commands</caption>
<tr>
<th>Type</th>
<th>Amount</th>
<th>% of all commands</th>
<th>% of invalid input</th>
</tr>
<tr>
<td>Typo</td>
<td>899</td>
<td>3.8%</td>
<td>53.3%</td>
</tr>
<tr>
<td>IF command</td>
<td>491</td>
<td>2.1%</td>
<td>29.1%</td>
</tr>
<tr>
<td>Sign of confusion</td>
<td>79</td>
<td>0.3%</td>
<td>4.7%</td>
</tr>
<tr>
<td>Poke</td>
<td>73</td>
<td>0.3%</td>
<td>4.3%</td>
</tr>
<tr>
<td>Gibberish</td>
<td>69</td>
<td>0.3%</td>
<td>4.1%</td>
</tr>
<tr>
<td>Non-keyword</td>
<td>45</td>
<td>0.2%</td>
<td>2.7%</td>
</tr>
<tr>
<td>Swear word</td>
<td>32</td>
<td>0.1%</td>
<td>1.9%</td>
</tr>
<tr>
<th>total</th>
<th>1688</th>
<th></th>
<th></th>
</tr>
</table>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/01/unrecognized-type.png" alt="Bar chart for unrecognized commands by type" title="Unrecognized commands by type" width="428" height="283" class="aligncenter size-full wp-image-480" srcset="/blog/blogcontent/uploads/2011/01/unrecognized-type.png 428w, /blog/blogcontent/uploads/2011/01/unrecognized-type-150x99.png 150w, /blog/blogcontent/uploads/2011/01/unrecognized-type-300x198.png 300w" sizes="(max-width: 428px) 100vw, 428px" /></p>
<p>Standard IF commands were disabled so they count as unrecognized commands. The "sign of confusion" category contains commands like HUH, ?, WHERE, or verb commands that don't follow the standard IF convention (I GO OUT). A "poke" is the player testing the limits of the parser by trying to communicate with it (HELLO, BYE, OH NO) or trying to do things out of character, mostly involving trying to kill poor Kevin (DIE, KILL COUSIN), and even trying if the prompt recognizes Unix commands (<a href="http://en.wikipedia.org/wiki/Ls">LS</a>, <a href="http://en.wikipedia.org/wiki/Cd_%28command%29">CD ..</a>). "Gibberish" is a random string of letters or arbitrary words that don't appear anywhere in the story text (WALRUS, AWESOME). Non-keywords are words that appear in the story text but aren't keywords that you can choose (MOM, HOME).</p>
<table class="stats">
<caption>Most common commands not understood by the parser</caption>
<tr>
<th>command</td>
<th>#</td>
<th>% of errors</td>
<th>% of all commands</td>
</tr>
<tr>
<td>look</td>
<td>109</td>
<td>6.5%</td>
<td>0.46%</td>
</tr>
<tr>
<td>foucalt</td>
<td>50</td>
<td>3.0%</td>
<td>0.21%</td>
</tr>
<tr>
<td>exit</td>
<td>42</td>
<td>2.5%</td>
<td>0.18%</td>
</tr>
<tr>
<td>something</td>
<td>36</td>
<td>2.1%</td>
<td>0.15%</td>
</tr>
<tr>
<td>excercise room</td>
<td>31</td>
<td>1.8%</td>
<td>0.13%</td>
</tr>
<tr>
<td>docking bay</td>
<td>20</td>
<td>1.2%</td>
<td>0.08%</td>
</tr>
<tr>
<td>starborn</td>
<td>18</td>
<td>1.1%</td>
<td>0.08%</td>
</tr>
<tr>
<td>go</td>
<td>18</td>
<td>1.1%</td>
<td>0.08%</td>
</tr>
<tr>
<td>?</td>
<td>18</td>
<td>1.1%</td>
<td>0.08%</td>
</tr>
<tr>
<td>dr.strepke</td>
<td>15</td>
<td>0.9%</td>
<td>0.06%</td>
</tr>
<tr>
<td>turn on music</td>
<td>14</td>
<td>0.8%</td>
<td>0.06%</td>
</tr>
<tr>
<td>shuttleport</td>
<td>14</td>
<td>0.8%</td>
<td>0.06%</td>
</tr>
<tr>
<td>leave</td>
<td>13</td>
<td>0.8%</td>
<td>0.05%</td>
</tr>
<tr>
<td>megellan</td>
<td>13</td>
<td>0.8%</td>
<td>0.05%</td>
</tr>
<tr>
<td>open door</td>
<td>13</td>
<td>0.8%</td>
<td>0.05%</td>
</tr>
<tr>
<td>walk</td>
<td>12</td>
<td>0.7%</td>
<td>0.05%</td>
</tr>
<tr>
<td>m</td>
<td>12</td>
<td>0.7%</td>
<td>0.05%</td>
</tr>
<tr>
<td>open</td>
<td>11</td>
<td>0.7%</td>
<td>0.05%</td>
</tr>
<tr>
<td>cousins</td>
<td>11</td>
<td>0.7%</td>
<td>0.05%</td>
</tr>
<tr>
<td>dock</td>
<td>11</td>
<td>0.7%</td>
<td>0.05%</td>
</tr>
<tr>
<td>weighlessness</td>
<td>11</td>
<td>0.7%</td>
<td>0.05%</td>
</tr>
<tr>
<td>turn music on</td>
<td>10</td>
<td>0.6%</td>
<td>0.04%</td>
</tr>
<tr>
<td>back</td>
<td>10</td>
<td>0.6%</td>
<td>0.04%</td>
</tr>
<tr>
<td>excercise equipment</td>
<td>10</td>
<td>0.6%</td>
<td>0.04%</td>
</tr>
</table>
<h2>Sticking with it to the end</h2>
<p>About 11% of players quit without typing a single command, the same amount after the first command and a quarter kept playing until the game's conclusion. </p>
<table class="stats">
<caption>Game completion</caption>
<tr>
<td>Loaded the story, didn’t play</td>
<td>170</td>
<td>11%</td>
</tr>
<tr>
<td>Quit after first turn</td>
<td>177</td>
<td>11%</td>
</tr>
<tr>
<td>Played more than one turn, not to completion</td>
<td>805</td>
<td>52%</td>
</tr>
<tr>
<td>Played to completion</td>
<td>405</td>
<td>26%</td>
</tr>
<tr>
<th>total</th>
<th>1557</th>
<th></th>
</tr>
</table>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/01/playstats.png" alt="Pie chart showing how many players started the game, quit after first turn, played but not to completion, and played to completion" title="Player behavior" width="528" height="211" class="aligncenter size-full wp-image-463" srcset="/blog/blogcontent/uploads/2011/01/playstats.png 528w, /blog/blogcontent/uploads/2011/01/playstats-150x59.png 150w, /blog/blogcontent/uploads/2011/01/playstats-300x119.png 300w" sizes="(max-width: 528px) 100vw, 528px" /></p>
<p>What happens when the story tells the player that the input wasn't understood? In this case the game tells up front what kind of input it accepts. The parser can complain about the input only if the player disregards or misunderstands the instructions, makes a typo, or if the game has a bug that doesn't parse valid input correctly. There is a bug in <em>Starborn</em> where commanding MAGELLAN in one room gives a frustrating "Which do you mean, Magellan or the Magellan?" disambiguation question, but other than that the keyword system is immune to implementation issues where input consistent with the game's rules is disregarded because the author didn't implement a correct response.</p>
<p>Player made errors like typos can affect the player's experience just as much as the game's shortcomings. If you aren't able to make progress in the game, no matter the reason, you're likely to become frustrated and quit. I took a look at what happened when the player gave invalid input at the first turn. I expected that those players would be more likely to quit immediately than those who gave a valid command, but it turned out that there was no significant difference in that regard. They were still more likely to stop playing later on before reaching the end.</p>
<table class="stats">
<caption>Game completion by valid or invalid input on first turn</caption>
<tr>
<th></th>
<th colspan="2">Parser error on turn&nbsp;1</th>
<th colspan="2">Valid command on turn&nbsp;1</th>
</tr>
<tr>
<td>Quit immediately</td>
<td>24</td>
<td>10.7%</td>
<td>153</td>
<td>13.2%</td>
</tr>
<tr>
<td>Kept playing, but not to completion</td>
<td>158</td>
<td>70.5%</td>
<td>647</td>
<td>55.6%</td>
</tr>
<tr>
<td>Kept playing and finished the game</td>
<td>42</td>
<td>18.8%</td>
<td>363</td>
<td>31.2%</td>
</tr>
<tr>
<th>total</th>
<th>224</th>
<th></th>
<th>1163</th>
<th></th>
</tr>
</table>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/01/turn1.png" alt="Two pie charts showing how people who gave an invalid command on turn one didn&#039;t finish the game as often as others" title="Game completion after turn one" width="470" height="310" class="aligncenter size-full wp-image-459" srcset="/blog/blogcontent/uploads/2011/01/turn1.png 470w, /blog/blogcontent/uploads/2011/01/turn1-150x98.png 150w, /blog/blogcontent/uploads/2011/01/turn1-300x197.png 300w" sizes="(max-width: 470px) 100vw, 470px" /></p>
<p>The reason for this might be that people who are prone to making typos are more likely to become frustrated when the story keeps stalling. This theory is supported by the fact that people who didn't complete the story gave almost twice as much invalid commands than people who completed the story (proportionate to the total amount of input; transcripts with less than 10 moves not counted).</p>
<table class="stats">
<caption>Invalid input from total</caption>
<tr>
<td>Game completed</td>
<td>5.3%</td>
</tr>
<tr>
<td>Game unfinished (at least 10 turns)</td>
<td>10.1%</td>
</tr>
</table>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/01/fromtotal.png" alt="Graph showing the amount of invalid input for people who completed and who didn&#039;t complete the story" title="Invalid input from total" width="366" height="214" class="aligncenter size-full wp-image-456" srcset="/blog/blogcontent/uploads/2011/01/fromtotal.png 366w, /blog/blogcontent/uploads/2011/01/fromtotal-150x87.png 150w, /blog/blogcontent/uploads/2011/01/fromtotal-300x175.png 300w" sizes="(max-width: 366px) 100vw, 366px" /></p>
<h2>The first turn</h2>
<p>The story starts with short instructions on how to play.</p>
<div class="transcript">
<p>
The story you are about to play uses a keyword interface. Whenever you see a word in upper case you can type it on the command prompt to advance the story. If you prefer a different way of showing the keywords, command SETUP to change the settings.
</p>
<p>
Whenever you wish to see the list of currently available keywords, type L or just press enter.
</p>
<p>
Please press SPACE to continue.
</p>
</div>
<p>After pressing space the screen is cleared and the game starts.</p>
<div class="transcript">
<p><center>                    <strong>STARBORN</strong><br />
               by Juhana Leinonen</center></p>
<p>It's quiet, as always. I've turned the MUSIC off so that it doesn't bother my COUSIN's sleep. A long day of travel and WEIGHTLESSNESS has exhausted him.</p>
<p>The door leads out to the HALLWAY.</p>
<div class="transcript-command">&gt;</div>
</div>
<p>At this point the player has four keywords to choose from. It was expected that as the first command the first keyword was picked the most often and the last keyword the second most often and the transcripts show that the assumption was correct.</p>
<table class="stats">
<caption>Commands during the first turn</caption>
<tr>
<th></th>
<th>#</th>
<th>% of commands</th>
</tr>
<tr>
<td>MUSIC</td>
<td>551</td>
<td>40%</td>
</tr>
<tr>
<td>COUSIN</td>
<td>112</td>
<td>8%</td>
</tr>
<tr>
<td>WEIGHTLESSNESS</td>
<td>109</td>
<td>8%</td>
</tr>
<tr>
<td>HALLWAY</td>
<td>184</td>
<td>13%</td>
</tr>
<tr>
<td>L or enter</td>
<td>140</td>
<td>10%</td>
</tr>
<tr>
<td>IF command</td>
<td>130</td>
<td>9%</td>
</tr>
<tr>
<td>SETUP</td>
<td>49</td>
<td>4%</td>
</tr>
<tr>
<td>gibberish</td>
<td>25</td>
<td>1.8%</td>
</tr>
<tr>
<td>typo</td>
<td>22</td>
<td>1.6%</td>
</tr>
<tr>
<td>multiple keywords</td>
<td>20</td>
<td>1.4%</td>
</tr>
<tr>
<td>ABOUT, HELP, CREDITS</td>
<td>12</td>
<td>0.9%</td>
</tr>
<tr>
<td>other</td>
<td>33</td>
<td>2.4%</td>
</tr>
<tr>
<th>total</th>
<th>1387</th>
<th></th>
</tr>
</table>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/01/firstturn1.png" alt="Bar chart showing the distribution of commands regarding the available keywords during the first turn" title="Commands given on the first turn" width="585" height="257" class="aligncenter size-full wp-image-471" srcset="/blog/blogcontent/uploads/2011/01/firstturn1.png 585w, /blog/blogcontent/uploads/2011/01/firstturn1-150x65.png 150w, /blog/blogcontent/uploads/2011/01/firstturn1-300x131.png 300w" sizes="(max-width: 585px) 100vw, 585px" /></p>
<p>What wasn't as expected was that some people (20 out of the total, that's more than one percent) typed every available keyword <em>at the same time</em> ("MUSIC COUSIN WEIGHTLESSNESS HALLWAY"). Other typical mistakes were typos and assuming that the keyword in "...my COUSIN's sleep" is "COUSIN'S" including the apostrophe and the "s". Presumably out of habit the players would also try the usual IF commands (X ME, TURN MUSIC ON).</p>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/01/firstturn2.png" alt="A bar chart of type of commands entered during the first turn" title="Commands other than available keywords entered during the first turn" width="610" height="375" class="aligncenter size-full wp-image-472" srcset="/blog/blogcontent/uploads/2011/01/firstturn2.png 610w, /blog/blogcontent/uploads/2011/01/firstturn2-150x92.png 150w, /blog/blogcontent/uploads/2011/01/firstturn2-300x184.png 300w" sizes="(max-width: 610px) 100vw, 610px" /></p>
<p>Category "other" includes, among others, choosing words from the text that weren't keywords, swearing, and trying to communicate with the parser (HI, OK, LOL).</p>
<h2>Leading the player</h2>
<p>I assumed that if choosing a keyword leads to a description that contains exactly one new keyword, the player is likely to pick that keyword instead of any of the previous yet unexplored ones. For example, if the player chooses the keyword MUSIC in the intro, the description will be:</p>
<div class="transcript">
<p>The computer has a comprehensive library of movies, music, books and games. They have been just about the only available entertainment on the MAGELLAN.</p>
<div class="transcript-command">&gt;</div>
</div>
<p>The transcripts reveal that the most common command was indeed MAGELLAN, although I expected the figure to be much higher.</p>
<table class="stats">
<caption>Commands after MUSIC</caption>
<tr>
<td>MAGELLAN</td>
<td>344</td>
<td>69 %</td>
</tr>
<tr>
<td>previous keyword</td>
<td>140</td>
<td>28 %</td>
</tr>
<tr>
<td>other</td>
<td>18</td>
<td>4 %</td>
</tr>
<tr>
<th>total</th>
<th>502</th>
<th></th>
</tr>
</table>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/01/after-music.png" alt="Pie chart showing that 69% of players chose MAGELLAN as their next command after choosing MUSIC" title="Command after MUSIC" width="377" height="239" class="aligncenter size-full wp-image-496" srcset="/blog/blogcontent/uploads/2011/01/after-music.png 377w, /blog/blogcontent/uploads/2011/01/after-music-150x95.png 150w, /blog/blogcontent/uploads/2011/01/after-music-300x190.png 300w" sizes="(max-width: 377px) 100vw, 377px" /></p>
<p>By default the story shows available keywords in the story text in upper case, so about one sixth of the players typed them in upper case as well.</p>
<table class="stats">
<caption>Upper/lower case commands</caption>
<tr>
<td>All lower case</td>
<td>17652</td>
<td>74%</td>
</tr>
<tr>
<td>All upper case</td>
<td>4150</td>
<td>17%</td>
</tr>
<tr>
<td>Mixed case</td>
<td>672</td>
<td>3%</td>
</tr>
<tr>
<td>Other</td>
<td>1422</td>
<td>6%</td>
</tr>
<tr>
<th>total</th>
<th>23896</th>
<th></th>
</tr>
</table>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/01/upper-lower1.png" alt="Pie chart showing the percentages of upper, lower and mixed case commands" title="Upper case and lower case commands" width="430" height="308" class="aligncenter size-full wp-image-521" srcset="/blog/blogcontent/uploads/2011/01/upper-lower1.png 430w, /blog/blogcontent/uploads/2011/01/upper-lower1-150x107.png 150w, /blog/blogcontent/uploads/2011/01/upper-lower1-300x214.png 300w" sizes="(max-width: 430px) 100vw, 430px" /></p>
<p>("Other" includes empty input, numbers, and other input where there are no characters.)</p>
<p>As the game never instructs the player that they can type only one of the words in a two-word keyword, it wasn't surprising that the players were generally inclined to type the entire name of the keyword.</p>
<table class="stats">
<caption>Two-word keywords</p>
<tr>
<th>Keyword</th>
<th>Both words written</th>
<th>One word written</th>
<th>% of one word input</th>
</tr>
<tr>
<td>SICK BAY</td>
<td>669</td>
<td>15</td>
<td>2%</td>
</tr>
<tr>
<td>DOCKING STATION</td>
<td>1533</td>
<td>134</td>
<td>8%</td>
</tr>
<tr>
<td>TICKET MACHINE</td>
<td>517</td>
<td>47</td>
<td>8%</td>
</tr>
</table>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2011/01/compound-words.png" alt="Three pie charts showing how players were inclined to write both words of two-part keywords" title="Compound words" width="495" height="699" class="aligncenter size-full wp-image-488" srcset="/blog/blogcontent/uploads/2011/01/compound-words.png 495w, /blog/blogcontent/uploads/2011/01/compound-words-106x150.png 106w, /blog/blogcontent/uploads/2011/01/compound-words-212x300.png 212w" sizes="(max-width: 495px) 100vw, 495px" /></p>
<h2>Typos</h2>
<p>How many ways can you write WEIGHTLESSNESS? At least 20 different ways:</p>
<table class="stats">
<tr>
<td>weghtlessness</td>
<td>weifhtlessness</td>
<td>weighlessneess</td>
<td>weighlessness</td>
</tr>
<tr>
<td>weightessness</td>
<td>weightkessness</td>
<td>weightlesness</td>
<td>weightless</td>
</tr>
<tr>
<td>weightlessneess</td>
<td>weightlessnes</td>
<td>weightlessness</td>
<td>weightlesssness</td>
</tr>
<tr>
<td>weightltssness</td>
<td>weigtlessness</td>
<td>weitghlessness</td>
<td>wheightlessness</td>
</tr>
<tr>
<td>wieghtlessness</td>
<td>wiehgtlessness</td>
<td>wightlessness</td>
<td>wwightlessness</td>
</tr>
</table>
<p>Because you can never take into account every possible way a word could be typoed, it'd be great if the parser could just go through the available vocabulary and choose the closest match to the player's input. You could then have the parser understand the most outrageous misspellings the players could come up with. This game is an exception of sorts because all available keywords (and therefore all acceptable commands) are at all times visible to the player so there's no need to be wary of the parser choosing a word that the player hasn't encountered yet, but even in a traditional IF game you could have the parser go through only the words that have been previously shown to the player.</p>
<h2>Further steps</h2>
<p>Just by fixing the 30 most common unrecognized commands fixes one third of all unrecognized input. The cases where the player types more than one keyword at a time or tries to use a standard IF command can be handled with a better error message, something like <em>"Please type keywords only, one at a time. Currently available keywords are ..."</em></p>
<p>Analyzing the transcripts is great for finding out which unimplemented commands need attention or what synonyms to add, but it's by no means a replacement for traditional testing: the transcripts don't tell you how good the story is, do the puzzles work, is the pacing correct, are there spelling errors in the text... The benefit of data collection from a live release is that the data represents the actual audience. The beta testers are probably on average more experienced players than people playing the game after its release.</p>
<p>It'd be great to have similar volume of data from a traditional parser IF game so that the results would be more generally applicable. Even a couple of transcripts from a lot of different games would probably show interesting results.</p>
<p><em>(<strong>Updates:</strong> <a href="/blog/2011/05/starborn-statistics-follow-up/">follow-up after an update</a>; <a href="/blog/2011/05/transcript-recording-plugin-for-parchment-released/">the recording plugin for Parchment released</a>)</em></p>
]]></content:encoded>
					
					<wfw:commentRss>/blog/2011/01/starborn-play-statistics/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
	</channel>
</rss>
