<?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>Fri, 27 Jan 2012 00:53:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Test Driven Game Development Experiences &#8211; Doolwind&#039;s Game Coding Blog</title>
		<link>http://www.doolwind.com/blog/test-driven-game-development/comment-page-1/#comment-24357</link>
		<dc:creator>Test Driven Game Development Experiences &#8211; Doolwind&#039;s Game Coding Blog</dc:creator>
		<pubDate>Wed, 23 Nov 2011 22:32:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=177#comment-24357</guid>
		<description>[...] bad, now that we&#8217;re completely finished the first version of the project. I&#8217;ve spoken previously about Test Driven Game Development (TDGD) but a lot of that was theoretical so today I&#8217;d [...]</description>
		<content:encoded><![CDATA[<p>[...] bad, now that we&#8217;re completely finished the first version of the project. I&#8217;ve spoken previously about Test Driven Game Development (TDGD) but a lot of that was theoretical so today I&#8217;d [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Becoming A Better Game Programmer &#8211; Doolwind&#039;s Game Coding Blog</title>
		<link>http://www.doolwind.com/blog/test-driven-game-development/comment-page-1/#comment-24339</link>
		<dc:creator>Becoming A Better Game Programmer &#8211; Doolwind&#039;s Game Coding Blog</dc:creator>
		<pubDate>Tue, 08 Nov 2011 08:02:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=177#comment-24339</guid>
		<description>[...] is a great example of something I picked up from a web developer friend (and have since started evangelizing to other game programmers). Looking introspectively at your processes and development style at the [...]</description>
		<content:encoded><![CDATA[<p>[...] is a great example of something I picked up from a web developer friend (and have since started evangelizing to other game programmers). Looking introspectively at your processes and development style at the [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sargo Darya</title>
		<link>http://www.doolwind.com/blog/test-driven-game-development/comment-page-1/#comment-15251</link>
		<dc:creator>Sargo Darya</dc:creator>
		<pubDate>Tue, 05 Apr 2011 07:35:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=177#comment-15251</guid>
		<description>While testing of applications may help you hunt down bugs this is not a practicable approach in game design. As for the most games you&#039;re moving in a multi-dimensional space where the player can do many things at the same time.

Lets take your jump method as an example: You tested if the player jumps. What if the player now does make an attack while in air and jumps again? Are animations well-playing then? There is a lot you have to consider which would make the tests rather bloated. That&#039;s why you invite some testers over. They see what the computer won&#039;t see until you&#039;re so genius and implement a ingame Kinect &gt;.&gt;</description>
		<content:encoded><![CDATA[<p>While testing of applications may help you hunt down bugs this is not a practicable approach in game design. As for the most games you&#8217;re moving in a multi-dimensional space where the player can do many things at the same time.</p>
<p>Lets take your jump method as an example: You tested if the player jumps. What if the player now does make an attack while in air and jumps again? Are animations well-playing then? There is a lot you have to consider which would make the tests rather bloated. That&#8217;s why you invite some testers over. They see what the computer won&#8217;t see until you&#8217;re so genius and implement a ingame Kinect &gt;.&gt;</p>
]]></content:encoded>
	</item>
	<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>

