<?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>Dead Shift</title>
	<atom:link href="http://deadshift.com/feed" rel="self" type="application/rss+xml" />
	<link>http://deadshift.com</link>
	<description>Making something killer &#62;:]</description>
	<lastBuildDate>Wed, 27 Jan 2010 17:11:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Enhanced Crowd Rendering</title>
		<link>http://deadshift.com/blog/enhanced-crowd-rendering</link>
		<comments>http://deadshift.com/blog/enhanced-crowd-rendering#comments</comments>
		<pubDate>Tue, 26 Jan 2010 16:27:37 +0000</pubDate>
		<dc:creator>PolyVector</dc:creator>
				<category><![CDATA[Development Blog]]></category>

		<guid isPermaLink="false">http://deadshift.com/?p=199</guid>
		<description><![CDATA[Designing a new technique for Skinned Mesh Instancing that supports complex animation and uses less memory.]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="306" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/i88m8NqiAPw&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="500" height="306" src="http://www.youtube.com/v/i88m8NqiAPw&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><span id="more-199"></span>A fundamental challenge when designing a game centered around hordes of zombies is how to render a large quantity of animated characters.  A number of solutions exist, but none of them were quite suitable for Dead Shift.  In this post I will introduce a new(?) technique I&#8217;ve developed for skinned mesh instancing (aka. crowd rendering) that addresses many of the issues with the one <a href="http://http.developer.nvidia.com/GPUGems3/gpugems3_ch02.html">proposed in GPU Gems 3</a> (<a href="http://bphelpsdev.spaces.live.com/blog/cns!602815048C7B5C20!302.entry?ccr=5964#comment">and adapted for XNA</a>), making it better suited for crowds of important characters who may require animation techniques such as motion blending.</p>
<p>To start, here is a quick overview of both techniques.</p>
<p>Original Technique:</p>
<ul>
<li>Bones are stored in absolute positions, so no blending is possible.</li>
<li>Animations must be pre-baked at 30fps or 60fps resulting in large memory/storage requirements.</li>
<li>Not suitable for rendering main characters, requiring a completely separate animation system for them!</li>
</ul>
<p>My Enhanced Technique:</p>
<ul>
<li>Bones are stored in relative positions, along with skeletal hierarchy and bind-pos data needed to blend multiple frames/animations together at run-time.</li>
<li>Animations can be pre-baked at lower framerates (15fps works nicely) which drastically lowers memory/storage requirements.</li>
<li>Animation Processing is decoupled from Rendering, allowing arbitrarily complex blending/tweening routines on the GPU and re-use of processed frames between passes (ie. shadow-depth)</li>
<li>Suitable for all characters in a game, unifying all animation into a single system.</li>
</ul>
<p>The process for my technique is as follows:</p>
<ul>
<li>Pre-bake animations as usual with the <a href="http://http.developer.nvidia.com/GPUGems3/gpugems3_ch02.html">GPU Gems 3 technique</a>; output Relative Matrices, NOT Absolute Matrices.  We&#8217;ll refer to this as the &#8220;AnimationTexture&#8221;.</li>
<li>Store the Inverse BindPos as a frame in AnimationTexture, you&#8217;ll need this at runtime.  I find it&#8217;s easy to place this at Frame 0.</li>
<li>Store the Skeletal Hierarchy in a Texture for run-time access&#8230; This can be a separate texture, or simply packed into another dummy animation frame.  The important thing here is that we&#8217;ll need our shaders to be able to look up the Parent BoneIndex for any given BoneIndex&#8230;</li>
<li>Write an &#8220;Animation Processor&#8221; shader that reads frames from AnimationTexture for each character instance and generates a new texture, we&#8217;ll call this &#8220;FinalAnimationTexture&#8221;, in the format of the original GPU Gems 3 technique. Each character will need to be assigned a RowID within this new FinalAnimationTexture to read their processed frame.  Hint: If you use Multiple Render Targets, you can spit out all 3 pixels of a bone matrix at once&#8230; This eliminates the need to process bones 3x. <img src='http://deadshift.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Render Characters as usual, the only difference being that characters reference RowID in FinalAnimationTexture, instead of FrameID in AnimationTexture&#8230;</li>
<li>If bone data is required on the CPU, wait a frame and read it back.  I&#8217;ve found it far more efficient to first process all bone data we want to read back into a single texture to avoid multiple GPU to CPU transfers.</li>
</ul>
<p>The beauty of this technique lies in the &#8220;Animation Processor&#8221; shader.  Because we don&#8217;t need a World Matrix at this stage, we can easily process over 200 character animations in a single draw call.  Also, nobody says you have to use a single &#8220;Animation Processor&#8221; shader, you could write any number of shaders for different types of animation such as Inverse Kinematics.  All animation frame data simply needs to be written to FinalAnimationTexture, so perform this step however you please.</p>
<p>Now, I&#8217;m <em>far</em> too lazy to draw diagrams, write sample code, and go into extreme detail&#8230; Sorry!&#8230; Feel free to ask questions if you&#8217;re interested, and I&#8217;ll do my best to answer!  I just wanted to put this idea out there for anyone struggling with a similar problem.</p>
<p>Some useful nuggets of information:</p>
<ul>
<li>In order to perfectly sync bones between the CPU and GPU without horribly stalling the GPU, you may have to use the processed animation data from 2-3 frames back (depending on your architecture).  This means keeping a backlog of FinalAnimationTexture copies and using outdated animation info to ensure, for example, that a weapon stays perfectly in a character&#8217;s hand.</li>
<li>If you store your original AnimationTexture as Dual Quaternions (2 pixels per bone), it&#8217;s very easy to blend between frames/animations, and you use less memory.  The trick to interpolating dual quaternions is to compare them w/ a dot product and conditionally negate the second DualQuat to ensure blending moves in the right direction&#8230;  Interestingly, this step can be pre-computed at build time in the AnimationTexture so that any frame can be blindly lerp()&#8217;d with the following frame. *devious* <img src='http://deadshift.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fdeadshift.com%2Fblog%2Fenhanced-crowd-rendering&amp;linkname=Enhanced%20Crowd%20Rendering">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://deadshift.com/blog/enhanced-crowd-rendering/feed</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Anybody Home?</title>
		<link>http://deadshift.com/blog/anybody-home</link>
		<comments>http://deadshift.com/blog/anybody-home#comments</comments>
		<pubDate>Thu, 14 Jan 2010 11:21:47 +0000</pubDate>
		<dc:creator>PolyVector</dc:creator>
				<category><![CDATA[Development Blog]]></category>

		<guid isPermaLink="false">http://deadshift.com/?p=186</guid>
		<description><![CDATA[Working like crazy, trying to get a demo together in time for DBP 2010.]]></description>
			<content:encoded><![CDATA[<div id="attachment_185" class="wp-caption alignnone" style="width: 510px"><a href="/wp-content/uploads/2009/10/BloodyBat.png" rel="shadowbox[post-186];player=img;"><img class="size-medium wp-image-185" src="/wp-content/uploads/2009/10/BloodyBat-500x281.png" alt="Come out and Play" width="500" height="281" /></a><p class="wp-caption-text">Come out and play!</p></div>
<p><span id="more-186"></span>Sometimes working on a game can be actual work&#8230; scary huh?  Recently I&#8217;ve been really getting down into the guts of my engine and adding countless little features, fixing little problems, and ripping out a little more hair&#8230;  Some of the changes since I last posted are&#8230; *drum roll*</p>
<ul>
<li>Added Proper Transparency w/ shadow-casting for grass, trees, etc&#8230;</li>
<li>Fixed Depth buffer issues causing Early-Z probs, Shadow Acne, performance, etc&#8230;</li>
<li>Added a Particle System (Dust, Blood)</li>
<li>Added Vehicle Physics (something has to kick up dust!)</li>
<li>Added Weapon Sensors / Injuries (someone has to bleed!)</li>
<li>Added An Entity &#8220;messaging system&#8221; to control communication in a thread safe way&#8230; instructions like &#8220;you die now, I hit you&#8221; shouldn&#8217;t cause a race condition. <img src='http://deadshift.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Purchased a ton more models (houses, knives, machetes, guns, bats, etc, etc, etc, etc, etc, etc) and somehow my Skunkie hasn&#8217;t left me for spending money on such crap! <img src='http://deadshift.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>So what&#8217;s next?  Well, the <a href="http://dreambuildplay.com">DreamBuildPlay 2010</a> competition is coming up in less than 2 fekkin&#8217; months! I&#8217;d really like to enter this year but I don&#8217;t know how realistic that is&#8230;  I need to rework the (bloated and complex) animation system to fix the horrible looking blending and add some much needed flexibility, and I really need to put more work into the physics and collision systems&#8230; If those two major issues work out quickly I may be able to throw something together in time&#8230;  Either way, I&#8217;ll try to get a new video together one of these days for my 5 or so die-hard fans! <img src='http://deadshift.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fdeadshift.com%2Fblog%2Fanybody-home&amp;linkname=Anybody%20Home%3F">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://deadshift.com/blog/anybody-home/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>A New Video</title>
		<link>http://deadshift.com/blog/a-new-video</link>
		<comments>http://deadshift.com/blog/a-new-video#comments</comments>
		<pubDate>Wed, 09 Dec 2009 20:53:12 +0000</pubDate>
		<dc:creator>PolyVector</dc:creator>
				<category><![CDATA[Development Blog]]></category>

		<guid isPermaLink="false">http://deadshift.com/?p=160</guid>
		<description><![CDATA[A new video showing off improved physics, collision detection, and graphics...
Needs optimization, but looks good. :D]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="306" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/pZoNyrsUYlk&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="500" height="306" src="http://www.youtube.com/v/pZoNyrsUYlk&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fdeadshift.com%2Fblog%2Fa-new-video&amp;linkname=A%20New%20Video">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://deadshift.com/blog/a-new-video/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Feeling Like a Wreck</title>
		<link>http://deadshift.com/blog/feeling-like-a-wreck</link>
		<comments>http://deadshift.com/blog/feeling-like-a-wreck#comments</comments>
		<pubDate>Sat, 14 Nov 2009 00:45:28 +0000</pubDate>
		<dc:creator>PolyVector</dc:creator>
				<category><![CDATA[Development Blog]]></category>

		<guid isPermaLink="false">http://deadshift.com/?p=100</guid>
		<description><![CDATA[Hunting down asset packs, and getting very little actual work done.]]></description>
			<content:encoded><![CDATA[<div id="attachment_102" class="wp-caption alignnone" style="width: 510px"><a href="/wp-content/uploads/2009/11/Xbox-360-3.png" rel="shadowbox[post-100];player=img;"><img class="size-medium wp-image-102" src="/wp-content/uploads/2009/11/Xbox-360-3-500x281.png" alt="" width="500" height="281" /></a><p class="wp-caption-text">Watch where you&#39;re going!</p></div>
<p><span id="more-100"></span>So I&#8217;ve been in a programming rut as of late.  I have gotten a little work done here and there, but for the most part I&#8217;ve been just sitting on the couch watching a seemingly never-ending <a href="http://abc.go.com/shows/lost">LOST</a> marathon.  I decided the other day that if I&#8217;m doomed to have coder&#8217;s block, I might as well search for some asset packs that I can throw into my game with little effort.  I found a great <a href="http://www.eivaagames.com/contentpacks/broken-cars-pack/">Broken Cars Pack</a> over at <a href="http://www.eivaagames.com/">Eivaa Games</a>, and they were nice enough to re-export all of the models for me due to a compatibility issue with their OBJ files.  The pack has since been updated w/ more-compatible OBJ, as well as FBX versions.</p>
<p>So, let&#8217;s all be just a little bit productive and build a list of <em>quality</em> asset pack providers for indie game developers. <img src='http://deadshift.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<ul>
<li><a href="http://www.eivaagames.com/contentpacks/">Eivaa Games</a> &#8211; Small collection (Broken Cars, Foliage, Props, Stones, SoundFX)</li>
<li><a href="http://www.dexsoft-games.com/models/">Dexsoft Multimedia</a> &#8211; Large collection (Sci-fi, Fantasy, Cartoon, Modern, Vegitation, Characters, Misc)</li>
<li><a href="http://www.fpscreator.com/">FPSCreator</a> &#8211; Massive Packs of Assets! (Environment, Props, Characters)</li>
<li><a href="http://www.3drt.com/3dm/3dm.htm">3DRT</a> &#8211; Large collection (Characters, Vehicles, Environments)</li>
<li><a href="http://evolver.com">Evolver</a> &#8211; Online Character creator.  Surprisingly high quality characters, and you can choose Format/LOD/skeleton/etc when you buy.</li>
<li><a href="http://www.animeeple.com">Animeeple</a> &#8211; Massive collection of Motion Captures/Animations&#8230; Accessed using (free) outstanding animation software&#8230; Compatible with Evolver <img src='http://deadshift.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li><a href="http://gothasoft.com/">GothaSoft</a> &#8211; A single pack of Suburban Houses&#8230; They look quite nice though. <img src='http://deadshift.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li><a href="http://3d4ya.com/">3d4ya</a> &#8211; Medium collection (Characters, Props)</li>
<li><a href="http://3dbud.com/">3dBud</a> &#8211; Medium collection (Characters, Animals)&#8230; 3d4ya&#8217;s sister site</li>
<li><a href="http://www.garagegames.com/products/browse/artpacks">GarageGames</a> &#8211; Medium Collection (Large Environment Packs, Characters, Props, Sounds)
<ul>
<li><em><strong>Warning</strong>: If you don&#8217;t use Torque, read the &#8220;Features&#8221; of each pack closely!  I recently bought a &#8220;Combo Pack&#8221; and only some sub-packs were usable outside of Torque.  Even the packs that specified they contain .OBJ files don&#8217;t seem to have them for every model&#8230;</em> *grumble*</li>
</ul>
</li>
<li><a href="http://www.game-stuff.com/">Game Stuff</a> &#8211; Large collection (Completed Game Levels, Buildings, Weapons, Plants)&#8230; A bit pricey/high-poly for my tastes.</li>
<li><a href="http://www.darkroomstudios.com/component/page,shop.browse/category_id,2/option,com_virtuemart/Itemid,1/">Darkroom Studios</a> &#8211; Small collection, mostly repeats from Dexsoft, but some nice additions.</li>
<li><a href="http://www.monsterpacks.com/">MonsterPacks</a> &#8211; Small collection (Haunted House, Graveyard, Sci-fi, etc)&#8230; These may or may not suffer from the same problems as other Torque (GarageGames) packs.</li>
</ul>
<p>If you know of any other <em>quality</em> resources for asset packs, post a comment and I&#8217;ll add it to the list! <img src='http://deadshift.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fdeadshift.com%2Fblog%2Ffeeling-like-a-wreck&amp;linkname=Feeling%20Like%20a%20Wreck">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://deadshift.com/blog/feeling-like-a-wreck/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Learning to Live With Physical Limitations</title>
		<link>http://deadshift.com/blog/learning-to-live-with-physical-limitations</link>
		<comments>http://deadshift.com/blog/learning-to-live-with-physical-limitations#comments</comments>
		<pubDate>Mon, 02 Nov 2009 03:52:16 +0000</pubDate>
		<dc:creator>PolyVector</dc:creator>
				<category><![CDATA[Development Blog]]></category>

		<guid isPermaLink="false">http://deadshift.com/?p=62</guid>
		<description><![CDATA[A look at how XNA's performance issues on the Xbox360 affect how indie developers should approach the problem of physics.]]></description>
			<content:encoded><![CDATA[<div id="attachment_71" class="wp-caption alignnone" style="width: 510px"><a href="/wp-content/uploads/2009/11/37720565.png" rel="shadowbox[post-62];player=img;"><img class="size-medium wp-image-71" src="/wp-content/uploads/2009/11/37720565-500x281.png" alt="" width="500" height="281" /></a><p class="wp-caption-text">What is it with games and crates?</p></div>
<p><span id="more-62"></span>For over half a year now I&#8217;ve been tinkering away at my engine, hoping to create some amazing &#8220;Dawn of the Dead Theft Auto&#8221; game with hundreds of onscreen zombies interacting with thousands of physical objects&#8230;  To achieve this I&#8217;ve probably tracked down every managed physics engine/demo/snippet in existence, and what I&#8217;ve come to realize is that my time would have been better spent setting unicorn traps.  The fact of the matter is that XNA on the Xbox360 could never handle a simulation this complex unless the invading zombie horde was taking a siesta&#8230; or we were willing to sacrifice a bit of realism.</p>
<h3>Thinking Last-Gen</h3>
<p>While XNA is able to harness nearly all of the Xbox360&#8217;s GPU goodness, for reasons I won&#8217;t get into here we need to treat the CPU more like a Dreamcast.  So we need to ask ourselves if we want a small-scale realistic game, or a large-scale fun game?  If you&#8217;re shooting for the former, get the latest copy of JigLibX and make your life easy&#8230; If you belong to my unlucky camp and wish to make a large physics-heavy game, be prepared to write your own engine or think up a different game.</p>
<div class="wp-caption alignnone" style="width: 510px"><a href="/wp-content/uploads/2009/11/Xbox-360-2.png" rel="shadowbox[post-62];player=img;"><img src="/wp-content/uploads/2009/11/Xbox-360-2-500x281.png" alt="Zombie Physics 101" width="500" height="281" /></a><p class="wp-caption-text">Zombie Physics 101</p></div>
<h3>Learn From My Mistakes</h3>
<p>While the physics in Dead Shift are far from complete, they&#8217;ve shown enough promise that I would like to share some of the things I&#8217;ve learned the hard way&#8230;</p>
<ul>
<li>Verlet Physics are no replacement for Rigid Body Dynamics.  Verlet systems may seem easy to design, but they are hard to control, hard to stabilize, and the countless constraints required will kill your performance anyway.</li>
<li>Forget about fancy contact resolution, shock propagation, stacking, etc.  When you have a mind-blowingly fast engine, you can think about adding these things.</li>
<li>You can approximate basically any shape with a series of spheres.  They&#8217;re easy to move around, they&#8217;re easy to test for collisions with, and you don&#8217;t have to worry much about coordinate spaces and costly matrix multiplications.</li>
<li>KD-Trees are easier to implement than Octrees, and with a decent SAH (Surface Area Heuristic) they can be much faster too!</li>
<li>Avoid building/clearing temporary Lists at all costs.  Have your collision detection test-as-you-traverse to avoid building lists of polygons or nodes.</li>
<li>Split up work on multiple cores <em>anywhere you can!</em></li>
<li>Research XNA&#8217;s specific performance pitfalls on the 360.  Learn everything you can about the Garbage Collector, avoiding call-by-value functions, manual inlining, etc.</li>
<li>Be prepared to lose sleep, and a bit of sanity.</li>
</ul>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="295" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/aRjZzzmJAIQ&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="295" src="http://www.youtube.com/v/aRjZzzmJAIQ&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Here are some resources that I&#8217;ve found useful for my little physics experiment:</p>
<ul>
<li>XNAMike&#8217;s port of some physics code.  I adapted an impulse response method from this sample.  [<a href="http://forums.xna.com/forums/t/17242.aspx">Forum Post</a>] [<a href="/wp-content/uploads/2009/11/XNAPhysics3.zip">Zip</a>]</li>
<li>Jacco Bikker&#8217;s explanation of KD-Trees. [<a href="http://www.devmaster.net/articles/raytracing_series/part7.php">Article</a>]</li>
<li>Olivier Renault&#8217;s example collision code.  Good example of OBB-&gt;OBB Separating Axis Theorem. [<a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=193500&amp;whichpage=1&amp;#1213168">Forum Post</a>] [<a href="http://members.lycos.co.uk/olivierrenault/">Homepage</a>]</li>
<li>Ralph Morton&#8217;s &#8220;Icarus&#8221; physics engine.  I haven&#8217;t had much time to play with this, but it looks to be a very clean and basic engine.  No license, do what you want with it! [<a href="http://forums.tidemedia.co.za/nag/showthread.php?t=10132">Forum Post</a>] [<a href="/wp-content/uploads/2009/11/Icarus_END.zip">Zip</a>]</li>
</ul>
<p><strong>Edit (11/28/2009):</strong> Added some links to useful resources.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fdeadshift.com%2Fblog%2Flearning-to-live-with-physical-limitations&amp;linkname=Learning%20to%20Live%20With%20Physical%20Limitations">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://deadshift.com/blog/learning-to-live-with-physical-limitations/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Where We&#8217;re At</title>
		<link>http://deadshift.com/blog/where-were-at</link>
		<comments>http://deadshift.com/blog/where-were-at#comments</comments>
		<pubDate>Wed, 28 Oct 2009 02:16:50 +0000</pubDate>
		<dc:creator>PolyVector</dc:creator>
				<category><![CDATA[Development Blog]]></category>

		<guid isPermaLink="false">http://deadshift.com/?p=32</guid>
		<description><![CDATA[A little more detail on what Dead Shift is really all about, the current status of the project, and where we hope to go with it.]]></description>
			<content:encoded><![CDATA[<div id="attachment_37" class="wp-caption alignnone" style="width: 510px"><a href="/wp-content/uploads/2009/10/12586310.png" rel="shadowbox[post-32];player=img;"><img class="size-medium wp-image-37  " title="Smash!" src="/wp-content/uploads/2009/10/12586310-500x281.png" alt="12586310" width="500" height="281" /></a><p class="wp-caption-text">An old shot, but a good one.</p></div>
<p><span id="more-32"></span></p>
<p>Dead Shift is my first true attempt at  a console game since I caught the bug about 20 years ago playing MegaMan 1 on the NES.  Over the years I&#8217;ve created various mini-games on everything from an Apple ][e, to DOS, to Windows, to a hacked up Dreamcast, but I&#8217;ve never made anything close to a full game before.  So when I heard that Microsoft was allowing independent developers to create games for the Xbox360, I dropped everything I was working on to learn more about 3D game development&#8230;</p>
<h3>Body Harvest!</h3>
<p>&#8230;was a game for the Nintendo64 that faced years of setbacks and underwent countless redesigns&#8230;  <a href="http://en.wikipedia.org/wiki/Body_Harvest">The game</a> itself turned out rather buggy and lame, but what they were attempting was so inspiring that I&#8217;ve had it stuck in my head since they hyped it in the &#8217;90s&#8230;  The idea of exploring  post-apocalyptic towns and using what you find to kill off the invading horde is just plain awesome, so that&#8217;s what I&#8217;m  attempting to recreate with Dead Shift&#8230; only this time, there&#8217;s Zombies, and it&#8217;s fun.</p>
<h3>What&#8217;s the Status?</h3>
<p>Currently, the graphics and game engine (codename: &#8220;ContagiumX&#8221;) is at a very usable point.  Features such as transparency, and better animation blending are lacking, but not absolutely necessary.  Dead Shift&#8217;s physics, on the other hand, are coming along at a much slower pace.  XNA has very poor performance on the Xbox360&#8217;s Compact CLR, and this makes physics and collision detection run horribly slow in large environments.  My solution has been to write a custom physics and collision system (codename: &#8220;SmashX&#8221;) that takes these very specific limitations into account, but writing this is no easy task!  As soon as I am able to get SmashX into a usable state (improved sphere-&gt;mesh collision, sensors, vehicles, characters), then we should start seeing some serious progress being made on an actual &#8220;game&#8221; prototype.</p>
<h3>And Then What?</h3>
<p>To be honest, I have so many ideas for Dead Shift that my head is at risk of exploding&#8230; but here is a rough list of the basics that I&#8217;m pretty sure will stick in the final game:</p>
<ul>
<li>An emphasis on atmosphere, cinematography</li>
<li>An &#8220;open world&#8221; town with countless houses and stores to explore</li>
<li>Hordes of &#8220;realistic&#8221; zombies.  No super-human powers, magic, reanimation, etc.</li>
<li>Everything will be usable as a weapon</li>
<li>Vehicles will be drivable</li>
</ul>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fdeadshift.com%2Fblog%2Fwhere-were-at&amp;linkname=Where%20We%26%238217%3Bre%20At">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://deadshift.com/blog/where-were-at/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>So I&#8217;m Starting a Blog</title>
		<link>http://deadshift.com/blog/hello-world</link>
		<comments>http://deadshift.com/blog/hello-world#comments</comments>
		<pubDate>Tue, 27 Oct 2009 13:40:56 +0000</pubDate>
		<dc:creator>PolyVector</dc:creator>
				<category><![CDATA[Development Blog]]></category>

		<guid isPermaLink="false">http://deadshift.com/blog/?p=1</guid>
		<description><![CDATA[Apparently my game is so incredibly awesome and promising that it deserves its own blog.  I know, I know!  I had the exact same reaction when I found out.]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2009/10/33203432.png" rel="shadowbox[post-1];player=img;"><img class="alignnone size-medium wp-image-6" src="/wp-content/uploads/2009/10/33203432-500x281.png" alt="33203432" width="500" height="281" /></a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fdeadshift.com%2Fblog%2Fhello-world&amp;linkname=So%20I%26%238217%3Bm%20Starting%20a%20Blog">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://deadshift.com/blog/hello-world/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
