<?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>Garshasp Development Blog &#187; code</title>
	<atom:link href="http://dev.garshasp.ir/blog/archives/category/code/feed" rel="self" type="application/rss+xml" />
	<link>http://dev.garshasp.ir/blog</link>
	<description>The stuff that our lives are made of!</description>
	<lastBuildDate>Wed, 18 May 2011 07:01:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Sharif CGS 2010 Presentations</title>
		<link>http://dev.garshasp.ir/blog/archives/192</link>
		<comments>http://dev.garshasp.ir/blog/archives/192#comments</comments>
		<pubDate>Fri, 23 Apr 2010 09:53:12 +0000</pubDate>
		<dc:creator>Yaser Zhian</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[Engine]]></category>
		<category><![CDATA[Exhibition]]></category>
		<category><![CDATA[Low-level]]></category>
		<category><![CDATA[R&D]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[production workflow]]></category>

		<guid isPermaLink="false">http://dev.garshasp.ir/blog/?p=192</guid>
		<description><![CDATA[(Well, one of them for now&#8230;) I thought I&#8217;d post the presentation I used for my talk in the conference on game development held at Sharif University a couple of months back. It&#8217;s about the decisions you have to make and the things that you should do at the beginning of a game project, to [...]]]></description>
			<content:encoded><![CDATA[<p>(Well, one of them for now&#8230;)<br />
I thought I&#8217;d post the <a href="http://yaserzt.com/blog/wp-content/uploads/2010/04/CGS10-yzt-PlanningForDebuggingDay-rev05.pdf">presentation</a> I used for my talk in the <a href="http://cgs.sharif.ir/">conference on game development</a> held at Sharif University a couple of months back.<br />
It&#8217;s about the decisions you have to make and the things that you should do at the beginning of a game project, to make your team&#8217;s and your own lives easier later on and throughout the development cycle. This is an ongoing experience and collection of ideas for me, so I&#8217;ll be looking forward to any suggestions, discussions, critique, humiliation, praise and/or whatnot!</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.garshasp.ir/blog/archives/192/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Run Please! (or how do we enjoy a cup of coffee while the bugs are being chased.)</title>
		<link>http://dev.garshasp.ir/blog/archives/184</link>
		<comments>http://dev.garshasp.ir/blog/archives/184#comments</comments>
		<pubDate>Fri, 26 Mar 2010 16:17:54 +0000</pubDate>
		<dc:creator>Yaser Zhian</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[Engine]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[No beach for you!]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[Zorvan]]></category>

		<guid isPermaLink="false">http://dev.garshasp.ir/blog/?p=184</guid>
		<description><![CDATA[In the past weeks, a very common sight at Fanafzar was a series of 4 or 5 machines, all running Garshasp on a pre-recorded command sequence (or timedemo, or whatever you might want to call it,) trying to get the game to crash or fire an assertion or behave erratically to help us pinpoint some [...]]]></description>
			<content:encoded><![CDATA[<p>In the past weeks, a very common sight at Fanafzar was a series of 4 or 5 machines, all running Garshasp on a pre-recorded command sequence (or timedemo, or whatever you might want to call it,) trying to get the game to crash or fire an assertion or behave erratically to help us pinpoint some intermittent or hard to reproduce bug.</p>
<p>First of all, we have a quite cool replay feature in Zorvan (our engine) that lets us record and then play back a game session. It&#8217;s not perfect, and not quite fit for end-users, but you wouldn&#8217;t imagine how useful it has been (and will be) to us.</p>
<p>This replay system is serving as our unit test (&#8220;You added that feature? Let&#8217;s see if the boat sequence is playable now.&#8221;) and our regression test (&#8220;You committed that fix? Let&#8217;s see if the game is still playable!!!&#8221;) and our performance test and playability test and much more. Since the structure of our game is linear by design, we can get very good coverage with a straightforward replaying of the entire game.</p>
<p>In any case, since we are almost feature-frozen now, our (programmer&#8217;s) lives mostly consist of running the game till it crashes (or does something it shouldn&#8217;t do) and then tracking down the bug and working it out.</p>
<p>I guess the next step will be finding the few major performance bottlenecks and optimizing them (that we have put off till now because they would have made debugging and adding features quite hard.)</p>
<p>My point in all this was that debugging is usually considered a gruesome and intimidating task, or boring and uninteresting at best. Right now, I quite enjoy debugging our engine and game for two main reasons: first is the replay system (which makes debugging much more effective, targeted and efficient) and second and more important is finding out bugs in my own (and our own) mental processes by finding bugs in the code that resulted from those processes.</p>
<p>It can be illuminating to find out what you had missed when you designed or implemented a piece of code, or the bugs caused by lack of communication or a problem in the general work flow (these are not common, but interesting nonetheless.) This form of revelation that results from finding a bug in your code is quite a rush and can make us better programmers.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.garshasp.ir/blog/archives/184/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Workshop Schedule</title>
		<link>http://dev.garshasp.ir/blog/archives/144</link>
		<comments>http://dev.garshasp.ir/blog/archives/144#comments</comments>
		<pubDate>Sun, 27 Sep 2009 07:22:10 +0000</pubDate>
		<dc:creator>fassihi</dc:creator>
				<category><![CDATA[3D character]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Concept Art]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[Engine]]></category>
		<category><![CDATA[Game Design]]></category>
		<category><![CDATA[Production]]></category>

		<guid isPermaLink="false">http://dev.garshasp.ir/blog/?p=144</guid>
		<description><![CDATA[The schedule for the workshops held by the Garshasp development team for the third Digital Media Festival in Tehran can be found here: http://garshasp.ir/node/178]]></description>
			<content:encoded><![CDATA[<p>The schedule for the workshops held by the Garshasp development team for the third Digital Media Festival in Tehran can be found here:</p>
<p><a href="http://garshasp.ir/node/178" target="_blank">http://garshasp.ir/node/178</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.garshasp.ir/blog/archives/144/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

