<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Mostly Tigerproof &#187; Tales of Bug Horror</title>
	<atom:link href="http://blog.mostlytigerproof.com/category/tales-of-bug-horror/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mostlytigerproof.com</link>
	<description>Craig Timpany&#039;s weblog</description>
	<lastBuildDate>Mon, 23 Jan 2012 06:20:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.mostlytigerproof.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Mostly Tigerproof &#187; Tales of Bug Horror</title>
		<link>http://blog.mostlytigerproof.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.mostlytigerproof.com/osd.xml" title="Mostly Tigerproof" />
	<atom:link rel='hub' href='http://blog.mostlytigerproof.com/?pushpress=hub'/>
		<item>
		<title>Game development in 2021</title>
		<link>http://blog.mostlytigerproof.com/2011/10/17/game-development-in-2021/</link>
		<comments>http://blog.mostlytigerproof.com/2011/10/17/game-development-in-2021/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 11:24:58 +0000</pubDate>
		<dc:creator>Craig Timpany</dc:creator>
				<category><![CDATA[Game Business]]></category>
		<category><![CDATA[Tales of Bug Horror]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.mostlytigerproof.com/?p=315</guid>
		<description><![CDATA[A sci-fi story Kelly checks her work items. Uh oh, a client freeze. The KickStarter milestone’s been slipping and the money is starting to run out. Right now, showstoppers are exactly what they don’t need. Thank god Jack’s the one on the forums trying to pass a vote on paring back the milestone requirements. If [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mostlytigerproof.com&amp;blog=180258&amp;post=315&amp;subd=wildgeese&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>A sci-fi story</strong></p>
<p>Kelly checks her work items. Uh oh, a client freeze. The KickStarter milestone’s been slipping and the money is starting to run out. Right now, showstoppers are exactly what they don’t need.</p>
<p>Thank god Jack’s the one on the forums trying to pass a vote on paring back the milestone requirements. If he can’t get the ‘No’ vote lower than 43%, refunding that percentage of the users will send them insolvent. It takes preternatural calm to operate at the intersection of community management and project management.<span id="more-315"></span></p>
<p>She takes a deep breath and pulls from the QA repo. There’s several thousand session recordings in here, but her filters only show the busted ones. Sure enough, there’s a new fork in the replay tree and it’s red. “Watchdog violation: Over 1000 frames since input was last polled”. The offending fork doesn’t look much different from its sibling forks: same sequence of button presses, slightly different timings. If not for the freeze, the QA guy on topiary duty probably would’ve coalesced it into the sibling test cases.</p>
<p>Hmm, the work item has a VM image attached, but with everyone pushing changes like mad throughout the morning, she&#8217;d rather repro on the current codebase. She enables the audit log on the client that’s allegedly going to be the victim of this scenario. She taps the tip of that red branch and her PC&#8217;s displays take on the appearance of a surveillance system as the various game clients start up one by one and begin replaying the session that lead to the freeze. She rouses the cat from her lap and heads to the kitchen for a coffee.</p>
<p>Five minutes later, Kelly plops back down, coffee in hand. Bingo, it&#8217;s still busted. The game phase coroutine is stuck. At least it’s deterministic this time. Looks like the player was in the middle of dismounting their horse when the game froze. The coroutine’s waiting on the end of the dismount animation, but it never comes.</p>
<p>Oddly enough, the player’s current animation isn’t dismount. Where the hell did that value come from? Kelly has her IDE generate a data flow tree for the state variable. Her PC grinds away at rerunning execution from the last checkpoint.</p>
<p>The character animation state machine was a mess of amateurish hacks they&#8217;d picked up at auction from a somewhat unluckier project that&#8217;d gone belly up. They’d come to regret cutting that particular corner.</p>
<p>Aha! The state is passed around as if the authors were laundering a drug fortune, but the root of the problem is that a grapple interrupted the dismount. This isn&#8217;t supposed to happen. Dismount is sacrosanct.</p>
<p>Who implemented grapples? She squints at the fine print in the blame margin of the editor window.</p>
<p>“Radko (12/10/21): Fix exploit where jumps cancel grapples“</p>
<p>Hmm, where in the world is Radko Stamboliyski? Remote contractors had been going AWOL since the finances starting looking bad. They haven’t been able to get in touch with him for a week. He could be anywhere in Bulgaria. Hell, maybe the Bulgaria thing was a lie all along? Either way, she&#8217;s not getting an explanation for that commit.</p>
<p>A quick check in the animation timeline reveals the problem. The annotation that suppresses the animation being interrupted stops a frame short of the end. Argh! First frame inclusive, last frame exclusive! When will people learn.</p>
<p>One frame glitch. That explains why it survived until now. Hardly seemed worth the panic. Looks like the fangirls might get their Renaissance action-romance after all.</p>
<h3>Inspired by:</h3>
<ul>
<li>Slightly Mad Studios <a href="http://www.wmdportal.com/">living up to their name</a></li>
<li>The <a href="http://inform7.com/learn/man/doc7.html">Inform 7 Skein</a></li>
<li><a href="http://robert.ocallahan.org/2006/12/new-approach-to-debugging_27.html">Reversible Debugging</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wildgeese.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wildgeese.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wildgeese.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wildgeese.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wildgeese.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wildgeese.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wildgeese.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wildgeese.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wildgeese.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wildgeese.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wildgeese.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wildgeese.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wildgeese.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wildgeese.wordpress.com/315/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mostlytigerproof.com&amp;blog=180258&amp;post=315&amp;subd=wildgeese&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.mostlytigerproof.com/2011/10/17/game-development-in-2021/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f0341601dd0aa0eda5e683a816dcbad8?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">craigtimpany</media:title>
		</media:content>
	</item>
		<item>
		<title>A day in the life of a game coder &#8211; late Beta phase</title>
		<link>http://blog.mostlytigerproof.com/2007/06/17/a-day-in-the-life-of-a-game-coder-late-beta-phase/</link>
		<comments>http://blog.mostlytigerproof.com/2007/06/17/a-day-in-the-life-of-a-game-coder-late-beta-phase/#comments</comments>
		<pubDate>Sat, 16 Jun 2007 23:39:50 +0000</pubDate>
		<dc:creator>Craig Timpany</dc:creator>
				<category><![CDATA[Tales of Bug Horror]]></category>

		<guid isPermaLink="false">http://wildgeese.wordpress.com/2007/06/17/a-day-in-the-life-of-a-game-coder-late-beta-phase/</guid>
		<description><![CDATA[Bug #19452 &#8211; Game crashes on main menu! Found by: Larry Tester Assigned to: J. Random Hacker Priority: Super Urgent Description: When I pick 1-player from the main menu, the game crashes! Reproduction steps: Play an 8-player multiplayer game for half an hour on the &#8216;Cliffs of Precipity&#8217;map. Quit via the pause menu. Reboot the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mostlytigerproof.com&amp;blog=180258&amp;post=15&amp;subd=wildgeese&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3>Bug #19452 &#8211; Game crashes on main menu!</h3>
<table>
<tr>
<td>Found by:</td>
<td>Larry Tester</td>
</tr>
<tr>
<td>Assigned to:</td>
<td>J. Random Hacker</td>
</tr>
<tr>
<td>Priority:</td>
<td>Super Urgent</td>
</tr>
<tr>
<td>Description:</td>
<td>When I pick 1-player from the main menu, the game crashes!</td>
</tr>
</table>
<h4>Reproduction steps:</h4>
<ol>
<li>Play an 8-player multiplayer game for half an hour on the &#8216;Cliffs of Precipity&#8217;map.</li>
<li>Quit via the pause menu.</li>
<li>Reboot the console.</li>
<li>Go to lunch, eat a meat pie.</li>
<li>Come back, press X until the splash screens are gone.</li>
<li>Pick 1-player item from the main menu</li>
</ol>
<table>
<tr>
<td>Actual Result:</td>
<td>Game crashes.</td>
</tr>
<tr>
<td>Expected Result:</td>
<td>Game does not crash.</td>
</tr>
</table>
<h5>Comment #1 by Larry Tester:</h5>
<blockquote><p> Oh my god! It happened again, but this time I ate a curry chicken pie. Filling is not a factor. It&#8217;s the PASTRY that&#8217;s disrupting the game.</p></blockquote>
<h5>Comment #2 by J. Random Hacker</h5>
<blockquote><p> Can&#8217;t reproduce this. My software wouldn&#8217;t crash on a mere menu selection. Please stop reopening this, I&#8217;m busy enough without having to sort through these fever-addled ravings.</p>
<p><strong>Status changed: </strong>Open → Closed: Testers Smoking Crack</p></blockquote>
<h5>Comment #3 by Larry Tester:</h5>
<blockquote><p> Why are you so mean to us?</p>
<p><strong>Attached: </strong>VideoEvidence.avi</p>
<p><strong>Status changed: </strong>Reopened</p></blockquote>
<h5>Comment #4 by J. Random Hacker</h5>
<blockquote><p> Recommending that management reduce the crack rations of the test team.</p>
<p><strong>Status changed: </strong>Open → Closed: Testers Smoking Crack</p></blockquote>
<h5>Comment #5 by J. Random Hacker</h5>
<blockquote><p> Uh, I think I&#8217;ve found a fix.</p>
<p>I was stepping through the menu selection code and accidentally happened to step into the C runtime. Luckily Magic Kev was walking past. He caught a glimpse of the disassembly window. Something in that asm freaked him right out &#8211; he came to an abrupt stop, pointed at the listing and was shrieking &#8220;NO! NO! NO!&#8221; over and over until we managed to force-feed him his epilepsy pills.</p>
<p>When I took a closer look I realised I was looking at malloc, the non-threadsafe version. Turns out there was a mix-up in the project settings a couple of weeks ago. Magic Kev was right again. How does he do it??</p>
<p><strong>Status changed: </strong>Fixed</p>
<p>I&#8217;m terribly sorry and obviously I&#8217;m rescinding my recommendation to management about crack. Test team crack rations should be maintained at their current levels, if not greatly increased.</p></blockquote>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wildgeese.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wildgeese.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wildgeese.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wildgeese.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wildgeese.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wildgeese.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wildgeese.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wildgeese.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wildgeese.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wildgeese.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wildgeese.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wildgeese.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wildgeese.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wildgeese.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wildgeese.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wildgeese.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.mostlytigerproof.com&amp;blog=180258&amp;post=15&amp;subd=wildgeese&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.mostlytigerproof.com/2007/06/17/a-day-in-the-life-of-a-game-coder-late-beta-phase/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f0341601dd0aa0eda5e683a816dcbad8?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">craigtimpany</media:title>
		</media:content>
	</item>
	</channel>
</rss>
