<?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>Statistics - Undo Restart Restore</title>
	<atom:link href="/blog/category/statistics/feed/" rel="self" type="application/rss+xml" />
	<link>/blog</link>
	<description>Interactive Fiction by Juhana Leinonen</description>
	<lastBuildDate>Sat, 08 Nov 2014 21:56:50 +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>IFDB statistics, part 3: IFComp</title>
		<link>/blog/2013/11/ifdb-statistics-part-3-ifcomp/</link>
					<comments>/blog/2013/11/ifdb-statistics-part-3-ifcomp/#comments</comments>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Fri, 22 Nov 2013 11:11:45 +0000</pubDate>
				<category><![CDATA[IFDB]]></category>
		<category><![CDATA[Statistics]]></category>
		<category><![CDATA[IFDB statistics]]></category>
		<guid isPermaLink="false">/blog/?p=750</guid>

					<description><![CDATA[The IFComp has just ended so it's a good time to compare historical IFComp results with scores given to games in IFDB. Are there any differences? Here are the charts from IFComps 1999&#8211;2012, based on IFDB data from November 1st, 2013. I couldn't find IFComp scores from before 1999 and there wasn't enough data for <a href="/blog/2013/11/ifdb-statistics-part-3-ifcomp/" class="more-link">Continue reading <span class="screen-reader-text">IFDB statistics, part 3: IFComp</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>The IFComp has just ended so it's a good time to compare historical IFComp results with scores given to games in IFDB. Are there any differences?<br />
<span id="more-750"></span><br />
Here are the charts from IFComps 1999&ndash;2012, based on IFDB data from November 1st, 2013. I couldn't find IFComp scores from before 1999 and there wasn't enough data for 2013 yet.</p>
<p>The games are placed in the chart with horizontal axis showing the IFComp score and vertical axis showing the IFDB score. Hovering the mouse over the dot displays the title. The blue diagonal line is the trendline. If the dot is above the trendline, it means it has been ranked higher in IFDB than in IFComp (in relation to other games in the same comp). Conversely if the dot is below the trendline the game did better in the comp than in IFDB. The distance from the line tells how big the disrepancy is.</p>
<p><img loading="lazy" src="/blog/blogcontent/uploads/2013/11/chart-example.png" alt="Chart with arrows pointing at outliers" width="435" height="388" class="aligncenter size-full wp-image-771" srcset="/blog/blogcontent/uploads/2013/11/chart-example.png 435w, /blog/blogcontent/uploads/2013/11/chart-example-150x133.png 150w, /blog/blogcontent/uploads/2013/11/chart-example-300x267.png 300w" sizes="(max-width: 435px) 100vw, 435px" /></p>
<p>Only games with at least 5 votes in IFDB are counted. That includes everything from 2008 on. Older bottom-tier games tend to have fewer votes. The only disqualified highly-ranked game is <em>A New Life</em> with only 4 votes which tied for second place in 2005.</p>
<p>(The charts might not show up if you're reading this from the RSS feed or Planet IF.)</p>
<div id="1999-chart"></div>
<div id="2000-chart"></div>
<div id="2001-chart"></div>
<div id="2002-chart"></div>
<div id="2003-chart"></div>
<div id="2004-chart"></div>
<div id="2005-chart"></div>
<div id="2006-chart"></div>
<div id="2007-chart"></div>
<div id="2008-chart"></div>
<div id="2009-chart"></div>
<div id="2010-chart"></div>
<div id="2011-chart"></div>
<div id="2012-chart"></div>
<p>If we look at how IFComp winners are rated in IFDB compared to games released the same year we notice that the best games aren't always found from the competition. In fact based on IFDB ratings the comp winner is the best-rated game of the year in only two cases, and more than half the time the comp winner isn't even the best rated IFComp game in IFDB. </p>
<p>The XYZZY award for the best game of the year goes to an IFComp winner roughly one third of the time, and one third of the time it isn't even nominated. Only <em>Lost Pig</em> in 2007 hit the jackpot (IFComp winner, highest rated game of the year, XYZZY award).</p>
<p>In the table below the first number column is the ranking among the competition games and the second is the ranking among all games that year. The last column shows if the game was nominated or won the XYZZY award for best game. For example in 1996 <em>The Meteor, The Stone And A Long Glass Of Sherbet</em> won the comp, was nominated for XYZZY and in IFDB is rated the 5th best comp game and the 7th best game of 1996.</p>
<table>
<caption>IFComp winner rankings in IFDB</caption>
<tr>
<th colspan="2"></th>
<th colspan="2">IFDB ranking</th>
<th></th>
</tr>
<tr>
<th>Year</th>
<th>Comp winner</th>
<th>comp</th>
<th>year</th>
<th>XYZZY</th>
</tr>
<tr>
<th>1995</th>
<td>A Change in the Weather</td>
<td>2</td>
<td>9</td>
<td></td>
</tr>
<tr>
<th>1995</th>
<td>Uncle Zebulon's Will</td>
<td class="good">1</td>
<td>4</td>
<td></td>
</tr>
<tr>
<th>1996</th>
<td>The Meteor, The Stone And A Long Glass Of Sherbet</td>
<td>5</td>
<td>7</td>
<td class="ok">nom.</td>
</tr>
<tr>
<th>1997</th>
<td>The Edifice</td>
<td>3</td>
<td>3</td>
<td class="ok">nom.</td>
</tr>
<tr>
<th>1998</th>
<td>Photopia</td>
<td class="good">1</td>
<td class="good">1</td>
<td class="ok">nom.</td>
</tr>
<tr>
<th>1999</th>
<td>Winter Wonderland</td>
<td>4</td>
<td>10</td>
<td class="bad">no</td>
</tr>
<tr>
<th>2000</th>
<td>Kaged</td>
<td>8</td>
<td>12</td>
<td class="bad">no</td>
</tr>
<tr>
<th>2001</th>
<td>All Roads</td>
<td>5</td>
<td>13</td>
<td class="good">won</td>
</tr>
<tr>
<th>2002</th>
<td>Another Earth, Another Sky</td>
<td>5</td>
<td>10</td>
<td class="ok">nom.</td>
</tr>
<tr>
<th>2003</th>
<td>Slouching Towards Bedlam</td>
<td class="good">1</td>
<td>2</td>
<td class="good">won</td>
</tr>
<tr>
<th>2004</th>
<td>Luminous Horizon</td>
<td>5</td>
<td>10</td>
<td class="bad">no</td>
</tr>
<tr>
<th>2005</th>
<td>Vespers</td>
<td class="good">1</td>
<td>2</td>
<td class="good">won</td>
</tr>
<tr>
<th>2006</th>
<td>Floatpoint</td>
<td>5</td>
<td>11</td>
<td class="ok">nom.</td>
</tr>
<tr>
<th>2007</th>
<td>Lost Pig</td>
<td class="good">1</td>
<td class="good">1</td>
<td class="good">won</td>
</tr>
<tr>
<th>2008</th>
<td>Violet</td>
<td class="good">1</td>
<td>2</td>
<td class="good">won</td>
</tr>
<tr>
<th>2009</th>
<td>Rover's Day Out</td>
<td class="good">1</td>
<td>5</td>
<td class="bad">no</td>
</tr>
<tr>
<th>2010</th>
<td>Aotearoa</td>
<td class="good">1</td>
<td>7</td>
<td class="good">won</td>
</tr>
<tr>
<th>2011</th>
<td>Taco Fiction</td>
<td>3</td>
<td>6</td>
<td class="bad">no</td>
</tr>
<tr>
<th>2012</th>
<td>Andromeda Apocalypse</td>
<td>3</td>
<td>16</td>
<td class="ok">nom.</td>
</tr>
</table>
<p>(Data retrieved 2013-11-21.)</p>
<p>Here are the "best of"s of each year. The number in the "IFDB best of comp" column is that game's actual placing in IFComp that year.</p>
<table>
<caption>Best of year in IFComp, IFDB and XYZZYs</caption>
<tr>
<th>Year</th>
<th>Comp winner</th>
<th colspan="2">IFDB best of comp</th>
<th>IFDB best of year</th>
<th>XYZZY best game</th>
</tr>
<tr>
<th>1995</th>
<td>A Change in the Weather<br />Uncle Zebulon's Will</td>
<td>Uncle Zebulon's Will</td>
<td>1</td>
<td>Christminster</td>
<td></td>
</tr>
<tr>
<th>1996</th>
<td>The Meteor, The Stone And A Long Glass Of Sherbet</td>
<td>Lists and Lists</td>
<td>11</td>
<td>Lists and Lists</td>
<td>So Far</td>
</tr>
<tr>
<th>1997</th>
<td>The Edifice</td>
<td>Babel</td>
<td>2</td>
<td>Babel</td>
<td>I-0</td>
</tr>
<tr>
<th>1998</th>
<td>Photopia</td>
<td>Photopia</td>
<td>1</td>
<td>Photopia</td>
<td>Spider and Web</td>
</tr>
<tr>
<th>1999</th>
<td>Winter Wonderland</td>
<td>Exhibition</td>
<td>5</td>
<td>The Mulldoon Legacy</td>
<td>Varicella</td>
</tr>
<tr>
<th>2000</th>
<td>Kaged</td>
<td>Metamorphoses</td>
<td>2</td>
<td>Metamorphoses</td>
<td>Being Andrew Plotkin</td>
</tr>
<tr>
<th>2001</th>
<td>All Roads</td>
<td>Heroes</td>
<td>3</td>
<td>First Things First</td>
<td>All Roads</td>
</tr>
<tr>
<th>2002</th>
<td>Another Earth, Another Sky</td>
<td>Janitor</td>
<td>5</td>
<td>Savoir-Faire</td>
<td>Savoir-Faire</td>
</tr>
<tr>
<th>2003</th>
<td>Slouching Towards Bedlam</td>
<td>Slouching Towards Bedlam</td>
<td>1</td>
<td>City of Secrets</td>
<td>Slouching Towards Bedlam</td>
</tr>
<tr>
<th>2004</th>
<td>Luminous Horizon</td>
<td>All Things Devours</td>
<td>3</td>
<td>All Things Devours</td>
<td>Blue Chairs</td>
</tr>
<tr>
<th>2005</th>
<td>Vespers</td>
<td>Vespers</td>
<td>1</td>
<td>Tomorrow Never Comes</td>
<td>Vespers</td>
</tr>
<tr>
<th>2006</th>
<td>Floatpoint</td>
<td>The Primrose Path</td>
<td>2</td>
<td>Bronze</td>
<td>The Elysium Enigma</td>
</tr>
<tr>
<th>2007</th>
<td>Lost Pig</td>
<td>Lost Pig</td>
<td>1</td>
<td>Lost Pig</td>
<td>Lost Pig</td>
</tr>
<tr>
<th>2008</th>
<td>Violet</td>
<td>Violet</td>
<td>1</td>
<td>Blue Lacuna</td>
<td>Violet</td>
</tr>
<tr>
<th>2009</th>
<td>Rover's Day Out</td>
<td>Rover's Day Out</td>
<td>1</td>
<td>Make It Good</td>
<td>Blue Lacuna</td>
</tr>
<tr>
<th>2010</th>
<td>Aotearoa</td>
<td>Aotearoa</td>
<td>1</td>
<td>Flexible Survival</td>
<td>Aotearoa</td>
</tr>
<tr>
<th>2011</th>
<td>Taco Fiction</td>
<td>Kerkerkruip</td>
<td>8</td>
<td>Mentula Macanus: Apocolocyntosis</td>
<td>Cryptozookeeper</td>
</tr>
<tr>
<th>2012</th>
<td>Andromeda Apocalypse</td>
<td>howling dogs</td>
<td>11</td>
<td>Endless, Nameless</td>
<td>Counterfeit Monkey</td>
</tr>
</table>
<p>(<em>Blue Lacuna</em> is listed as a 2008 game in IFDB, but it was eligible for XYZZYs in 2009. If you count <em>Blue Lacuna</em> as a 2009 game then <em>Violet</em> is the highest rated in 2008.)</p>
<p>What's obvious here is that people have different criteria for rating games in IFComp and IFDB. <em>Lists and Lists</em>, which teaches how to program in Scheme, is technically impressive but hardly something that people would want to win the IFComp. </p>
<p>There's also an inherent bias with this kind of scoring where you obviously need to play the game before you can rank it. When you're participating in the IFComp as a judge you often play the games without knowing anything about them beforehand, or play and rate them all even if you do. Outside the comp you're likely to not even pick up a genre that doesn't interest you; if roguelikes are not your thing you're unlikely to play and rate <em>Kerkerkruip</em>.</p>
<p>Moral of the story? Firstly, even if your game doesn't rank well in IFComp it might still be highly appreciated in other contexts or as time passes. Secondly, releasing in IFComp is not (and has never been) required for a good game to get the appreciation it deserves.</p>
<p>And finally here are the best IFComp games ever according to IFDB.</p>
<table>
<caption>Highest rated IFComp games in IFDB</caption>
<tr>
<th></th>
<th>Game</th>
<th>Year</th>
<th>Comp ranking</th>
</tr>
<tr>
<th>1</th>
<td>Lost Pig</td>
<td>2007</td>
<td>1</td>
</tr>
<tr>
<th>2</th>
<td>Violet</td>
<td>2008</td>
<td>1</td>
</tr>
<tr>
<th>3</th>
<td>Photopia</td>
<td>1998</td>
<td>1</td>
</tr>
<tr>
<th>4</th>
<td>Slouching Towards Bedlam</td>
<td>2003</td>
<td>1</td>
</tr>
<tr>
<th>5</th>
<td>Metamorphoses</td>
<td>2000</td>
<td>2</td>
</tr>
<tr>
<th>6</th>
<td>Heroes</td>
<td>2001</td>
<td>3</td>
</tr>
<tr>
<th>7</th>
<td>Babel</td>
<td>1997</td>
<td>2</td>
</tr>
<tr>
<th>8</th>
<td>Moments Out of Time</td>
<td>2001</td>
<td>2</td>
</tr>
<tr>
<th>9</th>
<td>The Best Man</td>
<td>2000</td>
<td>15</td>
</tr>
<tr>
<th>10</th>
<td>Exhibition</td>
<td>1999</td>
<td>5</td>
</tr>
</table>
<p><script type="text/javascript" src="https://www.google.com/jsapi"></script><br />
<script type="text/javascript" src="/blog/blogcontent/uploads/2013/11/ifdb-3.js"></script></p>
]]></content:encoded>
					
					<wfw:commentRss>/blog/2013/11/ifdb-statistics-part-3-ifcomp/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>IFDB statistics, part 2: Development systems</title>
		<link>/blog/2012/11/ifdb-statistics-part-2-development-systems/</link>
					<comments>/blog/2012/11/ifdb-statistics-part-2-development-systems/#comments</comments>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Thu, 15 Nov 2012 20:58:51 +0000</pubDate>
				<category><![CDATA[IFDB]]></category>
		<category><![CDATA[Statistics]]></category>
		<category><![CDATA[IFDB statistics]]></category>
		<guid isPermaLink="false">/blog/?p=653</guid>

					<description><![CDATA[Click here to read all posts from the IFDB statistics series. When we talk about development systems in IFDB, it's good to remember that some systems have better coverage than others. Parallel communities like Quest (201 games in its own site, 26 in IFDB), non-parser systems and the AIF crowd are underrepresented. Another factor that <a href="/blog/2012/11/ifdb-statistics-part-2-development-systems/" class="more-link">Continue reading <span class="screen-reader-text">IFDB statistics, part 2: Development systems</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><em><a href="/blog/tag/ifdb-statistics/">Click here to read all posts from the IFDB statistics series.</a></em></p>
<p>When we talk about development systems in IFDB, it's good to remember that some systems have better coverage than others. Parallel communities like Quest (<a href="http://www.textadventures.co.uk/browse/">201 games</a> in its own site, <a href="http://ifdb.tads.org/search?searchfor=system%3Aquest">26 in IFDB</a>), <a href="https://twitter.com/joningold/status/265369039898046465">non-parser systems</a> and the <a href="http://www.ifwiki.org/index.php/AIF" title="Adult Interactive Fiction">AIF</a> crowd are underrepresented. Another factor that skews statistics is that game listings tend to display the system in which the game is available now&mdash;for example <a href="http://ifdb.tads.org/search?searchfor=series:Scott+Adams+Classic+Adventures">Scott Adams adventures</a> are listed as Inform&nbsp;6 games because the downloads are for the Inform ports.</p>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=509a301ea2185&amp;chart=Pie"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/alltime-devpop-3.png" alt="" title="All time development system popularity" width="557" height="378" class="aligncenter size-full wp-image-661" srcset="/blog/blogcontent/uploads/2012/11/alltime-devpop-3.png 557w, /blog/blogcontent/uploads/2012/11/alltime-devpop-3-150x101.png 150w, /blog/blogcontent/uploads/2012/11/alltime-devpop-3-300x203.png 300w" sizes="(max-width: 557px) 100vw, 557px" /></a></p>
<p>In the all-time popularity chart Inform&nbsp;6 is the clear leader: a quarter of all games have been made with it. Inform&nbsp;6 and 7 together cover more than a third of all games.</p>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=509a30b7e62c3&chart=Pie"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/recent-devpop.png" alt="" title="Recent development system popularity (2010-2012)" width="604" height="383" class="aligncenter size-full wp-image-658" srcset="/blog/blogcontent/uploads/2012/11/recent-devpop.png 604w, /blog/blogcontent/uploads/2012/11/recent-devpop-150x95.png 150w, /blog/blogcontent/uploads/2012/11/recent-devpop-300x190.png 300w" sizes="(max-width: 604px) 100vw, 604px" /></a></p>
<p>The chart for current (2010-2012) systems is a bit different. Inform&nbsp;7 has risen to dominate the field with the market share of two thirds. Inform&nbsp;6 has dropped significantly and all other systems are in the margins. Does this mean that the field has become less diverse or that IFDB has not kept up with new systems?</p>
<h3>The Commercial Era</h3>
<p>I've split the statistics in two eras: the commercial era (before 1994) and the hobbyist era (from 1994 on). 1994 marks the beginning of a renaissance&mdash;IF died commercially but at the same time the publication of Inform practically created the modern hobbyist scene.</p>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=509a3169d78cb&chart=Pie"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/commercial-pop.png" alt="" title="Commercial era development system popularity" width="563" height="377" class="aligncenter size-full wp-image-664" srcset="/blog/blogcontent/uploads/2012/11/commercial-pop.png 563w, /blog/blogcontent/uploads/2012/11/commercial-pop-150x100.png 150w, /blog/blogcontent/uploads/2012/11/commercial-pop-300x200.png 300w" sizes="(max-width: 563px) 100vw, 563px" /></a></p>
<p>Many of the commercial era games don't have the system marked down or have a suspicious "none" (were they written directly into machine code?) or a vague "custom". The most popular system was <a href="http://en.wikipedia.org/wiki/Eamon_(video_game)#Adventures">Eamon</a>, which was exclusively used to create stories in the Eamon game world. <a href="http://en.wikipedia.org/wiki/The_Quill">The Quill</a> was almost as popular, although the Wikipedia article says there were more than 450 commercial The Quill games (203 listed in IFDB) which would make it more popular than Eamon.</p>
<p>The large number of <a href="http://ifdb.tads.org/search?searchfor=published%3A-1993+system%3Ainform+6&searchgo=Search+Games">Inform&nbsp;6 games</a> is because of ports, as mentioned above.</p>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=50a4e7010be79&chart=Line"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/comm-devpop-year.png" alt="" title="Popularity of development systems by year, before 1994" width="573" height="269" class="aligncenter size-full wp-image-666" srcset="/blog/blogcontent/uploads/2012/11/comm-devpop-year.png 573w, /blog/blogcontent/uploads/2012/11/comm-devpop-year-150x70.png 150w, /blog/blogcontent/uploads/2012/11/comm-devpop-year-300x140.png 300w" sizes="(max-width: 573px) 100vw, 573px" /></a></p>
<p>Looking at the numbers by year, Eamon reaches quickly its highest point in mid-80s and declines from there more or less steadily. The Quill and AGT have a more steady growth all the way to the 90s. As you might imagine, BASICs popularity drops quickly after dedicated development systems become available.</p>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=50a4e8437ed3f&chart=Area&nototal=1&stacked=1"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/devpop-year-percentage.png" alt="" title="Development system popularity by year, percentages" width="565" height="261" class="aligncenter size-full wp-image-667" srcset="/blog/blogcontent/uploads/2012/11/devpop-year-percentage.png 565w, /blog/blogcontent/uploads/2012/11/devpop-year-percentage-150x69.png 150w, /blog/blogcontent/uploads/2012/11/devpop-year-percentage-300x138.png 300w" sizes="(max-width: 565px) 100vw, 565px" /></a></p>
<p>Here's the same chart but with percentages from the total number of games: the vertical thickness of the area denotes more games in relation to other systems, the full height being 100%. The data in this chart goes up to 1998 so that we see how all the "old" systems drop practically to zero in popularity by then.</p>
<h3>The Hobbyist Era</h3>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=509a30fb67861&chart=Pie"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/hobbyist-era-pie.png" alt="" title="Development system popularity (1994 and later)" width="559" height="379" class="aligncenter size-full wp-image-688" srcset="/blog/blogcontent/uploads/2012/11/hobbyist-era-pie.png 559w, /blog/blogcontent/uploads/2012/11/hobbyist-era-pie-150x101.png 150w, /blog/blogcontent/uploads/2012/11/hobbyist-era-pie-300x203.png 300w" sizes="(max-width: 559px) 100vw, 559px" /></a></p>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=509a3c4718d47&chart=Line"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/devpop-hobbyist.png" alt="" title="Development system popularity in the hobbyist era" width="571" height="266" class="aligncenter size-full wp-image-670" srcset="/blog/blogcontent/uploads/2012/11/devpop-hobbyist.png 571w, /blog/blogcontent/uploads/2012/11/devpop-hobbyist-150x69.png 150w, /blog/blogcontent/uploads/2012/11/devpop-hobbyist-300x139.png 300w" sizes="(max-width: 571px) 100vw, 571px" /></a></p>
<p>In the mid-90s the playfield changes completely. TADS, Inform, ADRIFT and other systems are released and especially Inform gains popularity.</p>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=509a3af606eb2&chart=Area&stacked=1&nototal=1"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/devpop-hobbyist-precentages.png" alt="" title="Development system popularity (1994 and later), percentages" width="569" height="265" class="aligncenter size-full wp-image-672" srcset="/blog/blogcontent/uploads/2012/11/devpop-hobbyist-precentages.png 569w, /blog/blogcontent/uploads/2012/11/devpop-hobbyist-precentages-150x69.png 150w, /blog/blogcontent/uploads/2012/11/devpop-hobbyist-precentages-300x139.png 300w" sizes="(max-width: 569px) 100vw, 569px" /></a></p>
<p>Inform's domination is apparent in the percentual view. TADS&nbsp;2 has steady popularity until the turn of the millennium when it begins a downward slope. TADS&nbsp;3 gains a small foothold but never grows very much. Hugo has seen a small resurrection lately, mostly thanks to a small but active group.</p>
<h3>Inform</h3>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=50a502c313250&chart=Area&nototal=1&stacked=1"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/inform-and-others-percentages.png" alt="" title="Inform and other systems, percentages" width="573" height="266" class="aligncenter size-full wp-image-676" srcset="/blog/blogcontent/uploads/2012/11/inform-and-others-percentages.png 573w, /blog/blogcontent/uploads/2012/11/inform-and-others-percentages-150x69.png 150w, /blog/blogcontent/uploads/2012/11/inform-and-others-percentages-300x139.png 300w" sizes="(max-width: 573px) 100vw, 573px" /></a></p>
<p>After Inform&nbsp;6 was released, it rose to cover almost half of all published games in only two years. The same happened when Inform&nbsp;7 was released: in a few years it took the lead, eating mostly Inform&nbsp;6's popularity. </p>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=5099476fa9d6d&chart=Area&stacked=1&nototal=1"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/inform-6-7.png" alt="" title="Inform 6 and 7" width="568" height="264" class="aligncenter size-full wp-image-683" srcset="/blog/blogcontent/uploads/2012/11/inform-6-7.png 568w, /blog/blogcontent/uploads/2012/11/inform-6-7-150x69.png 150w, /blog/blogcontent/uploads/2012/11/inform-6-7-300x139.png 300w" sizes="(max-width: 568px) 100vw, 568px" /></a></p>
<p>This year only a handful of Inform&nbsp;6 games have been released and Inform is at almost 70%.</p>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=50a50f882e8fe&chart=Line"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/inform-vs-others-percentages.png" alt="" title="Inform and others, percentages" width="572" height="270" class="aligncenter size-full wp-image-693" srcset="/blog/blogcontent/uploads/2012/11/inform-vs-others-percentages.png 572w, /blog/blogcontent/uploads/2012/11/inform-vs-others-percentages-150x70.png 150w, /blog/blogcontent/uploads/2012/11/inform-vs-others-percentages-300x141.png 300w" sizes="(max-width: 572px) 100vw, 572px" /></a></p>
<p>The question is: has Inform&nbsp;7 attracted people into IF who would otherwise not have done so, or would people who now use Inform&nbsp;7 started to use something else if it had never been released? Surely there are people in both groups, but the graph above suggests that Inform&nbsp;7 is eating away the Inform&nbsp;6 userbase, not others. The "everything else" line does not seem to have any correlation with the Inform&nbsp;7 line.</p>
<h3>TADS</h3>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=509a4c82a22f1&chart=Area&nototal=1&stacked=1"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/tads-popularity.png" alt="" title="Popularity of TADS" width="571" height="268" class="aligncenter size-full wp-image-678" srcset="/blog/blogcontent/uploads/2012/11/tads-popularity.png 571w, /blog/blogcontent/uploads/2012/11/tads-popularity-150x70.png 150w, /blog/blogcontent/uploads/2012/11/tads-popularity-300x140.png 300w" sizes="(max-width: 571px) 100vw, 571px" /></a></p>
<p>TADS&nbsp;2 was at its height in 1999 when 27% of all games were written using it. Another peak was in 2002 after TADS&nbsp;3 was released, but since then their popularity has been on a steady downward curve.</p>
<p>Again, the statistics show no correlation between Inform and TADS. Peaks in Inform's popularity do not show anywhere in the TADS statistics. (You could argue that I7 might have cut short TADS&nbsp;3's slow climb between 2004 and 2008, but I very much doubt it.)</p>
]]></content:encoded>
					
					<wfw:commentRss>/blog/2012/11/ifdb-statistics-part-2-development-systems/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>IFDB statistics, part 1: Publishing date</title>
		<link>/blog/2012/11/ifdb-statistics-part-1-publishing-date/</link>
					<comments>/blog/2012/11/ifdb-statistics-part-1-publishing-date/#comments</comments>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Tue, 06 Nov 2012 15:56:43 +0000</pubDate>
				<category><![CDATA[IFDB]]></category>
		<category><![CDATA[Statistics]]></category>
		<category><![CDATA[IFDB statistics]]></category>
		<guid isPermaLink="false">/blog/?p=625</guid>

					<description><![CDATA[Click here to read all posts from the IFDB statistics series. A few months back Mike Roberts, the curator of IFDB, together with Andrew Plotkin released the full IFDB database dump. This is certainly a great deed, since the IFDB is the most complete source of information about IF to date and there's always a <a href="/blog/2012/11/ifdb-statistics-part-1-publishing-date/" class="more-link">Continue reading <span class="screen-reader-text">IFDB statistics, part 1: Publishing date</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><em><a href="/blog/tag/ifdb-statistics/">Click here to read all posts from the IFDB statistics series.</a></em></p>
<p>A few months back Mike Roberts, the curator of <a href="http://ifdb.tads.org/" title="Interactive Fiction Database">IFDB</a>, together with Andrew Plotkin <a href="http://www.intfiction.org/forum/viewtopic.php?f=4&t=5425">released the full IFDB database dump</a>. This is certainly a great deed, since the IFDB is the most complete source of information about IF to date and there's always a risk of data loss if the database is behind only one person. The database is an invaluable resource to (future) historians, researchers and people who love statistics.</p>
<p>And I do love statistics.</p>
<p>I've pulled a lot of interesting graphs from the database and will present them in a series of blog posts, of which this is the first one. We'll start slow by looking at the games' publishing dates and progress later to searching for more and more specific correlations.</p>
<p>It's worth noting that while IFDB has a lot of information, it's by no means comprehensive or 100% accurate. Therefore all this data reflects IFDB contents rather than the real world. How much the truth differs from the available data is open to discussion.</p>
<p><strong>Click on the images to see the full data set, an interactive chart and chart display options.</strong> All available statistics can be seen collected on <a href="http://nitku.net/if/ifdb-statistics" title="IFDB statistics">this page</a>. More graphs are added as the series progresses.</p>
<p>You can also gladly suggest in the comments what kind of data you'd like to see analyzed.</p>
<h3>Publishing date by year</h3>
<p>There are <strong>4173</strong> games in the database, of which <strong>4027</strong> have a known publishing date. The graph for total number of games over time looks like this:</p>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=50982bc062940&chart=Area"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/total-amount.png" alt="Total amount of games" title="Total amount of games" width="574" height="295" class="aligncenter size-full wp-image-630" srcset="/blog/blogcontent/uploads/2012/11/total-amount.png 574w, /blog/blogcontent/uploads/2012/11/total-amount-150x77.png 150w, /blog/blogcontent/uploads/2012/11/total-amount-300x154.png 300w" sizes="(max-width: 574px) 100vw, 574px" /></a></p>
<p>More informative is the number of games published each year:</p>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=509835152ba7a&chart=Line"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/games-by-year.png" alt="Games by year" title="Games by year" width="572" height="298" class="aligncenter size-full wp-image-632" srcset="/blog/blogcontent/uploads/2012/11/games-by-year.png 572w, /blog/blogcontent/uploads/2012/11/games-by-year-150x78.png 150w, /blog/blogcontent/uploads/2012/11/games-by-year-300x156.png 300w" sizes="(max-width: 572px) 100vw, 572px" /></a></p>
<p>You can see the "golden age" from mid-80s to early 90s, a small dip, and a steep rise starting soon after. I have no explanation for why there were so many releases in 2001&ndash;2003. In 2001 there were twice as many releases as in 2009. </p>
<p>In recent years the number of releases has varied between 115 (in 2009) and 173 (in 2010). There's no discernible trend to either direction and there's not enough data to make any predictions about the future. 2012 is not included in the graph but at the end of October there were 164 releases which is already more than in 2011 (153 releases).</p>
<h3>Publishing month</h3>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=509833042aea1&chart=Column"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/published-by-month.png" alt="Games published by month" title="Games published by month" width="576" height="299" class="aligncenter size-full wp-image-637" srcset="/blog/blogcontent/uploads/2012/11/published-by-month.png 576w, /blog/blogcontent/uploads/2012/11/published-by-month-150x77.png 150w, /blog/blogcontent/uploads/2012/11/published-by-month-300x155.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></a></p>
<p>This (and the next graph) is wildly inaccurate since about 70% of games have only the publishing year listed, not the exact date (which is why January 1st is excluded). Still, you see what you'd expect: IFComp games are released in October so it has the most releases and November is not a good time to release because the competition draws all the attention.</p>
<h3>Publishing weekday</h3>
<p><a href="http://nitku.net/if/ifdb-statistics/index.php?id=509833460dd75&chart=Column"><img loading="lazy" src="/blog/blogcontent/uploads/2012/11/publishing-weekday.png" alt="Publishing weekday" title="Publishing weekday" width="569" height="296" class="aligncenter size-full wp-image-640" srcset="/blog/blogcontent/uploads/2012/11/publishing-weekday.png 569w, /blog/blogcontent/uploads/2012/11/publishing-weekday-150x78.png 150w, /blog/blogcontent/uploads/2012/11/publishing-weekday-300x156.png 300w" sizes="(max-width: 569px) 100vw, 569px" /></a></p>
<p>Games are released most often on Sunday and least often on Friday. Shouldn't be a surprise that weekends are the most common release days as most games are hobbyist efforts. </p>
<p>Next time we'll look at development system popularity.</p>
]]></content:encoded>
					
					<wfw:commentRss>/blog/2012/11/ifdb-statistics-part-1-publishing-date/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Transcript recording plugin for Parchment released</title>
		<link>/blog/2011/05/transcript-recording-plugin-for-parchment-released/</link>
					<comments>/blog/2011/05/transcript-recording-plugin-for-parchment-released/#comments</comments>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Sat, 14 May 2011 19:15:13 +0000</pubDate>
				<category><![CDATA[Statistics]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">/blog/?p=569</guid>

					<description><![CDATA[As promised, the transcript recording plugin for Parchment has now been published. As the player is playing the game, the plugin sends the transcript to the server where it's saved to a database. The author can then later view the saved transcripts or use the information in the database to calculate statistics. The plugin saves <a href="/blog/2011/05/transcript-recording-plugin-for-parchment-released/" class="more-link">Continue reading <span class="screen-reader-text">Transcript recording plugin for Parchment released</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>As promised, the transcript recording plugin for Parchment has now been published. As the player is playing the game, the plugin sends the transcript to the server where it's saved to a database. The author can then later view the saved transcripts or use the information in the database to calculate <a href="/blog/2011/01/starborn-play-statistics/">statistics</a>.</p>
<p>The plugin saves more than just plain text: it preserves text formatting and saves status lines as well, so the transcripts look (almost) the same as the actual game. (See <a href="http://transcripts.game-testing.org/test/tools/viewer/transcript.php?session=1305221845371128&statusline=inline">this example of Bronze</a> with status lines, colors and text formatting. Note that Parchment uses small caps in place of bold text.) The saved transcripts can be viewed with or without the status lines. In addition when the game waits for a single keypress, non-alphabet characters like enter, space and arrow keys are marked in the transcript.</p>
<p>There's a <a href="http://transcripts.game-testing.org/test/">live demo</a> with a <a href="http://transcripts.game-testing.org/test/tools/viewer/">transcript viewer</a> available. Games played in the demo installation can be seen in the viewer. </p>
<p>The plugin and accompanying tools can be downloaded from <a href="http://code.google.com/p/parchment-transcript/downloads/list">Google Code</a> where you'll also find <a href="http://code.google.com/p/parchment-transcript/wiki/Installation">installation instructions</a>. Only Z-machine is supported at the moment, Glulx support will be added later.</p>
]]></content:encoded>
					
					<wfw:commentRss>/blog/2011/05/transcript-recording-plugin-for-parchment-released/feed/</wfw:commentRss>
			<slash:comments>1</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>
		<item>
		<title>Collecting real life gameplay data with Parchment</title>
		<link>/blog/2010/06/collecting-real-life-gameplay-data-with-parchment/</link>
					<comments>/blog/2010/06/collecting-real-life-gameplay-data-with-parchment/#comments</comments>
		
		<dc:creator><![CDATA[Juhana]]></dc:creator>
		<pubDate>Thu, 24 Jun 2010 18:49:37 +0000</pubDate>
				<category><![CDATA[Statistics]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">/blog/?p=332</guid>

					<description><![CDATA[There was a lot of talk during PAX East and elsewhere about collecting real life data from people playing IF. I'm proud to announce that I've hacked the Parchment web interpreter to do just this: it saves transcripts to the server every time a game is played. Try it out yourself: Click here to start <a href="/blog/2010/06/collecting-real-life-gameplay-data-with-parchment/" class="more-link">Continue reading <span class="screen-reader-text">Collecting real life gameplay data with Parchment</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>There was a lot of talk during <a href="/blog/2010/04/pax-east-vibes/">PAX East</a> and elsewhere about collecting real life data from people playing IF. I'm proud to announce that I've hacked the <a href="http://code.google.com/p/parchment/">Parchment</a> web interpreter to do just this: it saves transcripts to the server every time a game is played.</p>
<p>Try it out yourself: <a href="http://parchment.game-testing.org/demo/parchment.full.html?story=stories/yomomma.z8">Click here to start a game</a> and then open <a href="http://parchment.game-testing.org/demo/html/live.php">this page</a> to a new browser window. Enter a command in the game and see how the transcript in the live feed updates. (If you don't see your game in the live feed page, reload it. It shows the three latest games being played at the time the feed page was loaded.) </p>
<p>And then there's the beef: I've made a rudimentary <a href="http://parchment.game-testing.org/demo/html/stats.php">statistics page</a> that shows some interesting information using the collected data, including most used commands and average turn count and playtime.</p>
<p><span id="more-332"></span></p>
<p>The obvious use for this is of course collecting information on how people play the game and using that information to make improvements for the next release. You could also use this for closed beta-testing -- give the web address to your testers and Parchment saves the transcripts automatically. The testers don't have to remember to start the transcript or send it to the author.</p>
<h3>Statistics from other games</h3>
<p>First I want to stress that at the moment this is just a demo of a hack. It can and will behave strangely especially if the game bypasses the standard parser and takes input directly (menus etc.) That said, if you want to try other games than the sample game, you can use either http://parchment.game-testing.org/demo/parchment.full.html?story=xxx or http://parchment.game-testing.org/play/parchment.full.html?story=xxx (replace xxx with the full url of the game you want to play.) The difference is that the latter doesn't have the live transcript feed and only has the <a href="http://parchment.game-testing.org/play/html/stats.php">statistics page</a> (note a different address than what the demo site uses). You can't single out individual players from the statistics so there's no disclaimer notifying the player of the data collection (which might unnecessarily scare off some players.)</p>
<p>The statistics page collects information and displays the urls of all games played this way, so don't use this for trying out something you don't want the whole world to see.</p>
<h3>How it works</h3>
<p>I've added <a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29">AJAX</a> calls inside Parchment's UI code at appropriate places where it sends the player's command and the game's response to the server. On the server a PHP script receives the data and saves it into the database. This is all done behind the curtain so for the player the gameplay experience is exactly the same as with unmodified Parchment.</p>
<p>The statistics page collects some extra information about Inform 7's internal error message and library message codes. This requires some modifications to the game file itself. The Raising the Flag on Mount Yo Momma game used as the example has been modified to include this:</p>
<div class="inform">
<p>
Before printing a parser error:</p>
<div class="inform-indent">
	say <span class="inform-string">"#ERROR:[parser error code]#"</span>.
</div>
</p>
<p>
To decide which number is parser error code:</p>
<div class="inform-indent"> (- etype -);</div>
</p>
<p>
When play begins:</p>
<div class="inform-indent">change the command prompt to <span class="inform-string">"#LIBMSG:[library message number]#>[clear libmsgnumber]"</span>.</div>
</p>
<p>
To say clear libmsgnumber: change the library message number to 0.
</p>
<p>
When play begins:</p>
<div class="inform-indent">say <span class="inform-string">"#PARCHMENTWARNING: This is a special story file designed to work with a modified Parchment interpreter. Seeing this message means that you are using some other interpreter or a wrong version of Parchment to play this game. It's advisable that you download another version of this game, or you might see between normal text some control strings that are not supposed to be shown to the player.#"</span>.</div>
</p>
</div>
<p>That code shows the error codes and the library message ids after every turn in the prompt, for example #LIBMSG:40#>. When the modified Parchment sees these strings it saves the information in them and removes them from the output so that the player doesn't see them. Played on any other interpreter the game would of course display these, so the last line of code warns the player that they shouldn't be using this game file if they can see the control codes.</p>
<p>Unfortunately the error codes and library message codes aren't very reliable; some parser errors don't seem to have an error code and some library messages don't have an id. Most noticeably the "unknown verb" error doesn't have either, so it doesn't show in the statistics. I don't actually know what the codes really do, I just noticed they're there and used them; future development would include using custom codes for different situations in the game.</p>
<h3>Future plans</h3>
<ul>
<li>Test it more and fix bugs so that it could actually be reliably used.</li>
<li>Clean up and comment the code so that it could be packaged for people to install on their own servers. </li>
<li>Create a service where people could have saved transcripts and command statistics behind a password so that they could improve the game for later builds or use Parchment to save beta-testing transcripts.</li>
<li>Add more information and charts to the statistics page (suggestions welcome.)</li>
<li>Try to convince Parchment developers to include this functionality into the main build or provide hooks so that this could be added as a plugin. Right now I'm just modifying Parchment's code directly, so whenever Parchment is updated the files have to be edited by hand again. </li>
</ul>
<p>What would you like to see done with this?</p>
]]></content:encoded>
					
					<wfw:commentRss>/blog/2010/06/collecting-real-life-gameplay-data-with-parchment/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
