<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Bugs Are Hrd To Fix</title>
	<atom:link href="http://www.brokentoys.org/2009/11/11/bugs-are-hrd-to-fix/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brokentoys.org/2009/11/11/bugs-are-hrd-to-fix/</link>
	<description>Random Comments About Gaming And Tractors</description>
	<lastBuildDate>Thu, 09 Feb 2012 19:52:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>By: isildur</title>
		<link>http://www.brokentoys.org/2009/11/11/bugs-are-hrd-to-fix/comment-page-1/#comment-28299</link>
		<dc:creator>isildur</dc:creator>
		<pubDate>Sun, 15 Nov 2009 06:01:04 +0000</pubDate>
		<guid isPermaLink="false">http://brokentoys.org/?p=4132#comment-28299</guid>
		<description>Dunno whether to be amused or sad at Count Nerfedalot&#039;s post.  Because, in my experience, the problem is never that the designer doesn&#039;t write the spec (being the designer in question, my experience is obviously limited to what *I* do).  It&#039;s that nobody except the other designers and the QA team ever *reads* the spec.

I&#039;ve got fond memories of meetings in which I was asked questions about the design that were clearly and completely answered in the very spec we were holding the meeting to review -- the very spec that had been written weeks before and circulated to all the relevant people.  I&#039;ve recently been in a meeting where I was asked a question about the design that was answered, with a major section header identifying it, on the very same page we were at that moment reviewing.

And more than once I&#039;ve mentioned a system in passing while reviewing a different document entirely, and had the devs claim no knowledge of the system mentioned.  And get angry at me that Design had, once again, added something new to the game after the fact.  The subsystem in question had been reviewed (thoroughly, over the course of several dull hours) months beforehand by the very same devs who were now telling me they&#039;d never heard of it.  And they&#039;d signed off on it.  And requested some changes to make the system easier to implement.  Changes that I happily made.

Maybe wherever you&#039;ve worked involves lazy designers, but my experience -- across multiple projects and many, many developers -- is that getting a dev to actually go to the enormous effort to spend 20 minutes reading the spec is a nearly impossible task.

The really good devs will at least come talk to me when they finally read the spec and discover that parts of it will be too difficult to implement.  But even these devs, the cream of the crop, the devs that every designer dreams of (I&#039;ve worked with maybe 4 of these folks total ever) won&#039;t read the spec ahead of time.  They wait until the project management system says it&#039;s time to start coding the feature.

Frankly, blaming the designers is bullshit.  When the designer fucks up, that&#039;s not a bug, it&#039;s a bad game.</description>
		<content:encoded><![CDATA[<p>Dunno whether to be amused or sad at Count Nerfedalot&#8217;s post.  Because, in my experience, the problem is never that the designer doesn&#8217;t write the spec (being the designer in question, my experience is obviously limited to what *I* do).  It&#8217;s that nobody except the other designers and the QA team ever *reads* the spec.</p>
<p>I&#8217;ve got fond memories of meetings in which I was asked questions about the design that were clearly and completely answered in the very spec we were holding the meeting to review &#8212; the very spec that had been written weeks before and circulated to all the relevant people.  I&#8217;ve recently been in a meeting where I was asked a question about the design that was answered, with a major section header identifying it, on the very same page we were at that moment reviewing.</p>
<p>And more than once I&#8217;ve mentioned a system in passing while reviewing a different document entirely, and had the devs claim no knowledge of the system mentioned.  And get angry at me that Design had, once again, added something new to the game after the fact.  The subsystem in question had been reviewed (thoroughly, over the course of several dull hours) months beforehand by the very same devs who were now telling me they&#8217;d never heard of it.  And they&#8217;d signed off on it.  And requested some changes to make the system easier to implement.  Changes that I happily made.</p>
<p>Maybe wherever you&#8217;ve worked involves lazy designers, but my experience &#8212; across multiple projects and many, many developers &#8212; is that getting a dev to actually go to the enormous effort to spend 20 minutes reading the spec is a nearly impossible task.</p>
<p>The really good devs will at least come talk to me when they finally read the spec and discover that parts of it will be too difficult to implement.  But even these devs, the cream of the crop, the devs that every designer dreams of (I&#8217;ve worked with maybe 4 of these folks total ever) won&#8217;t read the spec ahead of time.  They wait until the project management system says it&#8217;s time to start coding the feature.</p>
<p>Frankly, blaming the designers is bullshit.  When the designer fucks up, that&#8217;s not a bug, it&#8217;s a bad game.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: EpicSquirt</title>
		<link>http://www.brokentoys.org/2009/11/11/bugs-are-hrd-to-fix/comment-page-1/#comment-28298</link>
		<dc:creator>EpicSquirt</dc:creator>
		<pubDate>Sat, 14 Nov 2009 10:23:29 +0000</pubDate>
		<guid isPermaLink="false">http://brokentoys.org/?p=4132#comment-28298</guid>
		<description>I am pretty sure he meant the technical side of implementing. There is really little reason wasting your resources on writing every piece of software on your own today.</description>
		<content:encoded><![CDATA[<p>I am pretty sure he meant the technical side of implementing. There is really little reason wasting your resources on writing every piece of software on your own today.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: geldonyetich</title>
		<link>http://www.brokentoys.org/2009/11/11/bugs-are-hrd-to-fix/comment-page-1/#comment-28297</link>
		<dc:creator>geldonyetich</dc:creator>
		<pubDate>Sat, 14 Nov 2009 06:54:26 +0000</pubDate>
		<guid isPermaLink="false">http://brokentoys.org/?p=4132#comment-28297</guid>
		<description>&lt;blockquote&gt;The good thing is all of these issues have been solved before and continue to be solved by old and new companies. Still many places like to reinvent the wheel or cut corners by not implementing known solutions.&lt;/blockquote&gt;
The trouble with being a game designer is that reinventing the wheel is essentially your job... at least if you plan to make something &lt;i&gt;novel&lt;/i&gt;.

It&#039;s lose/lose, don&#039;t reinvent the wheel and players complain your game is boring.  Do reinvent the wheel, and forging new ground leaves lots of room for bugs to creep in.

Of course, that wouldn&#039;t be a problem if it weren&#039;t for deadlines forcing games to market before all the kinks are ironed out.

On the flip side of that, if you&#039;ve got unlimited budget and blue light to refine your game forever, it&#039;s very shaky ground as to whether or not you&#039;ll ever release anything.  Duke Nukem Forever.  Starcraft 2.  Diablo 3.</description>
		<content:encoded><![CDATA[<blockquote><p>The good thing is all of these issues have been solved before and continue to be solved by old and new companies. Still many places like to reinvent the wheel or cut corners by not implementing known solutions.</p></blockquote>
<p>The trouble with being a game designer is that reinventing the wheel is essentially your job&#8230; at least if you plan to make something <i>novel</i>.</p>
<p>It&#8217;s lose/lose, don&#8217;t reinvent the wheel and players complain your game is boring.  Do reinvent the wheel, and forging new ground leaves lots of room for bugs to creep in.</p>
<p>Of course, that wouldn&#8217;t be a problem if it weren&#8217;t for deadlines forcing games to market before all the kinks are ironed out.</p>
<p>On the flip side of that, if you&#8217;ve got unlimited budget and blue light to refine your game forever, it&#8217;s very shaky ground as to whether or not you&#8217;ll ever release anything.  Duke Nukem Forever.  Starcraft 2.  Diablo 3.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Belsameth</title>
		<link>http://www.brokentoys.org/2009/11/11/bugs-are-hrd-to-fix/comment-page-1/#comment-28296</link>
		<dc:creator>Belsameth</dc:creator>
		<pubDate>Sat, 14 Nov 2009 01:12:35 +0000</pubDate>
		<guid isPermaLink="false">http://brokentoys.org/?p=4132#comment-28296</guid>
		<description>As a player this view is rather depressing actually... Tho not entirely unexpected.</description>
		<content:encoded><![CDATA[<p>As a player this view is rather depressing actually&#8230; Tho not entirely unexpected.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: D-0ne</title>
		<link>http://www.brokentoys.org/2009/11/11/bugs-are-hrd-to-fix/comment-page-1/#comment-28295</link>
		<dc:creator>D-0ne</dc:creator>
		<pubDate>Fri, 13 Nov 2009 17:05:49 +0000</pubDate>
		<guid isPermaLink="false">http://brokentoys.org/?p=4132#comment-28295</guid>
		<description>I could have read that if it were here.</description>
		<content:encoded><![CDATA[<p>I could have read that if it were here.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nollind Whachell</title>
		<link>http://www.brokentoys.org/2009/11/11/bugs-are-hrd-to-fix/comment-page-1/#comment-28294</link>
		<dc:creator>Nollind Whachell</dc:creator>
		<pubDate>Fri, 13 Nov 2009 16:13:05 +0000</pubDate>
		<guid isPermaLink="false">http://brokentoys.org/?p=4132#comment-28294</guid>
		<description>&quot;The good thing is all of these issues have been solved before and continue to be solved by old and new companies. Still many places like to reinvent the wheel or cut corners by not implementing known solutions.&quot;

Well said UnsGub!</description>
		<content:encoded><![CDATA[<p>&#8220;The good thing is all of these issues have been solved before and continue to be solved by old and new companies. Still many places like to reinvent the wheel or cut corners by not implementing known solutions.&#8221;</p>
<p>Well said UnsGub!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: UnsGub</title>
		<link>http://www.brokentoys.org/2009/11/11/bugs-are-hrd-to-fix/comment-page-1/#comment-28293</link>
		<dc:creator>UnsGub</dc:creator>
		<pubDate>Fri, 13 Nov 2009 15:54:37 +0000</pubDate>
		<guid isPermaLink="false">http://brokentoys.org/?p=4132#comment-28293</guid>
		<description>“But the ones that are race conditions, only happening on a heavily-loaded server, involving tens of clients performing some specific action, well these take a *little* longer than “a few hours” to fix. First you have to replicate the conditions. Often this is impossible to do internally…”

Actually those are most often one line fixes.  If a company cannot test their software over customer load, a solved problem, then they a just choosing to take that risk.


“But, after examining a few core files and lots of time spent reading server logs, *maybe* you can determine the problem and come up with a fix.”

Logging is just another feature of a software product or system that is created.  Good logging is another solved problem.


“So yeah, if you haven’t been in those trenches before, you really don’t know what it’s like.”

The books and information on being in the trenches is not much different then being in the trenches.  It is just less frustrating reading about the commons problem then experiencing them first hand.  If a software company even thinks they need to be in the trenches for anything they need to stop and get off that road.  All those roads lead to dead ends.

The good thing is all of these issues have been solved before and continue to be solved by old and new companies.  Still many places like to reinvent the wheel or cut corners by not implementing known solutions.</description>
		<content:encoded><![CDATA[<p>“But the ones that are race conditions, only happening on a heavily-loaded server, involving tens of clients performing some specific action, well these take a *little* longer than “a few hours” to fix. First you have to replicate the conditions. Often this is impossible to do internally…”</p>
<p>Actually those are most often one line fixes.  If a company cannot test their software over customer load, a solved problem, then they a just choosing to take that risk.</p>
<p>“But, after examining a few core files and lots of time spent reading server logs, *maybe* you can determine the problem and come up with a fix.”</p>
<p>Logging is just another feature of a software product or system that is created.  Good logging is another solved problem.</p>
<p>“So yeah, if you haven’t been in those trenches before, you really don’t know what it’s like.”</p>
<p>The books and information on being in the trenches is not much different then being in the trenches.  It is just less frustrating reading about the commons problem then experiencing them first hand.  If a software company even thinks they need to be in the trenches for anything they need to stop and get off that road.  All those roads lead to dead ends.</p>
<p>The good thing is all of these issues have been solved before and continue to be solved by old and new companies.  Still many places like to reinvent the wheel or cut corners by not implementing known solutions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gyrus</title>
		<link>http://www.brokentoys.org/2009/11/11/bugs-are-hrd-to-fix/comment-page-1/#comment-28292</link>
		<dc:creator>gyrus</dc:creator>
		<pubDate>Fri, 13 Nov 2009 11:03:47 +0000</pubDate>
		<guid isPermaLink="false">http://brokentoys.org/?p=4132#comment-28292</guid>
		<description>If anyone from CRS still reads these boards they might be able to answer?
They have been rebuilding their engine.</description>
		<content:encoded><![CDATA[<p>If anyone from CRS still reads these boards they might be able to answer?<br />
They have been rebuilding their engine.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Claw</title>
		<link>http://www.brokentoys.org/2009/11/11/bugs-are-hrd-to-fix/comment-page-1/#comment-28291</link>
		<dc:creator>The Claw</dc:creator>
		<pubDate>Fri, 13 Nov 2009 06:45:37 +0000</pubDate>
		<guid isPermaLink="false">http://brokentoys.org/?p=4132#comment-28291</guid>
		<description>One thing I&#039;d add to that, is that code is often fragile, and game code is often &lt;i&gt;particularly&lt;/i&gt; fragile, given that for much of the history of game development it has been a &quot;get it working and get it out the door, then never touch the code again&quot; model.

I know I&#039;ve seen some head-scratchingly bizarre regressions in MMOs, where areas not touched in any way by a patch have somehow been broken by it. I shudder to think how much special-casing and &quot;magic&quot; code there must be in the years-old codebases of major MMOs.</description>
		<content:encoded><![CDATA[<p>One thing I&#8217;d add to that, is that code is often fragile, and game code is often <i>particularly</i> fragile, given that for much of the history of game development it has been a &#8220;get it working and get it out the door, then never touch the code again&#8221; model.</p>
<p>I know I&#8217;ve seen some head-scratchingly bizarre regressions in MMOs, where areas not touched in any way by a patch have somehow been broken by it. I shudder to think how much special-casing and &#8220;magic&#8221; code there must be in the years-old codebases of major MMOs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vaxhacker</title>
		<link>http://www.brokentoys.org/2009/11/11/bugs-are-hrd-to-fix/comment-page-1/#comment-28290</link>
		<dc:creator>Vaxhacker</dc:creator>
		<pubDate>Thu, 12 Nov 2009 20:48:30 +0000</pubDate>
		<guid isPermaLink="false">http://brokentoys.org/?p=4132#comment-28290</guid>
		<description>Two phrases that every MMO programmer uses liberally:  &quot;That&#039;s not a bug, that&#039;s a feature&quot; (i.e. &quot;Go away, I&#039;m busy&quot;) and &quot;Broken as designed&quot; (i.e. &quot;It&#039;s exactly what the designer asked for, go bother them about it&quot;).  But seriously...

&quot;Developers should be able to fix a bug within hours, if they aren’t, they need to relearn programming/software development, writing clean code and fixing bugs is part of it.&quot;

Not so much with an MMO, at least not in general.  Sure, the small, easily reproduced bugs that only affect a single code module or system...  But the ones that are race conditions, only happening on a heavily-loaded server, involving tens of clients performing some specific action, well these take a *little* longer than &quot;a few hours&quot; to fix.

First you have to replicate the conditions.  Often this is impossible to do internally (don&#039;t kid yourself thinking there are hundreds of QA testers at your beck and call).  Then you find that the server executable with extra logging / profiling / debugging code doesn&#039;t behave like the live server.  And then there&#039;s digging into the multiple layers of interacting systems to find out what&#039;s going on.  Keep in mind you often can&#039;t run a server process inside an interactive debugger, because sitting at a breakpoint for more than a few seconds will most likely cause the rest of the system to do bad things.  And, you also may have to deal with two very different codebases - the C++ &quot;server proper&quot; and &quot;game code&quot; written in a scripting language (that doesn&#039;t have a real debugger...not that you could use it).

But, after examining a few core files and lots of time spent reading server logs, *maybe* you can determine the problem and come up with a fix.  Assuming, of course, that it&#039;s not a issue that is endemic to the underlying technical design (e.g. timing-related, or due to asynchronous processing), or a hardware failure that&#039;s difficult to detect.  Then you&#039;re basically screwed, and the best to hope for you is to try to minimize the chance of occurrence.

So yeah, if you haven&#039;t been in those trenches before, you really don&#039;t know what it&#039;s like.  It&#039;s no wonder that even catastrophic failures that only happen &quot;once in a blue moon&quot; are just left alone.</description>
		<content:encoded><![CDATA[<p>Two phrases that every MMO programmer uses liberally:  &#8220;That&#8217;s not a bug, that&#8217;s a feature&#8221; (i.e. &#8220;Go away, I&#8217;m busy&#8221;) and &#8220;Broken as designed&#8221; (i.e. &#8220;It&#8217;s exactly what the designer asked for, go bother them about it&#8221;).  But seriously&#8230;</p>
<p>&#8220;Developers should be able to fix a bug within hours, if they aren’t, they need to relearn programming/software development, writing clean code and fixing bugs is part of it.&#8221;</p>
<p>Not so much with an MMO, at least not in general.  Sure, the small, easily reproduced bugs that only affect a single code module or system&#8230;  But the ones that are race conditions, only happening on a heavily-loaded server, involving tens of clients performing some specific action, well these take a *little* longer than &#8220;a few hours&#8221; to fix.</p>
<p>First you have to replicate the conditions.  Often this is impossible to do internally (don&#8217;t kid yourself thinking there are hundreds of QA testers at your beck and call).  Then you find that the server executable with extra logging / profiling / debugging code doesn&#8217;t behave like the live server.  And then there&#8217;s digging into the multiple layers of interacting systems to find out what&#8217;s going on.  Keep in mind you often can&#8217;t run a server process inside an interactive debugger, because sitting at a breakpoint for more than a few seconds will most likely cause the rest of the system to do bad things.  And, you also may have to deal with two very different codebases &#8211; the C++ &#8220;server proper&#8221; and &#8220;game code&#8221; written in a scripting language (that doesn&#8217;t have a real debugger&#8230;not that you could use it).</p>
<p>But, after examining a few core files and lots of time spent reading server logs, *maybe* you can determine the problem and come up with a fix.  Assuming, of course, that it&#8217;s not a issue that is endemic to the underlying technical design (e.g. timing-related, or due to asynchronous processing), or a hardware failure that&#8217;s difficult to detect.  Then you&#8217;re basically screwed, and the best to hope for you is to try to minimize the chance of occurrence.</p>
<p>So yeah, if you haven&#8217;t been in those trenches before, you really don&#8217;t know what it&#8217;s like.  It&#8217;s no wonder that even catastrophic failures that only happen &#8220;once in a blue moon&#8221; are just left alone.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

