<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>dev in the making</title>
	<atom:link href="http://onedevarmy.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://onedevarmy.wordpress.com</link>
	<description>game development, maya and code by brainzizi</description>
	<lastBuildDate>Sat, 30 Oct 2010 13:59:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='onedevarmy.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>dev in the making</title>
		<link>http://onedevarmy.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://onedevarmy.wordpress.com/osd.xml" title="dev in the making" />
	<atom:link rel='hub' href='http://onedevarmy.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Things learned the hard way</title>
		<link>http://onedevarmy.wordpress.com/2010/10/30/things-learned-the-hard-way/</link>
		<comments>http://onedevarmy.wordpress.com/2010/10/30/things-learned-the-hard-way/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 13:56:11 +0000</pubDate>
		<dc:creator>brainzizizi</dc:creator>
				<category><![CDATA[maya]]></category>
		<category><![CDATA[xna]]></category>
		<category><![CDATA[hard]]></category>
		<category><![CDATA[learned]]></category>
		<category><![CDATA[mapping]]></category>
		<category><![CDATA[matrices]]></category>
		<category><![CDATA[matrix]]></category>
		<category><![CDATA[physics]]></category>
		<category><![CDATA[projection]]></category>
		<category><![CDATA[the]]></category>
		<category><![CDATA[things]]></category>
		<category><![CDATA[transformation]]></category>
		<category><![CDATA[uv]]></category>
		<category><![CDATA[vector]]></category>
		<category><![CDATA[view]]></category>
		<category><![CDATA[way]]></category>

		<guid isPermaLink="false">http://onedevarmy.wordpress.com/?p=263</guid>
		<description><![CDATA[Decided to write a post. And possibly a helpful one! What a day! I present &#8211; lessons learned the hard way in game programming: Do not write your own physics for games. Use http://farseerphysics.codeplex.com/ for 2D and http://physxdotnet.codeplex.com/ for 3D physics. Do not write you&#8217;re own just because you need a simple physics engine in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=263&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Decided to write a post. And possibly a helpful one! What a day!</p>
<p>I present &#8211; lessons learned the hard way in game programming:</p>
<h5 style="padding-left:30px;"><span style="color:#000000;"><strong>Do not write your own physics for games. </strong></span></h5>
<p style="padding-left:60px;"><span style="color:#000000;">Use <a href="http://farseerphysics.codeplex.com/">http://farseerphysics.codeplex.com/</a> for 2D and <a href="http://physxdotnet.codeplex.com/">http://physxdotnet.codeplex.com/</a> for 3D physics. Do not write you&#8217;re own just because you need a simple physics engine in your game &#8211; even if you do have the neccessary knowledge. It&#8217;s too big to finish in a reasonable time and there are far better engines out there.</span></p>
<h5 style="padding-left:30px;"><span style="color:#000000;">Learn to use some paint software and a 3d modelling package</span></h5>
<p style="padding-left:60px;"><span style="color:#000000;">You will need art for your game. Lots and lots of art if you&#8217;re making anything bigger than puzzle games. Learn how to use Photoshop, Gimp or whatever to create basic game 2D game art. Also learn a 3D modelling package like Maya or Blender because &#8211; if you can handle the math &#8211; you will want to do something in 3 dimensions. Also learn Mudbox or some other free sculpting package if you don&#8217;t want to totally devote to 3D with learning how to uv map / texture. Also to touch UV mapping: Do not UV map a model manually using plane, sphere, &#8230; projections. Use something called LSCM mapping. Blender has it by default and most packages have a plugin that handles that (Maya has <a href="http://www.pullin-shapes.co.uk/page8.htm" target="_blank">RoadKill</a>)</span></p>
<h5 style="padding-left:30px;"><span style="color:#000000;">Learn about view and projection transforms and object, view, world coordinate systems</span></h5>
<p style="padding-left:60px;"><span style="color:#000000;">Not knowing how to handle transformations between different coordinate systems turns out to be quite a bummer when trying to do anything a bit more complex with graphics. You need to know the maths so you can do a whole lot of cool stuff like shadow mapping and camera effects&#8230; Start with Vector math, and go on with Matrix math and View, Projection, Transformation matrices. It&#8217;s really practical math, ready-to-use math, not something abstract with a lot of theory behind.</span></p>
<p><span style="color:#000000;">Well, that&#8217;s it for now. What did you learn the hard way in game programming?</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/onedevarmy.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/onedevarmy.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/onedevarmy.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/onedevarmy.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/onedevarmy.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/onedevarmy.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/onedevarmy.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/onedevarmy.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/onedevarmy.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/onedevarmy.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/onedevarmy.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/onedevarmy.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/onedevarmy.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/onedevarmy.wordpress.com/263/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=263&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://onedevarmy.wordpress.com/2010/10/30/things-learned-the-hard-way/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cfffc0af8bfbf27da254b302cb8a80f?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">brainzizizi</media:title>
		</media:content>
	</item>
		<item>
		<title>Export Maya&#8217;s custom attributes to XNA</title>
		<link>http://onedevarmy.wordpress.com/2010/07/16/export-mayas-custom-attributes-to-xna/</link>
		<comments>http://onedevarmy.wordpress.com/2010/07/16/export-mayas-custom-attributes-to-xna/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 11:45:13 +0000</pubDate>
		<dc:creator>brainzizizi</dc:creator>
				<category><![CDATA[maya]]></category>
		<category><![CDATA[xna]]></category>
		<category><![CDATA[content pipeline]]></category>
		<category><![CDATA[custom attributes]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[fbx]]></category>
		<category><![CDATA[models]]></category>
		<category><![CDATA[opaque data]]></category>

		<guid isPermaLink="false">http://onedevarmy.wordpress.com/?p=257</guid>
		<description><![CDATA[If I only knew it was this easy&#8230; I&#8217;m doing a spaceship shooter game, and I encountered a situation where the only solution was to write a custom xml file next to every one of my models. So I started a content pipeline extension project and began twiddling. I inherited the ModelProcessor to load info [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=257&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If I only knew it was this easy&#8230;</p>
<p>I&#8217;m doing a spaceship shooter game, and I encountered a situation where the only solution was to write a custom xml file next to every one of my models. So I started a content pipeline extension project and began twiddling. I inherited the ModelProcessor to load info from my custom xml file, and I saw a OpaqueData dictionary in the NodeContents so I decided to google it.</p>
<p>With some help from <a href="http://blogs.msdn.com/b/etayrien/archive/2007/03/22/opaque-data-from-max-and-maya.aspx">http://blogs.msdn.com/b/etayrien/archive/2007/03/22/opaque-data-from-max-and-maya.aspx</a> I got exactly what I wanted without the xml info file &#8211; getting extra information from Maya to XNA.</p>
<p>As the link says, soo</p>
<ul>
<li>1. Add a custom attribute to a mesh in Maya</li>
<li>2. Read it in the OpaqueData</li>
<li>3. ???</li>
<li>4. Profit!</li>
</ul>
<p>Simple as that! What you actually want to do in step 3 is pass on that extra information in a Model.Tag, or Mesh.Tag from the content pipeline to your game.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/onedevarmy.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/onedevarmy.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/onedevarmy.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/onedevarmy.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/onedevarmy.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/onedevarmy.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/onedevarmy.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/onedevarmy.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/onedevarmy.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/onedevarmy.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/onedevarmy.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/onedevarmy.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/onedevarmy.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/onedevarmy.wordpress.com/257/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=257&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://onedevarmy.wordpress.com/2010/07/16/export-mayas-custom-attributes-to-xna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cfffc0af8bfbf27da254b302cb8a80f?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">brainzizizi</media:title>
		</media:content>
	</item>
		<item>
		<title>Spaceships and news</title>
		<link>http://onedevarmy.wordpress.com/2010/07/15/spaceships-and-news/</link>
		<comments>http://onedevarmy.wordpress.com/2010/07/15/spaceships-and-news/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 15:48:42 +0000</pubDate>
		<dc:creator>brainzizizi</dc:creator>
				<category><![CDATA[maya]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[ascii]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[ctp]]></category>
		<category><![CDATA[dwarf fortress]]></category>
		<category><![CDATA[goblin camp]]></category>
		<category><![CDATA[msi cleanup utility]]></category>
		<category><![CDATA[mudbox]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[roguelike]]></category>
		<category><![CDATA[spaceships]]></category>
		<category><![CDATA[texture]]></category>
		<category><![CDATA[texturing]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://onedevarmy.wordpress.com/?p=246</guid>
		<description><![CDATA[Been doing some really simple geometry in Maya, spaceships mostly. As you can see none of them still textured, and I probably won&#8217;t be spending much time texturing any of them as I feel so helpless doing that. I&#8217;m really not an artistic guy (I couldn&#8217;t draw a bicycle on a piece of paper), as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=246&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Been doing some really simple geometry in Maya, spaceships mostly.</p>

<a href='http://onedevarmy.wordpress.com/2010/07/15/spaceships-and-news/ship1-1/' title='ship1-1'><img data-attachment-id='247' data-orig-size='486,462' data-liked='0'width="150" height="142" src="http://onedevarmy.files.wordpress.com/2010/07/ship1-1.png?w=150&#038;h=142" class="attachment-thumbnail" alt="ship1-1" title="ship1-1" /></a>
<a href='http://onedevarmy.wordpress.com/2010/07/15/spaceships-and-news/ship1-2/' title='ship1-2'><img data-attachment-id='248' data-orig-size='486,462' data-liked='0'width="150" height="142" src="http://onedevarmy.files.wordpress.com/2010/07/ship1-2.png?w=150&#038;h=142" class="attachment-thumbnail" alt="ship1-2" title="ship1-2" /></a>
<a href='http://onedevarmy.wordpress.com/2010/07/15/spaceships-and-news/ship2-1/' title='ship2-1'><img data-attachment-id='249' data-orig-size='742,503' data-liked='0'width="150" height="101" src="http://onedevarmy.files.wordpress.com/2010/07/ship2-1.png?w=150&#038;h=101" class="attachment-thumbnail" alt="ship2-1" title="ship2-1" /></a>
<a href='http://onedevarmy.wordpress.com/2010/07/15/spaceships-and-news/ship2-2/' title='ship2-2'><img data-attachment-id='250' data-orig-size='742,503' data-liked='0'width="150" height="101" src="http://onedevarmy.files.wordpress.com/2010/07/ship2-2.png?w=150&#038;h=101" class="attachment-thumbnail" alt="ship2-2" title="ship2-2" /></a>

<p>As you can see none of them still textured, and I probably won&#8217;t be spending much time texturing any of them as I feel so helpless doing that. I&#8217;m really not an artistic guy (I couldn&#8217;t draw a bicycle on a piece of paper), as I ventured into 3D for my own personal needs , and I feel that texturing non-organics is my limit.</p>
<p>So yeah, now I&#8217;m stuck with a couple of untextured spaceship models so I decided to do a little 3D top-down space arcade / roguelike kinda action RPG where the textures won&#8217;t stand out as totally bad. And I said I&#8217;d finish it by the end of summer. We&#8217;ll see&#8230;</p>
<p>In other news:</p>
<ul>
<li><a href="http://creators.xna.com/en-US/launchcenter">XNA 4.0 Beta</a> &#8211; If you got the CTP version installed you have to uninstall it, but do uninstall the whole product (not piece by piece) as you&#8217;re quickly going to find a lot of problems if you try uninstalling piece by piece. I fixed my problems using the MSI Cleanup Utility.</li>
<li>Goblin Camp v001 is out. You can call it a Dwarf Fortress killer, I call it cool. Anyhow it&#8217;s anonuncing the next generation of ascii graphics city builders. If you&#8217;re so confused right now, check <a href="http://www.goblincamp.com/">http://www.goblincamp.com/</a> and <a href="http://www.bay12games.com/dwarves/">Dwarf fortress</a>. Only for hardcore people who play hardcore games.</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/onedevarmy.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/onedevarmy.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/onedevarmy.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/onedevarmy.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/onedevarmy.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/onedevarmy.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/onedevarmy.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/onedevarmy.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/onedevarmy.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/onedevarmy.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/onedevarmy.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/onedevarmy.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/onedevarmy.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/onedevarmy.wordpress.com/246/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=246&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://onedevarmy.wordpress.com/2010/07/15/spaceships-and-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cfffc0af8bfbf27da254b302cb8a80f?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">brainzizizi</media:title>
		</media:content>

		<media:content url="http://onedevarmy.files.wordpress.com/2010/07/ship1-1.png?w=150" medium="image">
			<media:title type="html">ship1-1</media:title>
		</media:content>

		<media:content url="http://onedevarmy.files.wordpress.com/2010/07/ship1-2.png?w=150" medium="image">
			<media:title type="html">ship1-2</media:title>
		</media:content>

		<media:content url="http://onedevarmy.files.wordpress.com/2010/07/ship2-1.png?w=150" medium="image">
			<media:title type="html">ship2-1</media:title>
		</media:content>

		<media:content url="http://onedevarmy.files.wordpress.com/2010/07/ship2-2.png?w=150" medium="image">
			<media:title type="html">ship2-2</media:title>
		</media:content>
	</item>
		<item>
		<title>Shawn writes about randoms</title>
		<link>http://onedevarmy.wordpress.com/2009/12/18/shawn-writes-about-randoms/</link>
		<comments>http://onedevarmy.wordpress.com/2009/12/18/shawn-writes-about-randoms/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 05:22:35 +0000</pubDate>
		<dc:creator>brainzizizi</dc:creator>
				<category><![CDATA[game programming]]></category>

		<guid isPermaLink="false">http://onedevarmy.wordpress.com/?p=217</guid>
		<description><![CDATA[Shawn has a nice little article about the way people think about random numbers. Take a look here. I think the only way you need a better random number generator than the .NET Random is when your game is totally relying on random numbers. Games like Roguelikes or Diablo style hack n slash with lots [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=217&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Shawn has a nice little article about the way people think about random numbers. Take a look <a href="http://blogs.msdn.com/shawnhar/archive/2009/12/17/the-psychology-of-randomness.aspx">here</a>.</p>
<p>I think the only way you need a better random number generator than the .NET Random is when your game is totally relying on random numbers. Games like Roguelikes or Diablo style hack n slash with lots of item drops and random dungeon generation probably use their own random number generator because the built in ones often give a pattern over a large number of samples. In fact I don&#8217;t know that much about random numbers, so just read Shawn&#8217;s article.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/onedevarmy.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/onedevarmy.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/onedevarmy.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/onedevarmy.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/onedevarmy.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/onedevarmy.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/onedevarmy.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/onedevarmy.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/onedevarmy.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/onedevarmy.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/onedevarmy.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/onedevarmy.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/onedevarmy.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/onedevarmy.wordpress.com/217/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=217&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://onedevarmy.wordpress.com/2009/12/18/shawn-writes-about-randoms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cfffc0af8bfbf27da254b302cb8a80f?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">brainzizizi</media:title>
		</media:content>
	</item>
		<item>
		<title>zAnimation &#8211; exporting models from Maya</title>
		<link>http://onedevarmy.wordpress.com/2009/12/10/zanimation-exporting-models-from-maya/</link>
		<comments>http://onedevarmy.wordpress.com/2009/12/10/zanimation-exporting-models-from-maya/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 10:57:43 +0000</pubDate>
		<dc:creator>brainzizizi</dc:creator>
				<category><![CDATA[xna]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[zAnimation]]></category>

		<guid isPermaLink="false">http://onedevarmy.wordpress.com/?p=199</guid>
		<description><![CDATA[This is a short tutorial which I&#8217;m also posting on the zAnimation codeplex wiki. The next one should be about building a new project with zAnimation. This was going to be a video tutorial, but my english speaking abilities sock. As well as my english writing abilities. Also I suck at modeling/animating, so this shouldn&#8217;t [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=199&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a short tutorial which I&#8217;m also posting on the <a href="http://zanimation.codeplex.com/">zAnimation codeplex</a> wiki. The next one should be about building a new project with <a href="http://onedevarmy.wordpress.com/2009/11/22/zanimation-on-codeplex/">zAnimation</a>. This was going to be a video tutorial, but my english speaking abilities sock. As well as my english writing abilities. Also I suck at modeling/animating, so this shouldn&#8217;t be taken as a modeling tutorial. It&#8217;s a tutorial on how to export stuff.&nbsp; So let&#8217;s get started.<span id="more-199"></span></p>
<ol>
&nbsp;</p>
<li>First a bit of back info. What&#8217;s our goal? To make some connected vertices that can be controlled by a number of joints. Each vertex has a List of values indicating how much a certain bone is affecting it. This is done by a technique called <em>smooth skin </em>binding. First make some geometry. It doesn&#8217;t matter if the geometry is a single big mesh or a number of smaller meshes. In the end they&#8217;re all vertices. I&#8217;ll be working with a very simple object and a very simple animation &#8211; a door which can open and close. Next is the joint placing. Next is skin binding. This connects the geometry to the joints, and is the backbone of this whole process. After that is weight painting &#8211; assigning values to vertices depending on how much do you want a bone to influence that single vertex. Next is animating or keyframing. Essentially remembering the posing of&nbsp; bones at various times in our timeline. This is directly linked to the animations refresh rate. zAnimation requires special timeline format, but we&#8217;ll get to that. And the last step will be exporting, making sure that our data reaches XNA. Have fun!</li>
<p>&nbsp;</p>
<li>I&#8217;ll show you how to properly animate a model for export to XNA via zAnimation. Load up your model in Maya. I&#8217;m using Maya 2010, but an older version should work. I&#8217;m using a model with only 2 joints but models with more joints will work correctly as well.<br />
&nbsp;<br />
<a href="http://onedevarmy.files.wordpress.com/2009/12/door.png"><img class="aligncenter size-full wp-image-204" title="door" src="http://onedevarmy.files.wordpress.com/2009/12/door.png?w=700" alt=""  ></a></li>
<p>&nbsp;</p>
<li>In case you have a skin already attached and weights painted, skip this step. Select your root joint and your geometry and go to Skin &gt; Bind Skin &gt; Smooth Bind (with options). Also make sure you&#8217;re in the animation mode. Setup your skin here including max influences, bind method and other options. When you&#8217;re done select your geometry and go to Skin &gt; Edit Smooth Skin &gt; Paint Skin Weights Tool (with options). Paint your bone weights here. <strong>Don&#8217;t miss a bone, because if a bone doesn&#8217;t have skin weights attached to at least a single vertice it will be ignored during the import into XNA</strong>, and all its children will be lost and you&#8217;ll get an error probably. So these are my weights.<br />
&nbsp;<br />
<a href="http://onedevarmy.files.wordpress.com/2009/12/weights.png"><img class="aligncenter size-full wp-image-205" title="weights" src="http://onedevarmy.files.wordpress.com/2009/12/weights.png?w=700" alt=""  ></a></li>
<p>&nbsp;</p>
<li>Try moving a joint now, see if your geometry is moving as expected. If that&#8217;s alright we can begin keyframing. Select all your joints by clicking on the root joint, right clicking and selecting &#8220;Select Hierarchy&#8221;. We have to key each joint on the first and the second frame in their original positions. This is called a bind pose, a reference to all future joint transformations. Place the timeline marker to the first frame, go to your &#8220;Channel Box&#8221; (shown in the image), select all the translation, rotation and scale values, right click and select &#8220;Key selected&#8221;. To this again but with the timeline marker on the second frame, and again at the fourth frame. In the third frame move all your joints a bit and keyframe them. You can skip this last step if you have a bigger animation moving ALL your joints. <strong>If a joint isn&#8217;t moved in the animation it will be ignored by the XNA FBX importer, and will probably generate an error.</strong> After this you can continue with your animation clips as desired (from frame 5 onward). I&#8217;ll make a simple open and close animations. Be aware that the default refresh rate is 60 frames per second and zAnimation will import animation at that frame rate, so time your animations properly.<br />
&nbsp;<br />
<a href="http://onedevarmy.files.wordpress.com/2009/12/keyframes.png"><img class="aligncenter size-full wp-image-207" title="keyframes" src="http://onedevarmy.files.wordpress.com/2009/12/keyframes.png?w=700" alt=""  ></a></li>
<p>&nbsp;</p>
<li>Bake your animation. Select all your joints by clicking the root joint and selecting &#8220;Select Hierarchy&#8221;, go to Edit &gt; Keys &gt; Bake Simulation (with options). Keep the default settings except start/end time and select &#8220;Driven channels&#8221; and remove &#8220;Keep unbaked keys&#8221;. Be sure to bake the entire animation timeline. This step is required because zAnimation doesn&#8217;t interpolate the joint transformations between the keyframes. Yet. Press Bake. After this is done, position your timeline marker at frame 1 and select you geometry. From there select Skin &gt; Go to Bind Pose, and you&#8217;re ready for export.</li>
<p>&nbsp;</p>
<li>Export your geometry and joints by selecting all of them (the entire joint hierarchy) and selecting File &gt; Export Selection. After picking the file name and path you&#8217;ll be greeted by the FBX export dialog. Be sure you have the newest Maya FBX exporter (I have FBX201000). The important things for zAnimation are &#8220;Animation&#8221;, &#8220;Deformed models&#8221; and &#8220;Skins&#8221;. You should select them all. Click Export, and you&#8217;re done!</li>
</ol>
<p>&nbsp;<br />
This has been a fast rundown of how to export a model from Maya to XNA using zAnimation. In the next post I&#8217;ll be explaining how to create a new XNA game with zAnimation and playing an animation. Regarding IK handles, they don&#8217;t get exported so be sure to bake the animation to your joints. You don&#8217;t have to delete them they won&#8217;t interfere. Please post feedback if you encountered problems or if you just have something to say!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/onedevarmy.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/onedevarmy.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/onedevarmy.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/onedevarmy.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/onedevarmy.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/onedevarmy.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/onedevarmy.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/onedevarmy.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/onedevarmy.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/onedevarmy.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/onedevarmy.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/onedevarmy.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/onedevarmy.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/onedevarmy.wordpress.com/199/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=199&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://onedevarmy.wordpress.com/2009/12/10/zanimation-exporting-models-from-maya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cfffc0af8bfbf27da254b302cb8a80f?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">brainzizizi</media:title>
		</media:content>

		<media:content url="http://onedevarmy.files.wordpress.com/2009/12/door.png" medium="image">
			<media:title type="html">door</media:title>
		</media:content>

		<media:content url="http://onedevarmy.files.wordpress.com/2009/12/weights.png" medium="image">
			<media:title type="html">weights</media:title>
		</media:content>

		<media:content url="http://onedevarmy.files.wordpress.com/2009/12/keyframes.png" medium="image">
			<media:title type="html">keyframes</media:title>
		</media:content>
	</item>
		<item>
		<title>zAnimation &#8211; on codeplex</title>
		<link>http://onedevarmy.wordpress.com/2009/11/22/zanimation-on-codeplex/</link>
		<comments>http://onedevarmy.wordpress.com/2009/11/22/zanimation-on-codeplex/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 10:57:39 +0000</pubDate>
		<dc:creator>brainzizizi</dc:creator>
				<category><![CDATA[xna]]></category>
		<category><![CDATA[bone]]></category>
		<category><![CDATA[Codeplex]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[skinned animation]]></category>
		<category><![CDATA[zAnimation]]></category>

		<guid isPermaLink="false">http://onedevarmy.wordpress.com/?p=187</guid>
		<description><![CDATA[zAnimation is finally on codeplex. You can find it here: http://zanimation.codeplex.com/. It&#8217;s all very basic for now, no samples or documentation yet. The code is somewhat documented. I believe experienced people will have no problem using it. It&#8217;s just a matter of selecting the right content processor, checking out my past blog entry to write [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=187&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>zAnimation is finally on codeplex. You can find it here: <a href="http://zanimation.codeplex.com/">http://zanimation.codeplex.com/</a>.</p>
<p>It&#8217;s all very basic for now, no samples or documentation yet. The code is somewhat documented. I believe experienced people will have no problem using it. It&#8217;s just a matter of selecting the right content processor, checking out my past blog entry to write a definitions file, and writing model.Play(&#8220;Walk&#8221;); I won&#8217;t be working on the documentation or samples the next 2 weeks, my exams are still more important.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/onedevarmy.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/onedevarmy.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/onedevarmy.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/onedevarmy.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/onedevarmy.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/onedevarmy.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/onedevarmy.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/onedevarmy.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/onedevarmy.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/onedevarmy.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/onedevarmy.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/onedevarmy.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/onedevarmy.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/onedevarmy.wordpress.com/187/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=187&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://onedevarmy.wordpress.com/2009/11/22/zanimation-on-codeplex/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cfffc0af8bfbf27da254b302cb8a80f?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">brainzizizi</media:title>
		</media:content>
	</item>
		<item>
		<title>zAnimation &#8211; a simple XNA animation library</title>
		<link>http://onedevarmy.wordpress.com/2009/11/05/zanimation-a-simple-xna-animation-library/</link>
		<comments>http://onedevarmy.wordpress.com/2009/11/05/zanimation-a-simple-xna-animation-library/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 06:52:15 +0000</pubDate>
		<dc:creator>brainzizizi</dc:creator>
				<category><![CDATA[xna]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[zAnimation]]></category>

		<guid isPermaLink="false">http://onedevarmy.wordpress.com/?p=182</guid>
		<description><![CDATA[Before XNA 3.1, there was a bunch of animation frameworks which could to tons of stuff like interpolation between animations and stuff like that. When the 3.1 came out all of these became obsolete &#8211; except kw animation which comes with a 3ds max exporter and is great if you&#8217;re using max, but I&#8217;m using [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=182&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Before XNA 3.1, there was a bunch of animation frameworks which could to tons of stuff like interpolation between animations and stuff like that. When the 3.1 came out all of these became obsolete &#8211; except kw animation which comes with a 3ds max exporter and is great if you&#8217;re using max, but I&#8217;m using Maya and I needed to write my own animation foundation. zAnimation is a XNA library for animating skinned models exported from Maya. It supports customizable pre-clip interpolation, and per-bone animation. No interpolation between frames or animations yet.</p>
<p style="padding-left:30px;"><strong>Pre-clip interpolation:</strong></p>
<p style="padding-left:60px;">Before a clip is played, the model interpolates over a customizable number of frames to the starting position. It delays an animation a bit but removes jerky transitions between animations.</p>
<p style="padding-left:30px;"><strong>Per-bone animation:</strong></p>
<p style="padding-left:60px;">When defining a clip within the animation, you also define what bones does the clip affect. Based on that you can play an animation that animates all the bones in a model, and easily override the animation on one or more bones to make them move in a different way.</p>
<p>Below I&#8217;m listing a couple of things that I encountered while writing zAnimation:</p>
<p style="padding-left:60px;"><strong>Maya gets all your animation keyframes and exports it in a single take called &#8220;Take 001&#8243;.</strong></p>
<p style="padding-left:60px;">To deal with this I introduced another file (the take definition file) which contains where does a certain animation start and end, and also what bones does it affect.</p>
<p style="padding-left:60px;"><strong>XNA FBX Importer removes redundant bones.</strong></p>
<p style="padding-left:60px;">If a bone has no weights defined on a skin it gets deleted. The same thing happens if the bone doesn&#8217;t move (change) in the keyframes. So I introduced 2 special parts of the animation, the &#8220;Bind&#8221; part and the &#8220;Init&#8221; part. The bind part acts like a starting transform, and the init part is just there so you don&#8217;t forget that you have to animate a bone if you want to have it.</p>
<p>So based on that there are a few rules and limitations to zAnimation:</p>
<p>- smooth binding only</p>
<p>- each bone in each skin has to have some weights, so no root bones with no weights (or it won&#8217;t be imported as a bone)</p>
<p>- each bone has to have at least 2 keyframes that are not the same (or it won&#8217;t show up in the keyframes at all)</p>
<p>- strictly defined animation timeline:</p>
<p style="padding-left:30px;">-at frames 0 and 1 keyframe every bone at its bind pose position. This is the position your animation starts with.</p>
<p style="padding-left:30px;">-at frame 3 you should keyframe every bone it any position other than its bind pose. I select all my bones and rotate them in the x-axis about 45 deg.</p>
<p style="padding-left:30px;">-at frame 4 you should keyframe your bind pose again.</p>
<p style="padding-left:30px;">- after frame 4 animate your model as you wish</p>
<p style="padding-left:30px;">- when importing a model create a takes.def file in the same directory as your exported fbx is in the XNA content folders, set its build action to none from Visual Studio</p>
<p style="padding-left:30px;">- takes.def file has a specific structure that is line delimited, so the first line should look like this:</p>
<p style="padding-left:60px;">
<p><pre class="brush: csharp;">Bind, 0, 2, AffectedBone0, AffectedBone1, AffectedBone2</pre></p>
<p style="padding-left:30px;">and each line after that should look like this:</p>
<p style="padding-left:60px;">
<p><pre class="brush: csharp;">AnimationName, StartFrame, EndFrame, AffectedBone0, AffectedBone1, AffectedBone2</pre></p>
<p style="padding-left:30px;">here&#8217;s an example of a takes file</p>
<p style="padding-left:60px;">
<p><pre class="brush: csharp;">Bind, 0, 2, root, door
Open, 4, 34, door
Opened, 34, 36, door
Close, 36, 66, door</pre></p>
<p>That&#8217;s more or less it. I&#8217;ll release it on codeplex in a couple of days. Check it out if you&#8217;re a XNA developer working with Maya.</p>
<p><strong><br />
</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/onedevarmy.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/onedevarmy.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/onedevarmy.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/onedevarmy.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/onedevarmy.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/onedevarmy.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/onedevarmy.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/onedevarmy.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/onedevarmy.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/onedevarmy.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/onedevarmy.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/onedevarmy.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/onedevarmy.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/onedevarmy.wordpress.com/182/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=182&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://onedevarmy.wordpress.com/2009/11/05/zanimation-a-simple-xna-animation-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cfffc0af8bfbf27da254b302cb8a80f?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">brainzizizi</media:title>
		</media:content>
	</item>
		<item>
		<title>Offside &#8211; My RSS subscriptions</title>
		<link>http://onedevarmy.wordpress.com/2009/10/12/offside-my-rss-subscriptions/</link>
		<comments>http://onedevarmy.wordpress.com/2009/10/12/offside-my-rss-subscriptions/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 05:49:59 +0000</pubDate>
		<dc:creator>brainzizizi</dc:creator>
				<category><![CDATA[private]]></category>
		<category><![CDATA[google reader]]></category>
		<category><![CDATA[opml]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://onedevarmy.wordpress.com/?p=174</guid>
		<description><![CDATA[When I discovered RSS, it really changed the way I surfed and follow news. Before RSS I used to open up Firefox, (wait half an hour &#8217;till it opens up), and open like 20 websites, (wait half an hour again), and see if there&#8217;s anything new. I could follow a maximum of 20 or so [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=174&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When I discovered RSS, it really changed the way I surfed and follow news. Before RSS I used to open up Firefox, (wait half an hour &#8217;till it opens up), and open like 20 websites, (wait half an hour again), and see if there&#8217;s anything new. I could follow a maximum of 20 or so web sites. Now using Google Reader I&#8217;m following a total of 50 web sites. All of them tied to programming, graphics or game design. So I present to you my RSS list. Hope you find something interesting! I&#8217;ve included an OPML file with my subsriptions in you want to easily import all the items at the end of the post.</p>
<p><strong>Aaron Stebner&#8217;s WebLog</strong><br />
<a class="linkification-ext" title="Linkification: http://blogs.msdn.com/astebner/rss.xml" href="http://blogs.msdn.com/astebner/rss.xml">http://blogs.msdn.com/astebner/rss.xml</a></p>
<p><strong>Another Early Morning</strong><br />
<a class="linkification-ext" title="Linkification: http://www.anotherearlymorning.com/feed/" href="http://www.anotherearlymorning.com/feed/">http://www.anotherearlymorning.com/feed/</a></p>
<p><strong>Beautiful Pixels</strong><br />
<a class="linkification-ext" title="Linkification: http://feeds.feedburner.com/BeautifulPixels" href="http://feeds.feedburner.com/BeautifulPixels">http://feeds.feedburner.com/BeautifulPixels</a></p>
<p><strong>Blender3d.org: Latest News</strong><br />
<a class="linkification-ext" title="Linkification: http://www.blender.org/feed/" href="http://www.blender.org/feed/">http://www.blender.org/feed/</a></p>
<p><strong>Brian Goldfarb&#8217;s Blog</strong><br />
<a class="linkification-ext" title="Linkification: http://blogs.msdn.com/bgold/rss.xml" href="http://blogs.msdn.com/bgold/rss.xml">http://blogs.msdn.com/bgold/rss.xml</a></p>
<p><strong>C0DE517E</strong><br />
<a class="linkification-ext" title="Linkification: http://c0de517e.blogspot.com/feeds/posts/default" href="http://c0de517e.blogspot.com/feeds/posts/default">http://c0de517e.blogspot.com/feeds/posts/default</a></p>
<p><strong>Catalin&#8217;s XNA Experiments</strong><br />
<a class="linkification-ext" title="Linkification: http://www.catalinzima.com/?feed=rss2" href="http://www.catalinzima.com/?feed=rss2">http://www.catalinzima.com/?feed=rss2</a></p>
<p><strong>Coding Efficiency</strong><br />
<a class="linkification-ext" title="Linkification: http://www.codingefficiency.com/feed/" href="http://www.codingefficiency.com/feed/">http://www.codingefficiency.com/feed/</a></p>
<p><strong>Cooking With Code</strong><br />
<a class="linkification-ext" title="Linkification: http://blogs.msdn.com/ashtat/rss.xml" href="http://blogs.msdn.com/ashtat/rss.xml">http://blogs.msdn.com/ashtat/rss.xml</a></p>
<p><strong>Cornflower Blue</strong><br />
<a class="linkification-ext" title="Linkification: http://blogs.msdn.com/etayrien/rss.xml" href="http://blogs.msdn.com/etayrien/rss.xml">http://blogs.msdn.com/etayrien/rss.xml</a></p>
<p><strong>Danc&#8217;s shared items</strong><br />
<a class="linkification-ext" title="Linkification: http://www.google.com/reader/public/atom/user/04653747362202207327/state/com.google/broadcast" href="http://www.google.com/reader/public/atom/user/04653747362202207327/state/com.google/broadcast">http://www.google.com/reader/public/atom/user/04653747362202207327/state/com.google/broadcast</a></p>
<p><strong>Diary of a Graphics Programmer</strong><br />
<a class="linkification-ext" title="Linkification: http://diaryofagraphicsprogrammer.blogspot.com/feeds/posts/default" href="http://diaryofagraphicsprogrammer.blogspot.com/feeds/posts/default">http://diaryofagraphicsprogrammer.blogspot.com/feeds/posts/default</a></p>
<p><strong>Gamasutra Feature Articles</strong><br />
<a class="linkification-ext" title="Linkification: http://feeds.feedburner.com/GamasutraFeatureArticles/" href="http://feeds.feedburner.com/GamasutraFeatureArticles/">http://feeds.feedburner.com/GamasutraFeatureArticles/</a></p>
<p><strong>GameDev.Net</strong><br />
<a class="linkification-ext" title="Linkification: http://www.gamedev.net/xml/" href="http://www.gamedev.net/xml/">http://www.gamedev.net/xml/</a></p>
<p><strong>GameDevBlog</strong><br />
<a class="linkification-ext" title="Linkification: http://www.gamedevblog.com/atom.xml" href="http://www.gamedevblog.com/atom.xml">http://www.gamedevblog.com/atom.xml</a></p>
<p><strong>Graphics Runner</strong><br />
<a class="linkification-ext" title="Linkification: http://graphicsrunner.blogspot.com/feeds/posts/default" href="http://graphicsrunner.blogspot.com/feeds/posts/default">http://graphicsrunner.blogspot.com/feeds/posts/default</a></p>
<p><strong>Jesse Liberty &#8211; Silverlight Geek</strong><br />
<a class="linkification-ext" title="Linkification: http://feeds.feedburner.com/JesseLiberty-SilverlightGeek" href="http://feeds.feedburner.com/JesseLiberty-SilverlightGeek">http://feeds.feedburner.com/JesseLiberty-SilverlightGeek</a></p>
<p><strong>Krishna&#8217;s XNA Space</strong><br />
<a class="linkification-ext" title="Linkification: http://cid-cdfded0a2593c8e1.users.api.live.net/Users(-3603463498990630687)/Main?$format=rss20" href="http://cid-cdfded0a2593c8e1.users.api.live.net/Users(-3603463498990630687)/Main?$format=rss20">http://cid-cdfded0a2593c8e1.users.api.live.net/Users(-3603463498990630687)/Main?$format=rss20</a></p>
<p><strong>Legalize Adulthood!</strong><br />
<a class="linkification-ext" title="Linkification: http://legalizeadulthood.wordpress.com/feed/" href="http://legalizeadulthood.wordpress.com/feed/">http://legalizeadulthood.wordpress.com/feed/</a></p>
<p><strong>Let&#8217;s Kill Dave!</strong><br />
<a class="linkification-ext" title="Linkification: http://feeds.feedburner.com/LetsKillDave" href="http://feeds.feedburner.com/LetsKillDave">http://feeds.feedburner.com/LetsKillDave</a></p>
<p><strong>level of detail</strong><br />
<a class="linkification-ext" title="Linkification: http://www.jshopf.com/blog/?feed=rss2" href="http://www.jshopf.com/blog/?feed=rss2">http://www.jshopf.com/blog/?feed=rss2</a></p>
<p><strong>Lost Garden</strong><br />
<a class="linkification-ext" title="Linkification: http://lostgarden.com/atom.xml" href="http://lostgarden.com/atom.xml">http://lostgarden.com/atom.xml</a></p>
<p><strong>Machaira&#8217;s Space</strong><br />
<a class="linkification-ext" title="Linkification: http://cid-c6a0309746469d9e.users.api.live.net/Users(-4134251031648887394)/Main?$format=rss20" href="http://cid-c6a0309746469d9e.users.api.live.net/Users(-4134251031648887394)/Main?$format=rss20">http://cid-c6a0309746469d9e.users.api.live.net/Users(-4134251031648887394)/Main?$format=rss20</a></p>
<p><strong>Method ~ of ~ failed by Tim Heuer</strong><br />
<a class="linkification-ext" title="Linkification: http://feeds.timheuer.com/timheuer" href="http://feeds.timheuer.com/timheuer">http://feeds.timheuer.com/timheuer</a></p>
<p><strong>Michael Klucher&#8217;s Blog</strong><br />
<a class="linkification-ext" title="Linkification: http://klucher.com/feed/" href="http://klucher.com/feed/">http://klucher.com/feed/</a></p>
<p><strong>Nazeeh&#8217;s Little Corner on the Web</strong><br />
<a class="linkification-ext" title="Linkification: http://feeds.feedburner.com/nazspace/kFwA" href="http://feeds.feedburner.com/nazspace/kFwA">http://feeds.feedburner.com/nazspace/kFwA</a></p>
<p><strong>Nerd Herding &#8211; The Care and Feeding of Software Developers &#8230;</strong><br />
<a class="linkification-ext" title="Linkification: http://blog.calevans.com/feed/" href="http://blog.calevans.com/feed/">http://blog.calevans.com/feed/</a></p>
<p><strong>Nick Gravelyn</strong><br />
<a class="linkification-ext" title="Linkification: http://nickgravelyn.com/feed/" href="http://nickgravelyn.com/feed/">http://nickgravelyn.com/feed/</a></p>
<p><strong>Ozymandias</strong><br />
<a class="linkification-ext" title="Linkification: http://ozymandias.com/feed/" href="http://ozymandias.com/feed/">http://ozymandias.com/feed/</a></p>
<p><strong>Pandemonium</strong><br />
<a class="linkification-ext" title="Linkification: http://bittermanandy.wordpress.com/feed/" href="http://bittermanandy.wordpress.com/feed/">http://bittermanandy.wordpress.com/feed/</a></p>
<p><strong>Petri&#8217;s space</strong><br />
<a class="linkification-ext" title="Linkification: http://cid-2b7007e9ec2ae37b.users.api.live.net/Users(3130010442293502843)/Main?$format=rss20" href="http://cid-2b7007e9ec2ae37b.users.api.live.net/Users(3130010442293502843)/Main?$format=rss20">http://cid-2b7007e9ec2ae37b.users.api.live.net/Users(3130010442293502843)/Main?$format=rss20</a></p>
<p><strong>Pieter Germishuys</strong><br />
<a class="linkification-ext" title="Linkification: http://www.pieterg.com/blog/syndication.axd?format=rss" href="http://www.pieterg.com/blog/syndication.axd?format=rss">http://www.pieterg.com/blog/syndication.axd?format=rss</a></p>
<p><strong>RandomChaos</strong><br />
<a class="linkification-ext" title="Linkification: http://xna-uk.net/blogs/randomchaos/rss.aspx" href="http://xna-uk.net/blogs/randomchaos/rss.aspx">http://xna-uk.net/blogs/randomchaos/rss.aspx</a></p>
<p><strong>Real-Time Rendering</strong><br />
<a class="linkification-ext" title="Linkification: http://www.realtimerendering.com/blog/feed/" href="http://www.realtimerendering.com/blog/feed/">http://www.realtimerendering.com/blog/feed/</a></p>
<p><strong>Sharky&#8217;s Blog</strong><br />
<a class="linkification-ext" title="Linkification: http://sharky.bluecog.co.nz/?feed=rss2" href="http://sharky.bluecog.co.nz/?feed=rss2">http://sharky.bluecog.co.nz/?feed=rss2</a></p>
<p><strong>Shawn Burke&#8217;s Blog</strong><br />
<a class="linkification-ext" title="Linkification: http://blogs.msdn.com/sburke/rss.xml" href="http://blogs.msdn.com/sburke/rss.xml">http://blogs.msdn.com/sburke/rss.xml</a></p>
<p><strong>Shawn Hargreaves Blog</strong><br />
<a class="linkification-ext" title="Linkification: http://blogs.msdn.com/shawnhar/rss.xml" href="http://blogs.msdn.com/shawnhar/rss.xml">http://blogs.msdn.com/shawnhar/rss.xml</a></p>
<p><strong>Shawn Oster</strong><br />
<a class="linkification-ext" title="Linkification: http://blog.enginefour.com/blog/syndication.axd?format=rss" href="http://blog.enginefour.com/blog/syndication.axd?format=rss">http://blog.enginefour.com/blog/syndication.axd?format=rss</a></p>
<p><strong>Silverlight Releases Rss Feed</strong><br />
<a class="linkification-ext" title="Linkification: http://silverlight.codeplex.com/Project/ProjectRss.aspx?ProjectRSSFeed=codeplex%3A%2F%2Frelease%2FSilverlight" href="http://silverlight.codeplex.com/Project/ProjectRss.aspx?ProjectRSSFeed=codeplex%3A%2F%2Frelease%2FSilverlight">http://silverlight.codeplex.com/Project/ProjectRss.aspx?ProjectRSSFeed=codeplex%3A%2F%2Frelease%2FSilverlight</a></p>
<p><strong>Ska Studios</strong><br />
<a class="linkification-ext" title="Linkification: http://skasoftware.wordpress.com/feed/" href="http://skasoftware.wordpress.com/feed/">http://skasoftware.wordpress.com/feed/</a></p>
<p><strong>The Daily WTF: Curious Perversions in Information Technology</strong><br />
<a class="linkification-ext" title="Linkification: http://syndication.thedailywtf.com/TheDailyWtf" href="http://syndication.thedailywtf.com/TheDailyWtf">http://syndication.thedailywtf.com/TheDailyWtf</a></p>
<p><strong>The Game Dev Guy</strong><br />
<a class="linkification-ext" title="Linkification: http://gamedevguy.com/blog/?feed=rss2" href="http://gamedevguy.com/blog/?feed=rss2">http://gamedevguy.com/blog/?feed=rss2</a></p>
<p><strong>Virtual Realm</strong><br />
<a class="linkification-ext" title="Linkification: http://feedproxy.google.com/mykre" href="http://feedproxy.google.com/mykre">http://feedproxy.google.com/mykre</a></p>
<p><strong><a class="linkification-ext" title="Linkification: http://www.enchantedage.com" href="http://www.enchantedage.com">www.enchantedage.com</a></strong><br />
<a class="linkification-ext" title="Linkification: http://www.enchantedage.com/rss.xml" href="http://www.enchantedage.com/rss.xml">http://www.enchantedage.com/rss.xml</a></p>
<p><strong>xkcd.com</strong><br />
<a class="linkification-ext" title="Linkification: http://xkcd.com/rss.xml" href="http://xkcd.com/rss.xml">http://xkcd.com/rss.xml</a></p>
<p><strong>XNA Creators Club &#8211; News List</strong><br />
<a class="linkification-ext" title="Linkification: http://public.xna.com/Feeds/CcoFeeds.svc/CmsFeed?group=News%20List&amp;format=rss" href="http://public.xna.com/Feeds/CcoFeeds.svc/CmsFeed?group=News%20List&amp;format=rss">http://public.xna.com/Feeds/CcoFeeds.svc/CmsFeed?group=News%20List&amp;format=rss</a></p>
<p><strong>XNA Team Blog</strong><br />
<a class="linkification-ext" title="Linkification: http://blogs.msdn.com/xna/rss.xml" href="http://blogs.msdn.com/xna/rss.xml">http://blogs.msdn.com/xna/rss.xml</a></p>
<p><strong>XNAinspired</strong><br />
<a class="linkification-ext" title="Linkification: http://xnainspired.com/feed/" href="http://xnainspired.com/feed/">http://xnainspired.com/feed/</a></p>
<p><strong>Ziggyware.com</strong><br />
<a class="linkification-ext" title="Linkification: http://www.ziggyware.com/news-rss.php" href="http://www.ziggyware.com/news-rss.php">http://www.ziggyware.com/news-rss.php</a></p>
<p><strong>Ziggyware.com XNA Articles</strong><br />
<a class="linkification-ext" title="Linkification: http://www.ziggyware.com/articles.rss.php" href="http://www.ziggyware.com/articles.rss.php">http://www.ziggyware.com/articles.rss.php</a></p>
<p>OPML file on pastebin: <a class="linkification-ext" title="Linkification: http://pastebin.com/f6c8cc804" href="http://pastebin.com/f6c8cc804">http://pastebin.com/f6c8cc804</a></p>
<p>OPML file on megaupload: <a class="linkification-ext" title="Linkification: http://www.megaupload.com/?d=4IGSP2AX" href="http://www.megaupload.com/?d=4IGSP2AX">http://www.megaupload.com/?d=4IGSP2AX</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/onedevarmy.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/onedevarmy.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/onedevarmy.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/onedevarmy.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/onedevarmy.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/onedevarmy.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/onedevarmy.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/onedevarmy.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/onedevarmy.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/onedevarmy.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/onedevarmy.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/onedevarmy.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/onedevarmy.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/onedevarmy.wordpress.com/174/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=174&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://onedevarmy.wordpress.com/2009/10/12/offside-my-rss-subscriptions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cfffc0af8bfbf27da254b302cb8a80f?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">brainzizizi</media:title>
		</media:content>
	</item>
		<item>
		<title>GameOfLife &#8211; Source code</title>
		<link>http://onedevarmy.wordpress.com/2009/10/08/gameoflife-source-code/</link>
		<comments>http://onedevarmy.wordpress.com/2009/10/08/gameoflife-source-code/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 07:14:52 +0000</pubDate>
		<dc:creator>brainzizizi</dc:creator>
				<category><![CDATA[xna]]></category>
		<category><![CDATA[game of life]]></category>
		<category><![CDATA[gpu]]></category>

		<guid isPermaLink="false">http://onedevarmy.wordpress.com/?p=167</guid>
		<description><![CDATA[O hai! Last time I&#8217;ve posted I promised you some code so here it is. GameOfLifeGPU is a simple project to implement Conway&#8217;s Game Of Life algorithm on a GPU. I&#8217;m using a 400&#215;300 grid with edge wrapping, loading premade patterns from 400&#215;300 content files and a simple mechanism for switching between those premade patterns. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=167&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>O hai! Last time I&#8217;ve posted I promised you some code so here it is.</p>
<p>GameOfLifeGPU is a simple project to implement Conway&#8217;s Game Of Life algorithm on a GPU. I&#8217;m using a 400&#215;300 grid with edge wrapping, loading premade patterns from 400&#215;300 content files and a simple mechanism for switching between those premade patterns. I&#8217;m also using a QuadDrawer class which you can find somewhere on Ziggyware.</p>
<p>GameOfLife.cs:</p>
<p><pre class="brush: csharp;">

using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using System.IO;

namespace GameOfLifeGPU
{
 /// &lt;summary&gt;
 /// This is the main type for your game
 /// &lt;/summary&gt;
 public class GameOfLife : Microsoft.Xna.Framework.Game
 {
 GraphicsDeviceManager graphics;
 SpriteBatch spriteBatch;
 private QuadRenderer quadDrawer;

 private int width = 400;
 private int height = 300;
 private RenderTarget2D gridRT;
 private Texture2D texture;

 private Effect clearEffect;
 private Effect updateEffect;

 private string currentTexture = &quot;gliders&quot;;

 private KeyboardState keyState;
 private KeyboardState oldKeyState;

 public GameOfLife()
 {
 graphics = new GraphicsDeviceManager(this);
 Content.RootDirectory = &quot;Content&quot;;

 quadDrawer = new QuadRenderer(this);
 Components.Add(quadDrawer);
 }

 /// &lt;summary&gt;
 /// Allows the game to perform any initialization it needs to before starting to run.
 /// This is where it can query for any required services and load any non-graphic
 /// related content.  Calling base.Initialize will enumerate through any components
 /// and initialize them as well.
 /// &lt;/summary&gt;
 protected override void Initialize()
 {
 graphics.PreferredBackBufferWidth = 1024;
 graphics.PreferredBackBufferHeight = 786;
 graphics.PreferMultiSampling = false;
 graphics.ApplyChanges();

 IsFixedTimeStep = true;
 IsMouseVisible = true;
 TargetElapsedTime = new TimeSpan(0, 0, 0, 0, 10);

 base.Initialize();
 }

 /// &lt;summary&gt;
 /// LoadContent will be called once per game and is the place to load
 /// all of your content.
 /// &lt;/summary&gt;
 protected override void LoadContent()
 {
 // Create a new SpriteBatch, which can be used to draw textures.
 spriteBatch = new SpriteBatch(GraphicsDevice);

 clearEffect = Content.Load&lt;Effect&gt;(&quot;Effects\\clear&quot;);
 updateEffect = Content.Load&lt;Effect&gt;(&quot;Effects\\update&quot;);
 gridRT = new RenderTarget2D(GraphicsDevice, width, height, 1, SurfaceFormat.Color);

 texture = Content.Load&lt;Texture2D&gt;(&quot;glider&quot;);
 }

 /// &lt;summary&gt;
 /// UnloadContent will be called once per game and is the place to unload
 /// all content.
 /// &lt;/summary&gt;
 protected override void UnloadContent()
 {
 }

 /// &lt;summary&gt;
 /// Allows the game to run logic such as updating the world,
 /// checking for collisions, gathering input, and playing audio.
 /// &lt;/summary&gt;
 /// &lt;param name=&quot;gameTime&quot;&gt;Provides a snapshot of timing values.&lt;/param&gt;
 protected override void Update(GameTime gameTime)
 {
 oldKeyState = keyState;
 keyState = Keyboard.GetState();
 if (keyState.IsKeyDown(Keys.Space) &amp;&amp; !oldKeyState.IsKeyDown(Keys.Space))
 {
 string[] textures = Directory.GetFiles(Content.RootDirectory);
 for (int j = 0; j &lt; textures.Length; j++)
 {
 textures[j] = Path.GetFileNameWithoutExtension(textures[j]);
 }

 int i = Array.IndexOf(textures, currentTexture);
 texture = Content.Load&lt;Texture2D&gt;(textures[(i + 1)%textures.Length]);
 currentTexture = textures[(i + 1)%textures.Length];
 Window.Title = &quot;GameOfLife - &quot; + currentTexture;
 }

 base.Update(gameTime);
 }

 /// &lt;summary&gt;
 /// This is called when the game should draw itself.
 /// &lt;/summary&gt;
 /// &lt;param name=&quot;gameTime&quot;&gt;Provides a snapshot of timing values.&lt;/param&gt;
 protected override void Draw(GameTime gameTime)
 {
 GraphicsDevice.SetRenderTarget(0, gridRT);
 updateEffect.Begin();
 updateEffect.Parameters[&quot;Texture&quot;].SetValue(texture);
 updateEffect.Parameters[&quot;GridSize&quot;].SetValue(new Vector2(width, height));
 updateEffect.CurrentTechnique.Passes[0].Begin();
 quadDrawer.RenderFullscreen();
 updateEffect.CurrentTechnique.Passes[0].End();
 updateEffect.End();

 GraphicsDevice.SetRenderTarget(0, null);
 texture = gridRT.GetTexture();
 GraphicsDevice.Clear(Color.Black);
 spriteBatch.Begin();
 spriteBatch.Draw(texture,
 new Rectangle(0, 0, GraphicsDevice.PresentationParameters.BackBufferWidth, GraphicsDevice.PresentationParameters.BackBufferHeight),
 Color.White);
 spriteBatch.End();

 base.Draw(gameTime);
 }

 }
}

</pre></p>
<p>Just simple pattern switching code in the Update region and the draw mechanism in the Draw region.</p>
<p>Content\Effects\clear.fx:</p>
<p><pre class="brush: plain;">

struct VertexShaderInput
{
 float4 Position : POSITION0;
};

struct VertexShaderOutput
{
 float4 Position : POSITION0;
};

VertexShaderOutput VertexShaderFunction(VertexShaderInput input)
{
 VertexShaderOutput output;
 output.Position = input.Position;

 return output;
}

float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0
{
 return float4(0, 0, 0, 1);
}

technique Technique1
{
 pass Pass1
 {
 VertexShader = compile vs_1_1 VertexShaderFunction();
 PixelShader = compile ps_1_1 PixelShaderFunction();
 }
}

</pre></p>
<p>Content\Effects\update.fx:</p>
<p><pre class="brush: plain;">

texture Texture;
sampler2D TextureSampler = sampler_state
{
 Texture = &lt;Texture&gt;;
 ADDRESSU = WRAP;
 ADDRESSV = WRAP;
 MAGFILTER = POINT;
 MINFILTER = POINT;
 MIPFILTER = POINT;
};

float2 GridSize;

struct VertexShaderInput
{
 float4 Position : POSITION0;
 float2 Texcoord : TEXCOORD0;
};

struct VertexShaderOutput
{
 float4 Position : POSITION0;
 float2 Texcoord : TEXCOORD0;
};

VertexShaderOutput VertexShaderFunction(VertexShaderInput input)
{
 VertexShaderOutput output;

 output.Position = input.Position;
 output.Texcoord = input.Texcoord;

 return output;
}

float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0
{
 float4 cell = float4(0, 0, 0, 1);
 float4 alive = float4(1, 1, 1, 1);
 float4 dead = float4(0, 0, 0, 1);

 float2 pixel = 1.0f / GridSize;

 float n = 0.0f;

 // count neighbours
 n += tex2D(TextureSampler, float2(input.Texcoord.x - pixel.x, input.Texcoord.y - pixel.y)).r;
 n += tex2D(TextureSampler, float2(input.Texcoord.x - pixel.x, input.Texcoord.y)).r;
 n += tex2D(TextureSampler, float2(input.Texcoord.x - pixel.x, input.Texcoord.y + pixel.y)).r;
 n += tex2D(TextureSampler, float2(input.Texcoord.x, input.Texcoord.y - pixel.y)).r;
 n += tex2D(TextureSampler, float2(input.Texcoord.x, input.Texcoord.y + pixel.y)).r;
 n += tex2D(TextureSampler, float2(input.Texcoord.x + pixel.x, input.Texcoord.y - pixel.y)).r;
 n += tex2D(TextureSampler, float2(input.Texcoord.x + pixel.x, input.Texcoord.y)).r;
 n += tex2D(TextureSampler, float2(input.Texcoord.x + pixel.x, input.Texcoord.y + pixel.y)).r;

 if (tex2D(TextureSampler, input.Texcoord).r == 1.0f)
 {
 if (n == 2.0f || n == 3.0f)
 cell = alive;
 else
 cell = dead;
 }
 else
 {
 if (n == 3.0f)
 cell = alive;
 else
 cell = dead;
 }

 return cell;
}

technique Technique1
{
 pass Pass1
 {
 // TODO: set renderstates here.

 VertexShader = compile vs_2_0 VertexShaderFunction();
 PixelShader = compile ps_2_0 PixelShaderFunction();
 }
}

</pre></p>
<p>The algorithm kicks in  the update.fx. Space cycles the premade patterns and you can make your own patterns by inserting your own 400&#215;300 images. Check out the premade patterns. Wrapping edges were so easy to do. Easy like writing ADDRESSU = WRAP;  ADDRESSV = WRAP;. In the CPU version they are a bit more complicated. So here you go. Simple and easy. Here&#8217;s the complete project in a zip file (73kb), which you can download from MU or RS:</p>
<p><a href="http://www.megaupload.com/?d=PMV3OPJF">http://www.megaupload.com/?d=PMV3OPJF</a></p>
<p><a href="http://rapidshare.com/files/290162624/GameOfLifeGPU.zip">http://rapidshare.com/files/290162624/GameOfLifeGPU.zip</a></p>
<p>EDIT: I&#8217;ve corrected a typo in the LoadContent method. The starting texture name shouldn&#8217;t be &#8220;gliders&#8221;, but &#8220;glider&#8221;. Please correct this in your downloaded project file also.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/onedevarmy.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/onedevarmy.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/onedevarmy.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/onedevarmy.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/onedevarmy.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/onedevarmy.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/onedevarmy.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/onedevarmy.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/onedevarmy.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/onedevarmy.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/onedevarmy.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/onedevarmy.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/onedevarmy.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/onedevarmy.wordpress.com/167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=167&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://onedevarmy.wordpress.com/2009/10/08/gameoflife-source-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cfffc0af8bfbf27da254b302cb8a80f?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">brainzizizi</media:title>
		</media:content>
	</item>
		<item>
		<title>Offside &#8211; Semester started</title>
		<link>http://onedevarmy.wordpress.com/2009/09/20/offside-semester-started/</link>
		<comments>http://onedevarmy.wordpress.com/2009/09/20/offside-semester-started/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 09:01:58 +0000</pubDate>
		<dc:creator>brainzizizi</dc:creator>
				<category><![CDATA[private]]></category>
		<category><![CDATA[game of life conway gpu]]></category>

		<guid isPermaLink="false">http://onedevarmy.wordpress.com/?p=165</guid>
		<description><![CDATA[As soon as the semester starts I got a mental blockade as far as programming goes. Last I did in like 30 minutes was Conway&#8217;s game of life on the CPU and the GPU. It&#8217;s easier to do on the GPU if you know what you&#8217;re doing. I&#8217;ll post the source as soon as I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=165&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As soon as the semester starts I got a mental blockade as far as programming goes. Last I did in like 30 minutes was Conway&#8217;s game of life on the CPU and the GPU. It&#8217;s easier to do on the GPU if you know what you&#8217;re doing. I&#8217;ll post the source as soon as I have some time.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/onedevarmy.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/onedevarmy.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/onedevarmy.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/onedevarmy.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/onedevarmy.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/onedevarmy.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/onedevarmy.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/onedevarmy.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/onedevarmy.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/onedevarmy.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/onedevarmy.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/onedevarmy.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/onedevarmy.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/onedevarmy.wordpress.com/165/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=onedevarmy.wordpress.com&amp;blog=6709379&amp;post=165&amp;subd=onedevarmy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://onedevarmy.wordpress.com/2009/09/20/offside-semester-started/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cfffc0af8bfbf27da254b302cb8a80f?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">brainzizizi</media:title>
		</media:content>
	</item>
	</channel>
</rss>
