<?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: Test Driven Game Development</title>
	<atom:link href="http://www.doolwind.com/blog/test-driven-game-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.doolwind.com/blog/test-driven-game-development/</link>
	<description>Pragmatic Thoughts On Game Development</description>
	<lastBuildDate>Thu, 29 Jul 2010 11:00:29 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Chris</title>
		<link>http://www.doolwind.com/blog/test-driven-game-development/comment-page-1/#comment-706</link>
		<dc:creator>Chris</dc:creator>
		<pubDate>Fri, 04 Dec 2009 16:45:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=177#comment-706</guid>
		<description>You need tests to test the tests! :-D</description>
		<content:encoded><![CDATA[<p>You need tests to test the tests! <img src='http://www.doolwind.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Doolwind</title>
		<link>http://www.doolwind.com/blog/test-driven-game-development/comment-page-1/#comment-705</link>
		<dc:creator>Doolwind</dc:creator>
		<pubDate>Wed, 23 Sep 2009 21:10:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=177#comment-705</guid>
		<description>Cliff-

I definitely agree that TDD applies really well to API, helpers etc, I think there is also validity in testing gameplay.  The tests will certainly take a different shape and will serve a completely different purpose.  Rather than just testing validity of the code they will serve as a pseudo-design document outlining how the designers expect their game entities to behave.

Good call on the issue with my example.  I&#039;ve updated to include a call to Update().  I left this out originally for clarity but in doing so I&#039;ve created more confusion :).

&lt;em&gt;&quot;I guess you could pre-calculate his trajectory if you were using simple maths for your character movement, but what if you’re adding acceleration over time to his jump (your own physics)?&quot;&lt;/em&gt;

This actually leads into an interesting topic I&#039;ve been thinking about lately.  I&#039;m a big fan of deterministic movement in games (specifically that at any time x, you know exactly where every game entity will be).  I might even write my thoughts up in a future blog.  The need arose when I was thinking about having tens or hundreds of thousands of game entities in a multiplayer match.

&lt;em&gt;&quot;Perhaps in these cases you need to write extra code specifically for the test? Doesn’t this mean more maintenance?&quot;&lt;/em&gt;

You are correct that TDD will require a lot more code.  Some put it in the order of 10x more testing code than actual production code.  This is one of the reasons people don&#039;t like TDD.  From experience though, I find that the confidence and testability gained from the code easily pays for itself.  It does bring up the interesting point of what happens if the test&#039;s themselves have bugs :)</description>
		<content:encoded><![CDATA[<p>Cliff-</p>
<p>I definitely agree that TDD applies really well to API, helpers etc, I think there is also validity in testing gameplay.  The tests will certainly take a different shape and will serve a completely different purpose.  Rather than just testing validity of the code they will serve as a pseudo-design document outlining how the designers expect their game entities to behave.</p>
<p>Good call on the issue with my example.  I&#8217;ve updated to include a call to Update().  I left this out originally for clarity but in doing so I&#8217;ve created more confusion <img src='http://www.doolwind.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><em>&#8220;I guess you could pre-calculate his trajectory if you were using simple maths for your character movement, but what if you’re adding acceleration over time to his jump (your own physics)?&#8221;</em></p>
<p>This actually leads into an interesting topic I&#8217;ve been thinking about lately.  I&#8217;m a big fan of deterministic movement in games (specifically that at any time x, you know exactly where every game entity will be).  I might even write my thoughts up in a future blog.  The need arose when I was thinking about having tens or hundreds of thousands of game entities in a multiplayer match.</p>
<p><em>&#8220;Perhaps in these cases you need to write extra code specifically for the test? Doesn’t this mean more maintenance?&#8221;</em></p>
<p>You are correct that TDD will require a lot more code.  Some put it in the order of 10x more testing code than actual production code.  This is one of the reasons people don&#8217;t like TDD.  From experience though, I find that the confidence and testability gained from the code easily pays for itself.  It does bring up the interesting point of what happens if the test&#8217;s themselves have bugs <img src='http://www.doolwind.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cliff</title>
		<link>http://www.doolwind.com/blog/test-driven-game-development/comment-page-1/#comment-704</link>
		<dc:creator>Cliff</dc:creator>
		<pubDate>Wed, 16 Sep 2009 03:45:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=177#comment-704</guid>
		<description>I&#039;m not sure how well TDD will apply to high level concepts such as a character jumping. I can definitely see its use for Engine APIs, Helper functions, etc though.

Take your example of Mario. Everything in that example is fine, except for the mario.Jump(Right);

Normally you&#039;d map that to a key, press the key and it plays out over multiple frames. Wouldn&#039;t you need a specific function that tests Jump in this way as opposed to directly calling it? I.e. you need to block that call till  the physics finishes for the test case, but during the game you&#039;d just call Jump and immediately return, letting it play out over several frames.

I guess you could pre-calculate his trajectory if you were using simple maths for your character movement, but what if you&#039;re adding acceleration over time to his jump (your own physics)?

What if you had a physics system using dynamic rigid bodies and adding forces? You&#039;d need to let it simulate for a while until you know he&#039;s done jumping.

Perhaps in these cases you need to write extra code specifically for the test? Doesn&#039;t this mean more maintenance?

Just some thoughts :)

Cliff</description>
		<content:encoded><![CDATA[<p>I&#8217;m not sure how well TDD will apply to high level concepts such as a character jumping. I can definitely see its use for Engine APIs, Helper functions, etc though.</p>
<p>Take your example of Mario. Everything in that example is fine, except for the mario.Jump(Right);</p>
<p>Normally you&#8217;d map that to a key, press the key and it plays out over multiple frames. Wouldn&#8217;t you need a specific function that tests Jump in this way as opposed to directly calling it? I.e. you need to block that call till  the physics finishes for the test case, but during the game you&#8217;d just call Jump and immediately return, letting it play out over several frames.</p>
<p>I guess you could pre-calculate his trajectory if you were using simple maths for your character movement, but what if you&#8217;re adding acceleration over time to his jump (your own physics)?</p>
<p>What if you had a physics system using dynamic rigid bodies and adding forces? You&#8217;d need to let it simulate for a while until you know he&#8217;s done jumping.</p>
<p>Perhaps in these cases you need to write extra code specifically for the test? Doesn&#8217;t this mean more maintenance?</p>
<p>Just some thoughts <img src='http://www.doolwind.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Cliff</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Doolwind</title>
		<link>http://www.doolwind.com/blog/test-driven-game-development/comment-page-1/#comment-703</link>
		<dc:creator>Doolwind</dc:creator>
		<pubDate>Tue, 15 Sep 2009 00:03:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=177#comment-703</guid>
		<description>Thanks Bleevo, have fixed it.</description>
		<content:encoded><![CDATA[<p>Thanks Bleevo, have fixed it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bleevo</title>
		<link>http://www.doolwind.com/blog/test-driven-game-development/comment-page-1/#comment-702</link>
		<dc:creator>bleevo</dc:creator>
		<pubDate>Tue, 15 Sep 2009 00:02:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=177#comment-702</guid>
		<description>it says 50 pixel gap not 20</description>
		<content:encoded><![CDATA[<p>it says 50 pixel gap not 20</p>
]]></content:encoded>
	</item>
</channel>
</rss>
