<?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>Hidden Games &#187; texture atlas</title>
	<atom:link href="http://blog.hiddengames.co.uk/tag/texture-atlas/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hiddengames.co.uk</link>
	<description>Indie video game developer</description>
	<lastBuildDate>Sat, 04 Feb 2012 11:31:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Texture Atlas Tool for Maya</title>
		<link>http://blog.hiddengames.co.uk/2011/06/03/texture-atlas-tool-for-maya/</link>
		<comments>http://blog.hiddengames.co.uk/2011/06/03/texture-atlas-tool-for-maya/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 11:17:46 +0000</pubDate>
		<dc:creator>Pixelnaut</dc:creator>
				<category><![CDATA[Source Code]]></category>
		<category><![CDATA[development diary]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[texture atlas]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.hiddengames.co.uk/?p=429</guid>
		<description><![CDATA[Today sees the (belated) release of our TextureAtlas Tool, which we used during the development of Prisoner 84. Although it&#8217;s far from perfect, we have decided to make the tool (along with its source code) available to the public in the hope that, if you find it useful, you might also want to contribute to [...]]]></description>
			<content:encoded><![CDATA[<p>Today sees the (belated) release of our <a href="/source/maya-textureatlas/">TextureAtlas Tool</a>, which we used during the development of <a href="/games/prisoner84/">Prisoner 84</a>.</p>
<p>Although it&#8217;s far from perfect, we have decided to make the tool (along with its source code) available to the public in the hope that, if you find it useful, you might also want to contribute to help improve it.</p>
<p><a href="/source/maya-textureatlas/">Click here</a> for download links and more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hiddengames.co.uk/2011/06/03/texture-atlas-tool-for-maya/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TextureAtlas Tool for Maya</title>
		<link>http://blog.hiddengames.co.uk/source/maya-textureatlas/</link>
		<comments>http://blog.hiddengames.co.uk/source/maya-textureatlas/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 10:40:46 +0000</pubDate>
		<dc:creator>Pixelnaut</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[texture atlas]]></category>

		<guid isPermaLink="false">http://blog.hiddengames.co.uk/?page_id=180</guid>
		<description><![CDATA[TextureAtlas Tool for Maya This is a texture atlas tool we created during the development of Prisoner 84. It allowed us to quickly and efficiently produce texture atlases for the 40+ levels that appeared in the game. We have decided to release it to the public for anybody out there who might be looking for [...]]]></description>
			<content:encoded><![CDATA[<h1>TextureAtlas Tool for Maya</h1>
<p>This is a texture atlas tool we created during the development of <a href="/games/prisoner84/">Prisoner 84</a>.  It allowed us to quickly and efficiently produce texture atlases for the 40+ levels that appeared in the game.  We have decided to release it to the public for anybody out there who might be looking for a texture atlas solution for their project.  It is on the fussy side, however, so we have also made the source code available in the hope that, if you find it useful, you might also wish to contribute by helping to improve it.</p>
<h3>Downloads</h3>
<p><p><a href="http://blog.hiddengames.co.uk/download/3">mayaTextureAtlas.zip 1.0</a> (109.01 kB) - This zip contains the final release version of the TextureAtlas tool, which can be installed for Maya 2012 x64.</p>
<br />
<p><a href="http://blog.hiddengames.co.uk/download/4">mayaTextureAtlas-src.zip 1.0</a> (19.83 MB) - This zip contains the complete source code for the TextureAtlas tool.</p>
</p>
<div class="postdivider_small">&nbsp;</div>
<h3>Prerequisites</h3>
<p>Before doing anything you should first make sure you have the following redistributions installed on your system:-</p>
<p><strong>Visual Studio x64 re-distributable</strong><br />
<a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=bd512d9e-43c8-4655-81bf-9350143d5867">http://www.microsoft.com/downloads/en/details.aspx?FamilyID=bd512d9e-43c8-4655-81bf-9350143d5867</a></p>
<p><strong>DirectX dlls</strong><br />
<a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3b170b25-abab-4bc3-ae91-50ceb6d8fa8d">http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3b170b25-abab-4bc3-ae91-50ceb6d8fa8d</a></p>
<p>Please note this plug-in is currently built ONLY for the 64-bit Windows version of Maya 2012.  Hopefully in the future &#8211; or through community help &#8211; we can get this cross-platform, the way it should be!</p>
<div class="postdivider_small">&nbsp;</div>
<h3>Installation</h3>
<p>1. Copy &#8220;hg_TextureAtlas2012x64.mll&#8221; into your Maya &#8220;plug-ins&#8221; folder.  This can be in either your &#8220;C:\Users\*YOURUSERNAME*\Documents\Maya\plug-ins&#8221; folder, or in &#8220;C:\Program Files\Autodesk\Maya2012\bin\plug-ins&#8221; (or wherever your copy of Maya 2012 is installed).</p>
<p>2. Copy &#8220;nvatlas.exe&#8221; into your Maya &#8220;bin&#8221; folder.  This is usually in &#8220;C:\Program Files\Autodesk\Maya2012\bin&#8221; (or wherever your copy of Maya 2012 is installed).</p>
<p>3. Open up Maya and go to &#8220;Window > Settings/Preferences > Plug-in Manager&#8221;.  Provided steps 1 and 2 were completed without error, &#8220;hg_TextureAtlas2012x64.mll&#8221; will now appear in your list of available<br />
plug-ins.  Tick the box next to &#8220;Loaded&#8221; to enable it (and optionally tick the &#8220;Auto load&#8221; box so that the plug-in is automatically loaded each time you open Maya).</p>
<div class="postdivider_small">&nbsp;</div>
<h3>How it works</h3>
<p>Our TextureAtlas tool has two methods of atlasing:  &#8220;Standard Atlas&#8221; and &#8220;Prebake Atlas&#8221;.</p>
<p>The <strong>standard method</strong> atlases by texture; so if your scene contains 10 separate textures then those 10 textures will be added to your atlas regardless of how many times they are used in the scene, and regardless of how many meshes there are in the scene (meshes that share textures are each allocated the same UV offsets within the atlas).  This method is perfect when your artwork is going to be lit in real-time and doesn&#8217;t require pre-baked lighting of any kind.</p>
<p><i>An example of a standard texture atlas from Prisoner 84&#8230;</i><img src="/assets/source/atlas-standard-1.jpg" alt="Standard texture atlas method"/></p>
<p>The <strong>prebake method</strong> atlases by mesh rather than by texture.  For example, if you have a single texture applied to 10 separate meshes in your scene, 10 instances of that texture (along with the corresponding UV offsets of each of those meshes) will be created inside the atlas.  This means all 10 textures can be pre-lit (or altered in some other way) within the texture atlas itself.</p>
<p><i>An example of a prebake texture atlas from Prisoner 84&#8230;</i><img src="/assets/source/atlas-prebake-1.jpg" alt="Prebake texture atlas method"/></p>
<div class="postdivider_small">&nbsp;</div>
<h3>Commands / How to use it</h3>
<p>The TextureAtlas tool is run via Maya&#8217;s command line&#8211;although we recommend that you save each command to your shelf.  Commands are as follows:-</p>
<p><strong>&#8220;TextureAtlas&#8221;</strong><br />
Creates a standard texture atlas of selected meshes only</p>
<p><strong>&#8220;TextureAtlas -all”</strong><br />
Creates a standard texture atlas of all meshes in the scene</p>
<p><strong>&#8220;TextureAtlas -prebake”</strong><br />
Creates a prebake texture atlas of selected meshes only</p>
<p><strong>&#8220;TextureAtlas -prebake -all”</strong><br />
Creates a prebake texture atlas of all meshes in the scene</p>
<div class="postdivider_small">&nbsp;</div>
<h3>I&#8217;ve run it, but what now?</h3>
<p>Once the texture atlasing process has completed successfully, you will find the following files in your project&#8217;s &#8220;textures&#8221; folder:-</p>
<p><i>atlasTexList.txt</i><br />
This is a list of all textures that have been added to your atlas (together with their absolute paths).</p>
<p><i>level-atlas.tai</i><br />
This is the Texture Atlas Index file; it lists all textures together with their new UV offsets within the atlas itself.</p>
<p><i>level-atlas0.tga, level-atlas1.tga, and so on</i><br />
These are your new texture atlas files.  They are automatically assigned to your existing materials in Maya.  It is recommended, however, that you move these to a different folder and create a new material in your scene to assign them to.  This will avoid overwriting existing texture atlas data if you run the TextureAtlas tool again in the same Maya project.</p>
<div class="postdivider_small">&nbsp;</div>
<h3>Known Issues, Limitations and Workarounds</h3>
<p>This tool is still very much a work in progress, so there are a few issues.  However, most of these issues are avoidable if you follow the steps outlined in this section.</p>
<p><strong>1. TEXTURES/UVS OVERLAP</strong></p>
<p>Sometimes multiple texture UVs are allocated coordinates which cause them to overlap with one another inside the texture atlas.</p>
<p>This issue is usually caused by one of two things:  1) when rectangular textures&#8211;particularly those with a significant difference between width and height (i.e. 16&#215;256)&#8211;are allocated atlas space near to a square texture, or 2) when the atlas tool is attempting to use up “odd space” caused by inconsistent texture sizes, non-power of two textures, or poorly grouped texture UVs.</p>
<p><i>Workarounds&#8230;</p>
<p>a) Avoid elongated rectangular textures<br />
Use rectangular textures sparingly, and avoid using elongated rectangular textures (i.e. textures that are 16&#215;256).</p>
<p>b) Use consistent texture sizes<br />
To avoid “odd space” try to be consistent with texture sizes.  This is the case regardless of whether or not you are using power of two textures (i.e. 16, 32, 64, 128, 256, 512, etc.).</p>
<p>For best results use square power of two textures as much as possible (the texture atlas is a power of two texture, so it makes sense that power of two textures will fit the best inside it).</p>
<p>c) Change scene hierarchy to control atlas output<br />
Another trick to avoid “odd space” is to manually control where a mesh&#8217;s texture will appear inside the atlas.</p>
<p>The order in which a mesh is atlased is determined by its position in the scene hierarchy&#8211;a mesh that comes first in the scene will be dealt with first by the atlasing tool and will be placed in the top left corner of the file.  To edit the scene hierarchy, open Maya&#8217;s outliner (“Window > Outliner”) and make sure “Display > Sort Order” is set to “Scene Hierarchy”.  Now re-order your meshes in the outliner so that they are grouped by their texture sizes: meshes which have larger textures should appear first in the scene (when the texture atlas has more space to work with) and meshes which have smaller textures should appear last (when the texture atlas has less space available).<br />
</i></p>
<p><strong>2) MATERIALS SEEM BROKEN WHEN MULTIPLE TEXTURE ATLASES ARE CREATED</strong></p>
<p>When more than one texture atlas is created, Maya will automatically assign the last atlas file created to all of your existing materials.  To avoid this we recommend limiting atlas usage to one per scene/level.  It is, however, possible to manually re-assign separate texture atlas materials to the relevant meshes.</p>
<p><strong>3) MESHES CAN ONLY HAVE ONE TEXTURE ASSIGNED (PREBAKE METHOD ONLY)</strong></p>
<p>When using the prebake method, make sure multiple textures aren&#8217;t assigned to a single mesh, otherwise the atlas will get stuck in a loop.  Individual meshes can only have one texture assigned to them.</p>
<p><strong>4) A TIP TO SAVE SPACE (PREBAKE METHOD ONLY)</strong></p>
<p>If you want to save space in your texture atlas, you can combine meshes that share a single texture and only one texture will be added to the atlas.</p>
<p>This is useful if you know two meshes that share the same texture are going to be lit in the same way (e.g. a symmetrical corridor), or if an object or tile appears in a level multiple times but doesn&#8217;t require a unique instance of its assigned texture (e.g. a door sign used throughout the level that doesn&#8217;t require lighting to ensure it is always legible).</p>
<div class="postdivider_small">&nbsp;</div>
<h3>Code</h3>
<p>What you&#8217;ll need&#8230;</p>
<ul class="featureslist">
<li>Visual Studio 2010 (any version should do-–even Express)</li>
<li>Maya 64 bit headers and libraries (the headers and libraries are part of a Maya install)</li>
</ul>
<p>To compile the code you will need a version of Visual Studio 2010 with 64 bit compilation tools and the 64 bit versions of the Maya libraries.  It is possible to build the 32 bit versions of everything if you wanted to, you just need to add the new target and make sure to link against the Maya 32 bit libraries.</p>
<p>You will have to set up the header and library paths for your Maya install into the project settings (you can just replace the defaults I&#8217;ve left in the project).</p>
<p>That&#8217;s pretty much all there is to change to get it compiling so long as the folder structure stays as it was in the zip file.  The final mll files go into the &#8216;mll&#8217; folder and should be copied to your document Maya path as you do each build, or you can tell visual studio to just place it there by default (be aware you can&#8217;t have the plug-in running in Maya when you compile this way as the file will be locked).</p>
<p><strong>NVidia Texture Tool</strong></p>
<p>The original code can be picked up here&#8230;<br />
<a href="http://developer.nvidia.com/legacy-texture-tools">http://developer.nvidia.com/legacy-texture-tools</a></p>
<p>What you&#8217;ll need&#8230;</p>
<ul class="featureslist">
<li>DirectX SDK <a href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&#038;FamilyID=3021d52b-514e-41d3-ad02-438a3ba730ba">http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&#038;FamilyID=3021d52b-514e-41d3-ad02-438a3ba730ba</a></li>
</ul>
<p>To compile the version supplied in the zip, you just need the latest DirectX SDK (I used the June 2010 as of writing).  Again you need to make sure the headers and libraries are set up for the project to see them.</p>
<p><i>Changes to the original code&#8230;</p>
<p>I changed some of the code to force certain options that were very iPhone build specific.  For example, the output atlas will always be a TGA regardless of the source textures, and it will create square 1024&#215;1024 files without mipmaps.</p>
<p>The options in the nvatlas tool should really go into some sort of dialogue in Maya so you can pick and choose what you want.  There are some parts of the code that are slightly broken by my changes. For example the important part of placing the textures into an atlas is not quite as precise as it used to be because I stopped it ordering textures by size.</i></p>
<div class="postdivider_small">&nbsp;</div>
<h3>Future plans</h3>
<p>The codebase could do with a thorough clean-up; as is always the case it was created quickly for a specific purpose, and it never really went through a proper design phase, nor was it tested properly.</p>
<p>Below are a few things I believe should be done to get this tool nearer to what it should be in terms of functionality:-</p>
<ul class="featureslist">
<li>The plug-in should not be reliant on the nVidia tool as this is preventing the tool from being cross-platform.  It is also an inefficient way to implement such a tool.  Using the rectangle bin packing code here <a href="http://clb.demon.fi/projects/rectangle-bin-packing">http://clb.demon.fi/projects/rectangle-bin-packing</a> is a very viable alternate which we are considering.</li>
<li>An &#8220;Undo&#8221; feature that fully supports Maya&#8217;s command history, so that an atlas can be generated at any time to check progress.</li>
<li>Better texture support (resolutions, bit types, formats, etc.)
<li>Add a dialogue-based interface that can be used to customise atlas output as well as provide a convenient place to implement future additions to the available options.</li>
<li>More flexibility with Maya&#8217;s HyperShade system (i.e. it shouldn&#8217;t matter how everything was originally mapped and what materials were used)</li>
</ul>
<div class="postdivider_small">&nbsp;</div>
<h3>Disclaimer</h3>
<p>This tool is released as is.  Please use at your own risk!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hiddengames.co.uk/source/maya-textureatlas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dev Diary #2: Texture Atlasing</title>
		<link>http://blog.hiddengames.co.uk/2010/03/13/dev-diary-2/</link>
		<comments>http://blog.hiddengames.co.uk/2010/03/13/dev-diary-2/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 20:07:05 +0000</pubDate>
		<dc:creator>HiddenJ</dc:creator>
				<category><![CDATA[Development Diary]]></category>
		<category><![CDATA[development diary]]></category>
		<category><![CDATA[texture atlas]]></category>

		<guid isPermaLink="false">http://blog.hiddengames.co.uk/?p=109</guid>
		<description><![CDATA[One of the recent additions to our tool chain is the ability to create texture atlases. Texture Atlasing is a concept whereby you place multiple textures into a single bigger texture or textures so that you drastically reduce your texture binding and swaps during the rendering of a complex scene. Atlasing has existed for a [...]]]></description>
			<content:encoded><![CDATA[<p>One of the recent additions to our tool chain is the ability to create <strong>texture atlases</strong>.</p>
<p><strong>Texture Atlasing</strong> is a concept whereby you place multiple textures into a single bigger texture or textures so that you drastically reduce your texture binding and swaps during the rendering of a complex scene.</p>
<p>Atlasing has existed for a while and has been used on many older games as a primary technique &mdash; the Quake games for example started using atlasing for a level&#8217;s lightmap information. We have recently been looking into this technique because we have increased our texture usage, plus atlasing has a lot of benefits on devices such as the iPhone where texture bandwidth is limited.</p>
<p><span id="more-109"></span></p>
<h3>Usage</h3>
<p>Previously we had been using a limited form of a texture atlas for our UI elements in our games. Here is an example of the atlas for the <a href="/air-cadets/">Air Cadets</a> UI artwork.</p>
<p class="thumbs"><a rel="lightbox[atlas]" href="/assets/news/2010-03-13_atlas.png"><img src="/assets/news/2010-03-13_atlas.png" alt="Air Cadets UI Texture Atlas" width="256px"/></a></p>
<p>As you can see we used a 1024&#215;1024 texture which contains every button, character and element seen throughout the games&#8217; menus and HUD. This atlas was created manually and we had to store image positions and dimensions in a spreadsheet which then was used to create the correct UV coordinates for the in game buttons/images. Although it worked, it was terribly slow for both of us and meant changes to the menu artwork caused many headaches!</p>
<p>For the current project we need to take advantage of atlasing for the main level scenes because our texture usage has drastically increased. After some research, I found that nVidia had released a command line driven tool back in 2004 that had various features to create an atlas automatically and output a useful text-based file (.TAI Texture Atlas Information file) that listed the original texture, its new atlas file and the UV offsets of the position in the atlas (see <a href="#links">links</a> at the bottom of this page).</p>
<p>After a few tests and most importantly having the source code to the tool, it looked like the perfect option to get this working within our pipeline with a few changes to help us make sure everything would work on the final iPod/iPhone hardware.</p>
<p>The route I chose was to create a new maya &#8216;command&#8217; plug-in that would externally call the command line tool with the scene textures, read the created TAI file, then use the new offsets to update all the UV coordinates for the scene. After some testing and custom changes to the nVidia tool, we can now generate atlases efficiently and have all our geometry updated in maya referencing the atlas with the correct texture coordinates.</p>
<p>This now has multiple uses across everything we do as we can decide to place multiple similar objects into an atlas or keep them separate. For example, if we have a scene that contains various prefab objects like tables, chairs, cups or other general incidental items (and we know that these items are going to have a high probability of always being drawn together even if they are separate models) we can simply put all their textures into the same atlas thus cutting down multiple texture swaps when the renderer is drawing these objects.</p>
<p>Once we iron out the few remaining bugs &ndash; and once we have got all of its features documented &ndash; <strong>we hope to release the maya tool at some point in the not-too-distant future</strong>.</p>
<h3>The Pros and Cons of Atlasing</h3>
<p>I&#8217;ve been quite positive about atlasing so far, however I should probably make a rundown of all the pros and cons so you can judge for yourself if this would be useful to projects you might be working on or if you are just researching the technique.</p>
<h3><strong>Pros</strong></h3>
<p><strong>Texture batching / Speed</strong><br/>Mentioned throughout this post, this is pretty much your main benefit. It is not guaranteed to give you a speed up, but with good render ordering it most likely will. For iPhone if you make your atlas a PVR texture as well, you will see much better bandwidth usage.</p>
<p><strong>No power of two limitation within the atlas</strong><br/>With an atlas you get the benefit of placing non-power of two textures into a large power of two atlas – thus allowing much greater freedom creating odd texture shapes and UV setups.</p>
<p><strong>Multiple use – UI elements, UV Animations</strong><br/>You can use the atlas in various forms as mentioned earlier: Air Cadets placed all UI elements into an atlas; you could also (for example) have a waterfall texture animation in your game that uses separate textures for each frame &mdash; if you place all the animation frames into an atlas all you have to do is perform UV coordinate shifts on a single atlas.</p>
<p><strong>Image assets easier to manage</strong><br/>Having all your texture information in a single big texture can make life a little simpler for art changes as everything is there in a single image resource for tweaks throughout development.</p>
<h3>Cons</h3>
<p><strong>Mipmapping and Filtering</strong><br/>Since all your textures are tightly packed, if your UVs are right on the edge of an image within the atlas and you want some sort of mipmap filtering on the atlas to smooth out pixelation, then when the image is mipmapped and using as an example, bilinear filtering &mdash; since it uses nearest neighbour you&#8217;ll potentially get pixels bleeding from unrelated textures which will look jarring in the final render. A solution to this can be to shift your UVs away from the exact edge of the image or make the image bigger itself inside the atlas with extra pixels so there is a safety border between two images.</p>
<p><strong>Limited texture wrapping / Texture tricks (rotate/scale) will not work</strong><br/>Since your UVs are all referencing the same texture, you are pretty much limited to the (GL_)REPEAT texture wrapping mode. It also means if you were using various texture matrix tricks to increase the repetition or to rotate/scale a texture image you become incredibly limited to small changes, otherwise you will see the surrounding images in the atlas.</p>
<p><strong>Moving/changing images within the atlas can be restrictive</strong><br/>The main point of creating an atlas is to pack as many images into a single texture as possible. Problems may arise when you decide that you want to remove an image from the atlas, which leaves a large wasteful hole that you don&#8217;t want. Simply moving the other images about in an image editor is no good as this breaks your UV values for the images that you move. I&#8217;d always recommend doing atlasing at a late stage in level creation so you can make more of a correct judgement on what images should be atlased on what objects.</p>
<h3>Round up</h3>
<p>I know this post is a bit text heavy, but I hope it provides some information to those looking into this technique. We&#8217;ve found this system to very beneficial in our current game as it allows us to push the uniqueness of an environment by using more textures than we could have previously. As mentioned, we hope to release our <strong<Maya atlas plugin</strong> which you might find useful, so watch this space. As ever comments, corrections or any other information is always welcome.</p>
<h3>Links</h3>
<p><a name="links">&nbsp;</a><a href="http://developer.nvidia.com/object/texture_atlas_tools.html" rel="external">nVidia Texture Atlas Tools</a> &#8211; Tools and source.<br />
<a href="http://clb.demon.fi/rectangle-bin-packing" rel="external">Algorithm plus another usage example</a> &#8211; Good example.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hiddengames.co.uk/2010/03/13/dev-diary-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

