<?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>The Toolsmiths</title>
	<atom:link href="http://thetoolsmiths.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://thetoolsmiths.org</link>
	<description></description>
	<lastBuildDate>Mon, 15 Mar 2010 15:38:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Adult Beverages</title>
		<link>http://thetoolsmiths.org/2010/03/08/adult-beverages/</link>
		<comments>http://thetoolsmiths.org/2010/03/08/adult-beverages/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 23:17:57 +0000</pubDate>
		<dc:creator>Geoff Evans</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[GDC]]></category>

		<guid isPermaLink="false">http://thetoolsmiths.org/?p=475</guid>
		<description><![CDATA[
If you are free at 6:00 PM on Thursday come out for some drinks during GDC.  We will be at The Thirsty Bear Brewing Company.

Photo Credit: http://www.flickr.com/photos/burnblue/ / CC BY-NC-SA 2.0

]]></description>
			<content:encoded><![CDATA[<p><img src="http://thetoolsmiths.org/wp-content/uploads/2010/03/308441464_c5d9def328_o.jpg"/></p>
<p>If you are free at 6:00 PM on Thursday come out for some drinks during GDC.  We will be at <a href="http://maps.google.com/places/us/ca/san-francisco/howard-st/661/-thirsty-bear-brewing-co?hl=en">The Thirsty Bear Brewing Company</a>.</p>
<p><font size="-3"></p>
<div xmlns:cc="http://creativecommons.org/ns#" about="http://www.flickr.com/photos/burnblue/308441464/">Photo Credit: <a rel="cc:attributionURL" href="http://www.flickr.com/photos/burnblue/">http://www.flickr.com/photos/burnblue/</a> / <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/">CC BY-NC-SA 2.0</a></div>
<p></font></p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2010/03/08/adult-beverages/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Follow us on Twitter</title>
		<link>http://thetoolsmiths.org/2010/03/03/follow-us-on-twitter/</link>
		<comments>http://thetoolsmiths.org/2010/03/03/follow-us-on-twitter/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 16:44:22 +0000</pubDate>
		<dc:creator>Geoff Evans</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://thetoolsmiths.org/?p=466</guid>
		<description><![CDATA[
The Toolsmiths now have a twitter feed here (thetoolsmiths).  Blog posts should be tweeted there, and we will drop some tweets about happenings at GDC.
]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.theyoungestcandidate.com/main/Portals/0/twitter_logo.png"/></p>
<p>The Toolsmiths now have a twitter feed <a href="http://twitter.com/thetoolsmiths">here</a> (thetoolsmiths).  Blog posts should be tweeted there, and we will drop some tweets about happenings at GDC.</p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2010/03/03/follow-us-on-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tools Related GDC10 Sessions</title>
		<link>http://thetoolsmiths.org/2010/03/03/tools-related-gdc10-sessions/</link>
		<comments>http://thetoolsmiths.org/2010/03/03/tools-related-gdc10-sessions/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 16:34:02 +0000</pubDate>
		<dc:creator>Geoff Evans</dc:creator>
				<category><![CDATA[GDC]]></category>

		<guid isPermaLink="false">http://thetoolsmiths.org/?p=426</guid>
		<description><![CDATA[
First off, our official Tools SIG gathering at GDC is on Thursday 1:30 to 2:30 at the IGDA booth.
Everyone should also show up to at least one of John Walker&#8217;s excellent roundtables.  I find them useful to see what approaches people are using in their pipelines and share lessons learned from the past year.
Technical [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://kleberandrade.files.wordpress.com/2010/02/gdc2010_body_bg.jpg"/></p>
<p>First off, our official Tools SIG gathering at GDC is on Thursday 1:30 to 2:30 at the IGDA booth.</p>
<p>Everyone should also show up to at least one of John Walker&#8217;s excellent roundtables.  I find them useful to see what approaches people are using in their pipelines and share lessons learned from the past year.</p>
<p><strong>Technical Issues in Tools Development</strong><br />
John Walker (Applied Signal Technology)<br />
Thursday 4:30- 5:30 Room 120, North Hall<br />
Friday 1:30- 2:30 Room 120, North Hall<br />
Saturday 9:00-10:00 Room 120, North Hall</p>
<p>Lectures:</p>
<p><strong>Data is a Four-Letter Word</strong><br />
Paul Du Bois (Double Fine) and Henry Goffin (Double Fine)<br />
Thursday 10:30-11:30 Room 131, North Hall</p>
<p><strong>Building Blocks: Artist Driven Procedural Buildings</strong><br />
James Golding (Epic Games)<br />
Thursday 10:30-11:30 Room 130, North Hall</p>
<p><strong>The Asset Pipeline for Just Cause 2: Lessons Learned</strong><br />
Mathias Westerdahl (Avalanche Studios)<br />
Thursday 3:00- 4:00 Room 131, North Hall</p>
<p><strong>Introduction to Maya API Programming and Custom UI</strong><br />
Kristine Middlemiss (Autodesk Inc.)<br />
Thursday 4:30- 5:30 Room 300, South Hall</p>
<p><strong>Collada &#8211; Featuring WebGL</strong><br />
Mark Barnes (Khronos Group)<br />
Friday 1:30- 2:30 Room 123, North Hall</p>
<p><strong>The Role of Middleware in Game Development: Today and Tomorrow</strong><br />
Martin Walker (Artificial Mind &#038; Movement), Kevin Scharff (Spark Unlimited), Matthew Shaw (Electronic Arts, Mythic Entertainment Studio) and Mark Stevens (Autodesk)<br />
Friday 4:30- 5:30 Room 123, North Hall</p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2010/03/03/tools-related-gdc10-sessions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Taming Third Party SDKs and Visual Studio</title>
		<link>http://thetoolsmiths.org/2010/02/23/taming-third-party-sdks-and-visual-studio/</link>
		<comments>http://thetoolsmiths.org/2010/02/23/taming-third-party-sdks-and-visual-studio/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 18:19:05 +0000</pubDate>
		<dc:creator>Geoff Evans</dc:creator>
				<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://thetoolsmiths.org/?p=415</guid>
		<description><![CDATA[Visual Studio fan or not, its ubiquity in game development means that sooner or later you will have to deal with its shortcomings.  It is the de facto standard IDE for the de facto standard game development operating system.
One of its weak points is the project file property editor.  While it does wrangle [...]]]></description>
			<content:encoded><![CDATA[<p>Visual Studio fan or not, its ubiquity in game development means that sooner or later you will have to deal with its shortcomings.  It is the de facto standard IDE for the de facto standard game development operating system.</p>
<p>One of its weak points is the project file property editor.  While it does wrangle compile and link flags pretty well, it tends to break when organizing include and lib paths in large codebases.  The knee jerk thing to do is to laundry list each include and lib path that every project needs in each project file.  This can be a real pain when moving to a different version of an SDK or library (since you have to update it in every project where it is referenced).</p>
<p>The built-in solution to this problem is Visual Studio Property Sheets.  Property Sheets are separate files of config data that each of your Visual Studio projects reference (or inherit from since they can be nested).  Property Sheets let you define your own macros that can be expanded using the standard $(Macro) syntax.  Using property sheet macros to path to the include and lib folders of your libraries and SDKs allows for updating all your project&#8217;s SDK dependencies by editing one shared property sheet file.</p>
<p>Insomniac&#8217;s property sheets are organized like this:<br />
Root.vsprops<br />
> SDK.vsprops<br />
>> Windows.vsprops</p>
<p>Root.vsprops defines for top level macros, SDK.vsprops defines macros that path to versioned SDKs and libraries checked into revision control, and Windows.vsprops defines macros and build settings for projects that target the Windows platform.  We also have a simple perl script (getsdk.pl) that syncs SDKs specified by SDK.vsprops by reading that file in directly (vsprops files are really XML files).</p>
<p>Another tricky bit of dealing with Visual Studio comes from its lack of a real compiler plugin API.  Each of the major build system integrations on the market (Incredibuild, SN Systems ProDG VSI) have to essentially hack your Visual Studio installation to function as a replacement for stock features.  When using these plugins Visual Studio still thinks its calling cl.exe and link.exe but really its calling a replacement program that either does the plugin&#8217;s bidding or falls back to the real stock program.</p>
<p>This creates an interesting situation with SN System&#8217;s ProDG VSI because it needs to know which version of the PS3 compiler to use when you go to build a project.  The VSI plugin looks to environment variables of Visual Studio&#8217;s devenv.exe to find the compiler to call from the replacement cl.exe and link.exe.  Since most of us like to branch our code, defining which PS3 SDK to use as a global environment variable is a pain because you have to update that environment variable on every machine that builds code every time you change SDKs.</p>
<p>Sadly one cannot use property sheet macros to solve this problem.  Even when the &#8220;Set in build environment&#8221; option is checked the user macros are never sourced into devenv.exe environment and will not be defined when the VSI goes to build your PS3 project.  VSI will then error out that its unable to find the PS3 compiler.  Presumably this option only causes the macro to be in the environment when Visual Studio calls out to external build tools when it is running its own builds (and not the builds of a hacked-in plugin like Incredibuild or VSI).  If Visual Studio had a real plugin architecture for alternate platforms then this would probably &#8220;just work&#8221; since the proper integration would be able to use the Visual Studio build system to call out to 3rd party compilers without unfortunate file swapping hacks.</p>
<p>A handy solution to this problem is to use <a href="http://workspacewhiz.com/SolutionBuildEnvironmentReadme.html">Workspace Whiz&#8217;s Solution Build Environment</a> to read environments variable from a text file in the same folder as the solution file.  The text file just needs to use a basename that matches the solution file (Foo.sln would have a corresponding Foo.slnenv file).  This will allow you to specify the proper environment variables and have them be loaded into devenv.exe&#8217;s environment and be ready for VSI to utilize when it needs to build your PS3 projects.  Since this file can be checked into revision control you don&#8217;t have to ever worry about setting a machine-wide environment variable for VSI to do its job.</p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2010/02/23/taming-third-party-sdks-and-visual-studio/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>IGDA Board Elections</title>
		<link>http://thetoolsmiths.org/2010/02/22/igda-board-elections/</link>
		<comments>http://thetoolsmiths.org/2010/02/22/igda-board-elections/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 17:03:56 +0000</pubDate>
		<dc:creator>Jeff Ward</dc:creator>
				<category><![CDATA[IGDA]]></category>
		<category><![CDATA[SIG Business]]></category>

		<guid isPermaLink="false">http://thetoolsmiths.org/?p=422</guid>
		<description><![CDATA[The Toolsmiths was created, and is an integral part of, the IGDA Tools SIG.  Right now, the IGDA is holding elections for its new board.  There are 23 candidates for 5 positions on the board, and you can read all of their statements at the IGDA’s website. In addition, Boston Chapter member and [...]]]></description>
			<content:encoded><![CDATA[<p>The Toolsmiths was created, and is an integral part of, the IGDA Tools SIG.  Right now, the IGDA is holding elections for its new board.  There are 23 candidates for 5 positions on the board, and you can read all of their statements at <a href="http://www.igda.org/igda-board-directors-2010-candidate-statements">the IGDA’s website</a>. In addition, Boston Chapter member and indie developer Scott McMillan has subjected each of the candidate statements to <a href="http://www.igda.org/igda-board-directors-2010-candidate-statements">some scrutiny</a>, and asks them some important questions about where they feel the IGDA is going over the next few years.</p>
<p>The elections are very important, especially this year. In the past, the IGDA has had image problems, in no small part because of the actions of certain board members.  It is important that we get board members that are actually extensions of our own voices, so that the IGDA can actually represent us as developers.  If you are a member of the IGDA (which I really hope you are) please <a href="http://www.igda.org/2010election/BoDVote">go vote</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2010/02/22/igda-board-elections/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GDC Approaches</title>
		<link>http://thetoolsmiths.org/2010/02/21/gdc-approaches/</link>
		<comments>http://thetoolsmiths.org/2010/02/21/gdc-approaches/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 23:40:08 +0000</pubDate>
		<dc:creator>Jeff Ward</dc:creator>
				<category><![CDATA[GDC]]></category>
		<category><![CDATA[SIG Business]]></category>

		<guid isPermaLink="false">http://thetoolsmiths.org/?p=419</guid>
		<description><![CDATA[GDC gets closer every day.  This year, instead of doing an official IGDA roundtable to talk SIG business, we&#8217;ve decided to just get together for beers at a local bar.  The location and time is yet to be determined, but I would like to find out what night the membership / readers would prefer.
So please [...]]]></description>
			<content:encoded><![CDATA[<p>GDC gets closer every day.  This year, instead of doing an official IGDA roundtable to talk SIG business, we&#8217;ve decided to just get together for beers at a local bar.  The location and time is yet to be determined, but I would like to find out what night the membership / readers would prefer.</p>
<p>So please take a moment to visit the site and respond to the poll in this post to let us know when you&#8217;d most like to gather, and we&#8217;ll see you at GDC!</p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2010/02/21/gdc-approaches/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>XSLT as a Development Tool</title>
		<link>http://thetoolsmiths.org/2010/01/22/xslt-as-a-development-tool/</link>
		<comments>http://thetoolsmiths.org/2010/01/22/xslt-as-a-development-tool/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 13:00:53 +0000</pubDate>
		<dc:creator>Dan Goodman</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tool Design]]></category>
		<category><![CDATA[LinkedIn]]></category>

		<guid isPermaLink="false">http://thetoolsmiths.org/?p=403</guid>
		<description><![CDATA[Some time ago, I decided to write a small C# &#8220;wizard&#8221; tool for enemy encounters and other level design patterns.  The idea was to create pattern types, that designers could define with a small amount of data (different for each type of pattern) that could be exported into a much more complex xml format that could describe when [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago, I decided to write a small C# &#8220;wizard&#8221; tool for enemy encounters and other level design patterns.  The idea was to create pattern types, that designers could define with a small amount of data (different for each type of pattern) that could be exported into a much more complex xml format that could describe when to spawn what enemies, what behaviors and properties to give them, etc. in order to make each instance of a pattern unique. </p>
<p>The properties set by the designers were stored internally as an XML document, since XML in C# is incredibly easy to manipulate, and since the data would be different for each level design pattern.  It was easy enough to save out the raw XML data as it was stored internally, but the problem was how to transform this data into the format that would be read into the game. Enter XSLT.</p>
<p>C# has the functionality to transform data internally with an external XSLT file.  It&#8217;s easy enough to associate a XSLT file with a specific pattern, apply it at run time, and then simply write out the result.  At this point, it&#8217;s simply a matter of providing the designers with the data files necessary to generate their data.</p>
<p>The advantages here are great.  Putting the complex structure and syntax in an external file, and separating it from the designer&#8217;s view, allows them to concentrate on what&#8217;s  actually important.  The downside is that someone has to craft these XSLT files, which is a format that is a bit obtuse for someone used to functional languages.  Additionaly, XSLT has little to no debugging capability.</p>
<p>Now, more recently, I&#8217;ve had the challenge of writing an exporter from OpenOffice Calc, which also uses XSLT as filters for importing and exporting.  All OpenOffice documents are are stored as XML.  In fact, if you simply rename an .ODS file to a .ZIP file, you can explore the format, which is spread over several files inside the .ZIP, the most interesting of which is called content.xml.  This is the data that needs to be transformed in order to get the information out of OpenOffice into your own format.</p>
<p>What we wanted was a way to store properies of all enemies in a single table, so designers could tweak values easily.  The data then needed to be exported into a proprietary text format (not XML).  This is also relatively easy with XSLT, but as with anything, exporting from Calc with XSLT had its pitfalls.</p>
<p>It&#8217;s easy enough to access individual cells in a row in Calc.  Unfortunately, for some reason, they decided that if adjacent cells in a single row have the same value, it would only be stored in the first cell and an attribute on that cell would indicate the value repeats for n-number of cells.</p>
<p>With XSLT, there are no variables that can change their values, only constants within a single template (the XSLT equivalent of a function).  Consequently, there are no &#8220;for loops&#8221; in the traditional sense.  The way to get around this with XSLT is to use recursion.  In my script, I basically have every cell recursively calling the template on the next cell in the row, or on itself in the case of repeated cells, and track the cell heading (the first row of the table) separately.  Just thinking about it gives me nightmares.</p>
<p>At any rate, more and more data is being stored as XML, and consequently XSLT is probably here to stay.  It&#8217;s another tool that should be available in the game developer&#8217;s toolbox, but must be used with care.  To learn more, there are tons of resources on the web, but your best bet for a good introduction is the W3 schools site at <a href="http://www.w3schools.com/xsl/">http://www.w3schools.com/xsl/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2010/01/22/xslt-as-a-development-tool/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tools Programmer Fundamentals</title>
		<link>http://thetoolsmiths.org/2010/01/18/tools-programmer-fundamentals/</link>
		<comments>http://thetoolsmiths.org/2010/01/18/tools-programmer-fundamentals/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 17:28:03 +0000</pubDate>
		<dc:creator>Jeff Ward</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Teams]]></category>

		<guid isPermaLink="false">http://thetoolsmiths.org/?p=401</guid>
		<description><![CDATA[A while back, after a talk I gave at our local IGDA chapter meeting, I got an email from a recruiter at a local game development company.  He was looking to fill a position for a tools engineer and wanted to know what he needed to look for.  I never got back to him (sorry!) [...]]]></description>
			<content:encoded><![CDATA[<p>A while back, after a talk I gave at our local IGDA chapter meeting, I got an email from a recruiter at a local game development company.  He was looking to fill a position for a tools engineer and wanted to know what he needed to look for.  I never got back to him (sorry!) mostly because I didn’t know what to tell him.  What makes a good tools engineer?  More importantly, what’s going to make someone want to take a position in tools development over a position in, say, game play programming, or AI programming, or graphics programming?  Is there a distinct difference?</p>
<p>I really wasn’t sure of the answers to these questions until recently, and it made me think a lot about… well… you’ll see.</p>
<h2>The Fundamental Trait</h2>
<p>During my thinking, I think I identified the fundamental trait that makes a good tools programmer, or at least a programmer that would rather be in tools than any other field of game development: the desire to fix things.</p>
<p>This is different from most programmers who enter the game industry.  Most game programmers want to create things.  They want to point at a portion of a game and say “You see that?  I did that.  I made that happen.”  As tools programmers, we can’t really say that.  I worked on Oblivion and Fallout 3, on the game team, but there’s nothing I can specifically point to in the game that I really created.  The closest I can get to is that I can point at the models and say “You see that model?  I made the tool that made that model more memory efficient on the 360.”</p>
<p>Game programmers want to create, and, in my experience, when you talk to people both inside and outside the industry and say you’re a game programmer, the first thing they’ll ask is “So what did you do on the game?” expecting that you’ll be able to point to something specific.  Gameplay programmers can say “I made that system work.” AI programmers can say “I made that person move.”  Graphics programmers can say “I made that thing render and look good.”</p>
<p>Tools programmers can really only point at the team and say “I made that work better.”  And honestly that’s how we want it.  We take joy in oiling the machine.</p>
<p>The problem with the fundamental trait is that it’s not the trait that makes people enter the game industry.  A programmer that takes joy in oiling the machine can do so in almost any industry, and, unfortunately, the game industry offers some of the worst hours, worst pay, and worst return on emotional investment of any programming industry.  So, the only people you’re going to get looking to be tools programmers are going to be those that are attracted to the game industry in the first place, and the problems that it stands to solve.  In my experience, this means creative people.</p>
<h2>The Fundamental Dichotomy</h2>
<p>Because you’re working with creative people, game industry tools programmers not only want to oil the machine, they also want to take part in its construction.  Like most good programmers, good tools programmers want to constantly try new things, learn new technologies, and generally broaden their knowledge and hopefully find a way to improve your tool chain as a result.</p>
<p>The dichotomy here is that, at some point, you need to stop these creative people from being creative, and earlier than you would the rest of the game team.  They need to stabilize their tools for use by the team, and therefore they enter support for code a lot sooner than the rest of the team, and support is the one thing creative individuals dread.  It means the end of creative solutions, and the start of debugging drudgery.  Keeping a balance of both is tough, but necessary, to keep the best tools programmers on your team.</p>
<h2>Achieving the Balance</h2>
<p>In my opinion, there are a few things you can do to help keep this fundamental balance between oiling the machine and constructing the machine.  It boils down to the fundamental roles of your tools team during the different phases of a game’s production.</p>
<p>During pre-production, give your tools programmers some time to be in full construction mode.  Allow them to try new things, new pipelines, new technologies.  Let them look into converting the build system to Erlang, rewrite your Win32 tool in C#, or improve the interface on many tools.  This is a prototyping phase, and should be labeled as such.  Things made during this time do not necessarily need to be working, just prove that something will be more efficient than what is already available.</p>
<p>During code production, you should select the prototypes that make the most sense to implement and implement them.  Here, your tools programmers are working very closely with the other teams to make sure all of their needs are going to be handled.  They’re constructing the tools and letting out creative energy, but the tools now have clients (the team) and the client’s needs have to be met.</p>
<p>As the game enters production, the tools team needs to transition to support and minor improvements.  At this point you’re mostly looking at bug fixes, but all of your tools programmers should be researching how well tools are doing “in the field” and look for ways to improve interfaces and save other team members time, either now with minor changes or during the next phase.  When code lock down occurs, this should include tools, and the team has entered support mode.</p>
<p>However, once code lockdown occurs, the tools programmers, provided they have time, should be already entering pre-production on their new tools.  Now is the best time.  The problems of their technologies are fresh in their mind, and if they can fix them now, when more of the core team moves on to pre-production they can start being productive immediately with new tools.</p>
<p>This cycle helps keep your tools programmers creative, and helps them really point to the whole process and say “I made that work better,” which is exactly what they want.</p>
<p>What do others think?</p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2010/01/18/tools-programmer-fundamentals/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>IGDA Board Nominations Open</title>
		<link>http://thetoolsmiths.org/2009/12/23/igda-board-nominations-open/</link>
		<comments>http://thetoolsmiths.org/2009/12/23/igda-board-nominations-open/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 16:02:13 +0000</pubDate>
		<dc:creator>Jeff Ward</dc:creator>
				<category><![CDATA[SIG Business]]></category>

		<guid isPermaLink="false">http://thetoolsmiths.org/?p=398</guid>
		<description><![CDATA[The IGDA has opened nominations for the Board.  From the newsletter that went out to IGDA members:
As we approach the start of 2010, it is time for us to begin the process of electing new representatives to our IGDA Board of Directors.  These are the people who will be adding their voices to the decision [...]]]></description>
			<content:encoded><![CDATA[<p>The IGDA has opened nominations for the Board.  From the newsletter that went out to IGDA members:</p>
<blockquote><p><span style="font-family: Arial; font-size: x-small;">As we approach the start of 2010, it is time for us to begin the process of electing new representatives to our IGDA Board of Directors.  These are the people who will be adding their voices to the decision making aspects of your association and choosing the direction for the organization to follow for years to come.  Each of these individuals gives of their time and energy to move the association forward in the direction they feel most represents the will of the membership and the good of the association.</span></p></blockquote>
<p>The link to nominate Board members is here: <a href="http://www.igda.org/elections/nomination-packet">http://www.igda.org/elections/nomination-packet</a> Note that you have to be an IGDA member to nominate a Board member, and you must be nominating another IGDA member.  (We recommend you be one anyway, and please note in your membership profile that you are a member of the Tools SIG)</p>
<p>It&#8217;s important to remember that the Board affects how the IGDA is run, and in many ways, it is the public face of the IGDA.  In some people&#8217;s eyes, the IGDA had a huge problem with public relations last year, partially because of the positions and actions of some of its board members.  This is your opportunity to make sure that developers that you respect get on the board and represent your interests, so please do not skip out.</p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2009/12/23/igda-board-nominations-open/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improving Builds (GameX Talk)</title>
		<link>http://thetoolsmiths.org/2009/12/14/improving-builds-gamex-talk/</link>
		<comments>http://thetoolsmiths.org/2009/12/14/improving-builds-gamex-talk/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 19:57:59 +0000</pubDate>
		<dc:creator>Jeff Ward</dc:creator>
				<category><![CDATA[Builds]]></category>

		<guid isPermaLink="false">http://thetoolsmiths.org/?p=396</guid>
		<description><![CDATA[As many of you know, I&#8217;m a stickler for a good build process.  In my mind, a any game team can loose a lot of time and money just waiting for their builds to complete, or waiting for a build that won&#8217;t crash every 10 minutes.  This is mitigated somewhat by programming processes like unit [...]]]></description>
			<content:encoded><![CDATA[<p>As many of you know, I&#8217;m a stickler for a good build process.  In my mind, a any game team can loose a lot of time and money just waiting for their builds to complete, or waiting for a build that won&#8217;t crash every 10 minutes.  This is mitigated somewhat by programming processes like unit testing and the like, but even with these, it is important that you have a clear and defined process for getting the build from check-in to team without any significant snags.</p>
<p>A few months ago, I gave a talk at GameX about improving builds and build process, and I’ve finally gotten around to posting the slides on my website, <a href="http://fuzzybinary.com/talks/SlackOff.ppt">here</a>.</p>
<p>There are a few things I wish I’d hit in the talk that just didn’t make it in, including talking about ways to distribute asset optimization and best practices for version control, but much of that is in flux for me right now, especially with my new found fascination with Mercurial and distributed version control (and it’s very real lack of binary / large file support).  Even without those concerns, I&#8217;ve yet to see anyone really tackle best practices in distributed asset optimization, including best practices in file composing (taking multiple files that make up a level, and composing so that they load faster), so it wasn&#8217;t something I was prepared to address.</p>
<p>What about from the readers?  What would you have liked to see in this talk that never got mentioned?  What would have rather I&#8217;d spent more time on?</p>
]]></content:encoded>
			<wfw:commentRss>http://thetoolsmiths.org/2009/12/14/improving-builds-gamex-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
