<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.9.2" -->
<rss version="0.92">
<channel>
	<title>Game Angst</title>
	<link>http://gameangst.com</link>
	<description>because there are many ways to skin a cat, but you only get to choose one</description>
	<lastBuildDate>Mon, 10 May 2010 22:41:07 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>CrossStitch 2.0: Dynamic Shader Linking in a Statically Linked World</title>
		<description><![CDATA[In my last article, I described the first generation of CrossStitch, the shader assembly system used in MechAssault 2.  Today I&#8217;m going to write about the second generation of CrossStitch, the one used in Fracture.
Development on CrossStitch 2.0 began with the development of Day 1&#8217;s Despair Engine.  This was right at the end of MechAssault [...]]]></description>
		<link>http://gameangst.com/?p=441</link>
			</item>
	<item>
		<title>CrossStitch: A Configurable Pipeline for Programmable Shading</title>
		<description><![CDATA[Some pieces of code are a source of great pride and some pieces of code are a source of terrible shame.  It is due to the nature of game development, I believe, that many of the most interesting pieces of code I write eventually become both.  That is certainly the case with the CrossStitch shader [...]]]></description>
		<link>http://gameangst.com/?p=402</link>
			</item>
	<item>
		<title>Cascaded Perspective Variance Shadow Mapping</title>
		<description><![CDATA[Perhaps the most frustrating thing about shipping anything less than a blockbuster game is the lack of feedback you get on your work.  The very best games of any given year will be scrutinized and evaluated by the community of developers, but everything else is pretty much ignored.  I was surprised and pleased therefore, [...]]]></description>
		<link>http://gameangst.com/?p=339</link>
			</item>
	<item>
		<title>Symbol Sort : A Utility for Measuring C++ Code Bloat</title>
		<description><![CDATA[OVERVIEW
SymbolSort is a utility for analyzing code bloat in C++ applications.  It works by extracting the symbols from a dump generated by the Microsoft DumpBin utility or by reading a PDB file.  It processes the symbols it extracts and generates lists sorted by a number of different criteria.  You can read more about the motivation behind SymbolSort here.
The [...]]]></description>
		<link>http://gameangst.com/?p=320</link>
			</item>
	<item>
		<title>Minimizing Code Bloat: Redundant Template Instantiation</title>
		<description><![CDATA[This article is a continuation of Minimizing Code Bloat for Faster Builds and Smaller Executables.
The last item on my list of code bloat causes is redundant template instantiation.  Template functions have a lot in common with inline functions.  Like inline functions, template functions are instantiated into the object file of every translation unit in which [...]]]></description>
		<link>http://gameangst.com/?p=246</link>
			</item>
	<item>
		<title>Minimizing Code Bloat: Incorrect Inlining</title>
		<description><![CDATA[This article is a continuation of Minimizing Code Bloat for Faster Builds and Smaller Executables.
Earlier I talked about excessive inlining as a common cause of code bloat.  Excessive inlining is when code that shouldn&#8217;t be inlined is.  Today I&#8217;m going to look at a related problem, code that is declared as inlined but never will [...]]]></description>
		<link>http://gameangst.com/?p=224</link>
			</item>
	<item>
		<title>Minimizing Code Bloat: Static Allocations</title>
		<description><![CDATA[This article is a continuation of Minimizing Code Bloat for Faster Builds and Smaller Executables.
Static allocations are certainly the simplest and most predictable sources of code bloat.  Static allocations refer to data structures in a program for which storage is allocated for the entire duration of the application&#8217;s execution.   In C++ file, class, and [...]]]></description>
		<link>http://gameangst.com/?p=222</link>
			</item>
	<item>
		<title>Minimizing Code Bloat: Excessive Inlining</title>
		<description><![CDATA[This article is a continuation of Minimizing Code Bloat for Faster Builds and Smaller Executables.
When a function is inlined its code is, from the perspective of the compiler, replicated to every place where the function is called.  For very simple functions the inlined code can be smaller than the out-of-line function call, and the result [...]]]></description>
		<link>http://gameangst.com/?p=212</link>
			</item>
	<item>
		<title>Minimizing Code Bloat: Template Overspecialization</title>
		<description><![CDATA[This article is a continuation of Minimizing Code Bloat for Faster Builds and Smaller Executables.
Even in an engine that isn&#8217;t rife with template meta-programming, template overspecialization can be a major source of code bloat.  Very few programmers, in my experience, really think about what the compiler and linker are doing with the code they write. [...]]]></description>
		<link>http://gameangst.com/?p=226</link>
			</item>
	<item>
		<title>Minimizing Code Bloat for Faster Builds and Smaller Executables</title>
		<description><![CDATA[No matter how much code you have, somebody always wants more.  That&#8217;s certainly been the case with every game and every engine I&#8217;ve worked on.  My good friend Kyle, who has for years been tracking all sorts of wonderful statistics about the development of Despair Engine, recently announced that we&#8217;d surpassed 1.5 million lines of [...]]]></description>
		<link>http://gameangst.com/?p=46</link>
			</item>
</channel>
</rss>
