<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf:RDF
	xmlns="http://purl.org/rss/1.0/"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel rdf:about="http://feeds.garagegames.com/rss/blogs/developer/985/">
		<title>Blog for Matt Fairfax at GarageGames.com</title>
		<description>Blog feeds for Gamers and Developers in the GarageGames community.</description>
		<link>http://www.garagegames.com/</link>
		<image rdf:resource="http://www.garagegames.com/images/GarageGames_logo_small_w.gif" />
		<dc:date>2008-10-15T21:38:38+00:00</dc:date>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/985/15436"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/985/14931"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/985/14879"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/985/14560"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/985/14520"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/985/14469"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/985/14177"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/985/13565"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/985/12695"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/985/11489"/>
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.garagegames.com/blogs/985/15436">
		<dc:format>text/html</dc:format>
		<dc:date>2008-09-20T02:13:21+00:00</dc:date>
		<dc:creator>Matt Fairfax</dc:creator>
		<title>TGEA 1.8 on a Mac</title>
		<link>http://www.garagegames.com/blogs/985/15436</link>
		<description>&lt;h1&gt;TGEA 1.8 runs on Macs!&lt;/h1&gt;&lt;br&gt;&lt;b&gt;Running TGEA on a Mac&lt;/b&gt;&lt;br&gt;&lt;br&gt;After years of research, we here at GarageGames have painstakingly come up with a surefire process to run TGEA a Mac! Here is the procedure:&lt;br&gt;&lt;br&gt;1) First, be sure that you &lt;a href='http://www.apple.com/mac/' target=_blank&gt;buy&lt;/a&gt; an Intel-based Mac (&lt;i&gt;this is critical&lt;/i&gt;)&lt;br&gt;2) Next, install &lt;a href='http://www.apple.com/macosx/features/bootcamp.html' target=_blank&gt;Boot Camp&lt;/a&gt;&lt;br&gt;3) Then install &lt;a href='http://www.microsoft.com/windows/windows-vista/' target=_blank&gt;Windows Vista&lt;/a&gt;&lt;br&gt;4) Download and install &lt;a href='http://www.garagegames.com/products/torque/tgea/'&gt;Torque Game Engine Advanced&lt;/a&gt;&lt;br&gt;&lt;br&gt;And there you go...TGEA on a Mac!&lt;br&gt;&lt;br&gt;&lt;b&gt;Running TGEA on OSX&lt;/b&gt;&lt;br&gt;&lt;br&gt;What? Wait! When the hordes were demanding that we port TGEA to the Mac, that isn't what you meant?!? Ohhh....&lt;br&gt;&lt;br&gt;Well...how about we release a new version of TGEA that is designed to run on a Mac under OSX?&lt;br&gt;&lt;br&gt;Fortunately for you, we were showing off just that very thing at Austin GDC this past week:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_19_08/TGEA_1_8_on_a_Mac.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;TGEA 1.8 running on an iMac at AGDC&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Tell me more!&lt;/b&gt;&lt;br&gt;&lt;br&gt;TGEA 1.8 is the next version of TGEA that we will be releasing. It is a &lt;b&gt;FREE&lt;/b&gt; update that is aimed primarily at adding OSX support to Torque Game Engine Advanced.&lt;br&gt;&lt;br&gt;This is a culmination of years of work and research by &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=44752'&gt;Alex Scarborough&lt;/a&gt; starting with his impressive &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=58532'&gt;Modernization Kit&lt;/a&gt;. For the last year or so, Alex has been hard at work hacking in a quick OpenGL shader solution into our &lt;a href='http://www.instantaction.com' target=_blank&gt;InstantAction&lt;/a&gt; games like  &lt;a href='http://www.instantaction.com/legions' target=_blank&gt;Fallen Empire: Legions&lt;/a&gt;, &lt;a href='http://www.instantaction.com/rokkitball' target=_blank&gt;Rokkitball&lt;/a&gt;, &lt;a href='http://www.instantaction.com/marbleblast' target=_blank&gt;Marble Blast Online&lt;/a&gt;, and &lt;a href='http://www.instantaction.com/thinktanks' target=_blank&gt;ThinkTanks&lt;/a&gt; so that they are all playable on the Mac version of InstantAction. When he wasn't doing that, he was taking the lessons he learned from that and adding a proper OpenGL Shader layer to our cutting edge research and development engine (&amp;quot;Torque R&amp;amp;D&amp;quot; for now).&lt;br&gt;&lt;br&gt;&lt;b&gt;GFX2&lt;/b&gt;&lt;br&gt;&lt;br&gt;For the last several months I have been hard at work at merging the next generation of GFX from Torque R&amp;amp;D back into TGEA. This means that we will be picking up a few things more than &lt;i&gt;just&lt;/i&gt; an OpenGL layer. It also means that we will be able to directly benefit from the hard work and experience that GG Studios is putting into their next round of games.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_19_08/xcode.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;You can use the Project Generator on OSX to create your Xcode project&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;StateBlocks&lt;/b&gt;&lt;br&gt;&lt;br&gt;One of the fundamental changes that GFX2 introduces is the concept of StateBlocks. This is actually something that we borrowed from DirectX 10 and have implemented in software for the DirectX9 and OpenGL layers for now. The basic idea is that an active rendering state is contained in one object and you are able set that rendering state with a single call. The state that you set fully defines the render state. So the idea of a cannonical render state is gone.  Which is good, your rendering worries about defining its own state and that's it.  This should greatly reduce bugs that are introduced because state hasn't been cleaned up by a previous rendering object/pass (this is the cause of a lot of the graphical glitches you see in Torque and other engines).&lt;br&gt;&lt;br&gt;Let me break this down into an example. In the past we might have done something like:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;// Render time code&lt;br&gt;GFX-&amp;gt;setBlendEnable(true);&lt;br&gt;GFX-&amp;gt;setBlendDest(GFXInvSrcAlpha);&lt;br&gt;GFX-&amp;gt;setBlendSrc(GFXSrcAlpha);&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;Now, when we are setting up our object we do this:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;// Setup code, done once&lt;br&gt;GFXStateBlockDesc desc;&lt;br&gt;desc.setBlend(true, GFXSrcAlpha, GFXInvSrcAlpha);&lt;br&gt;GFXStateBlockRef myState = GFX-&amp;gt;createStateBlock(desc);&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;And then when we render we can make a single call and it properly sets up the &lt;i&gt;entire&lt;/i&gt; rendering state:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;// Render time code&lt;br&gt;GFX-&amp;gt;setStateBlock(myState);&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;This practically eliminates state bugs and what is even cooler is that when we make the switch to DirectX 10 this will all be hardware driven (&lt;i&gt;fast!&lt;/i&gt;).&lt;br&gt;&lt;br&gt;&lt;b&gt;ShaderGen&lt;/b&gt;&lt;br&gt;&lt;br&gt;One of the great things about GFX2 is that it has a proper GLSL ShaderGen implementation. This means that if you use Materials on your object (currently defined in script) then they will &lt;i&gt;automatically&lt;/i&gt; work on both Windows and Mac. This can save your team and project a ton of time and make it so that your port to OSX is fairly trivial.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_19_08/glsl_materials.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Use a Material and your shaders will just work on Windows and Mac&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;You can use CustomMaterials to specify your own hand written HLSL and/or GLSL shaders (if you want to remain cross-platform compatible you'll have to implement both for CustomMaterials).&lt;br&gt;&lt;br&gt;&lt;b&gt;Constant Buffers&lt;/b&gt;&lt;br&gt;&lt;br&gt;Another big change that GFX2 brings with it is Constant Buffers. Instead of just &amp;quot;knowing&amp;quot; which register maps to which shader variable, in GFX2 you query the shader for a list of variables and then bind to them by name.&lt;br&gt;&lt;br&gt;For example, previously if I wanted to set a float to the shader variable &lt;i&gt;scaleLighting&lt;/i&gt;, I would have something like this in the shader:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;uniform float   scaleLighting  :  register(C14)&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;and this in my C++ code:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;GFX-&amp;gt;setShaderVertexConstF(14, myConst);&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;I would have to know ahead of time that the shader was expecting my value to be in the 14th register and to bind it there. Instead with GFX2, I just query the shader for its &amp;quot;scaleLighting&amp;quot; variable and it hands back a handle for me no matter what register it is bound to.&lt;br&gt;&lt;br&gt;At load time, I would have something like:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;// Setup code&lt;br&gt;GFXShaderConstBuffer* myBuff = shader-&amp;gt;allocConstBuffer();&lt;br&gt;GFXShaderConstHandle* myHandle = shader-&amp;gt;getShaderConstHandle(&amp;quot;$scaleLighting&amp;quot;);&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;   &lt;br&gt;And then, when I rendered, I would have:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;// Render code&lt;br&gt;myBuff-&amp;gt;set(myHandle, myConst);&lt;br&gt;GFX-&amp;gt;setShaderConstBuffer(myBuff);&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;This allows us to end up with a lot less mismatches between what the shader expects and what we are sending it and has the potential to allow the drivers to do some optimization on the shaders which could change which registers are bound to which variables.&lt;br&gt;&lt;br&gt;&lt;b&gt;Porting and Documentation&lt;/b&gt;&lt;br&gt;&lt;br&gt;We know this is a lot of changes and it is going to be a bit daunting if you have GFX rendering code that needs porting over to GFX2. That is why our documentation guru, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=44571'&gt;Michael Perry&lt;/a&gt;, is already hard at work on a general overview doc for GFX2 and a lot of porting docs and tutorials to help smooth your transition. It is also the reason that we tried to limit &lt;i&gt;most&lt;/i&gt; of the changes between TGEA 1.7.1 to TGEA 1.8 to things that GFX2 directly relies on.&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;object width=&quot;640&quot; height=&quot;480&quot;&gt;
	&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot;&gt;
	&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;
	&lt;param name=&quot;movie&quot; value=&quot;http://www.vimeo.com/moogaloop.swf?clip_id=1763088&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot;&gt;
	&lt;embed src=&quot;http://www.vimeo.com/moogaloop.swf?clip_id=1763088&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;640&quot; height=&quot;480&quot;&gt;
&lt;/object&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Check out a quick walkthrough of T3D on a Mac at AGDC...be sure to watch all the way to the end =)&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;When do we get it?!?!!&lt;/b&gt;&lt;br&gt;&lt;br&gt;As you can see from the screenshots and videos we have a lot of the initial integration done. However, we do have few more big systems to work through and a ton of smaller spots (mostly StateBlock related) spots to finish merging over.&lt;br&gt;&lt;br&gt;Our goal is to provide TGEA owners with access to a Beta some time in the next 3-4 weeks. As always, this is only an estimate and shouldn't be taken as a hard and fast deadline. We will be sure keep you posted on the progress if we aren't going to hit this estimate though.  &lt;br&gt;&lt;br&gt;We are &lt;b&gt;really&lt;/b&gt; excited to finally provide this to you guys and that it is everything that it should be and that it is &lt;b&gt;FREE&lt;/b&gt;!&lt;br&gt;&lt;br&gt;&lt;i&gt;If you are looking for more information you can read more over in the &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=78907'&gt;IRC Hour Chat Log&lt;/a&gt;&lt;/i&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/985/14931">
		<dc:format>text/html</dc:format>
		<dc:date>2008-06-20T22:32:39+00:00</dc:date>
		<dc:creator>Matt Fairfax</dc:creator>
		<title>Barricade Demo</title>
		<link>http://www.garagegames.com/blogs/985/14931</link>
		<description>&lt;b&gt;Barricade Demo&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;a href='http://www.vimeo.com/1221609/' target=_blank&gt;&lt;img src='http://www.rustycode.com/matt/plan_06_20_08/barricade.jpg'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Click to see a preview of the Barricade demo or head over to the &lt;a href='http://www.garagegames.com/pg/demo.php?id=28'&gt;TGEA demos&lt;/a&gt; page to try it out directly&lt;/i&gt;&lt;br&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;As promised last Friday with the release of &lt;a href='http://www.garagegames.com/blogs/985/14879'&gt;TGEA 1.7.1&lt;/a&gt;, we have released the &lt;a href='http://www.garagegames.com/pg/demo.php?id=28'&gt;Barricade demo&lt;/a&gt;!&lt;br&gt;&lt;br&gt;The Barricade demo is loosely based on the &lt;a href='http://www.garagegames.com/mg/snapshot/view.php?qid=1163'&gt;GDC 2006 Tech demo&lt;/a&gt; which I know some of you have been asking after for a long time =) Moving forward we plan to use this demo as a showcase of some of the best features and effects in TGEA.&lt;br&gt;&lt;br&gt;The Barricade demo does have pretty high system requirements. This is both because we wanted to show off the best our tech can do and to give us a nice bar to work against for future optimizations of the engine. It may very well run on a much lower powered system but we can not guarantee that it will not have any odd visual glitches. We recommend these as the lowest system requirements:&lt;br&gt;&lt;br&gt;Windows XP or Windows Vista&lt;br&gt;DirectX 9.0c&lt;br&gt;2.2 GHz Processor&lt;br&gt;1 Gb RAM&lt;br&gt;7200 RPM Hard drive&lt;br&gt;nVidia GeForce 7700 or ATI Radeon 1600 XT with 256 Mb Video Ram&lt;br&gt;Latest video drivers from &lt;a href='http://www.nvidia.com/' target=_blank&gt;nVidia.com&lt;/a&gt; or &lt;a href='http://www.ati.com/' target=_blank&gt;ATI.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;Go check it &lt;a href='http://www.garagegames.com/pg/demo.php?id=28'&gt;out&lt;/a&gt;!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/985/14879">
		<dc:format>text/html</dc:format>
		<dc:date>2008-06-13T19:07:52+00:00</dc:date>
		<dc:creator>Matt Fairfax</dc:creator>
		<title>Follow Through - TGEA 1.7.1 Released</title>
		<link>http://www.garagegames.com/blogs/985/14879</link>
		<description>&lt;h1&gt;TGEA 1.7.1 is now available!&lt;/h1&gt;&lt;br&gt;&lt;center&gt;&lt;a href='http://www.vimeo.com/1157973' target=_blank&gt;&lt;img src='http://www.rustycode.com/matt/plan_06_12_08/barricade.jpg'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/center&gt;&lt;br&gt;&lt;center&gt;&lt;i&gt;One of the many gorgeous scenes from the upcoming Barricade demo - click to see the video&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;I've talked about follow through before and I meant it =) For the last couple of months we have been quietly toiling away on a nice solid bug fix release for TGEA and I happy to announce that you can now grab this &lt;b&gt;free&lt;/b&gt; upgrade from your &lt;a href='http://www.garagegames.com/myAccount/'&gt;account&lt;/a&gt; pages! We really do want our products to shine and we think we are right on track to keep making that happen.&lt;br&gt;&lt;br&gt;In the video above you will see the Barricade demo that we have also been working on. It still needs a &lt;i&gt;little&lt;/i&gt; more polish but we should be releasing it any day now. Be sure to check back often so you don't miss its release!&lt;br&gt;&lt;br&gt;&lt;h1&gt;Rockstars&lt;/h1&gt;&lt;br&gt;This update definitely would not have been possible without the help of our &lt;a href='http://www.garagegames.com/mg/forums/result.area.php?qa=28'&gt;community&lt;/a&gt;! Please keep the bug reports and bug fixes coming. We are keeping an eye on them!&lt;br&gt;&lt;br&gt;There are a few people who really stood out above the rest. As always the unstoppable &lt;a href='http://arcane-fx.com/afx_gallery/afx_gallery_scr.html' target=_blank&gt;Jeff Faust&lt;/a&gt; was on hand to catch and fix many a bug for us. The ever impressive &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=14581'&gt;Rene Damm&lt;/a&gt; tackled one of the toughest systems in Torque and made it give up its secrets (Atlas). As if that wasn't enough, Rene also put in some long hours tracking down and wacking a ton of the bugs you guys posted on our forums! Our stalwart &lt;a href='http://bleedingedgeindie.blogspot.com/' target=_blank&gt;&amp;quot;BobTheCBuilder&amp;quot; Kabus&lt;/a&gt; continued to move the meter forward with his sweet lighting system. Mr. Torque Coding Machine himself, &lt;a href='http://www.sickhead.com/' target=_blank&gt;Tom Spilman&lt;/a&gt;, managed bring SFX up to the next level (check the list below). Our Documentation black belt, &lt;a href='http://www.zombieshortbus.com/nonzsb/blogImages/docWriter.jpg' target=_blank&gt;Michael Perry&lt;/a&gt;, wrestled a few new docs into place. And last but definitely not least, we have a newly intrepid intern, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=113520'&gt;Robert&lt;/a&gt; (with a hand from the indomitable &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=11746'&gt;Matt Langley&lt;/a&gt;), to thank for the New Project Generator and the revived Terraformer Tool.&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.rustycode.com/matt/plan_06_12_08/terraformer.jpg'  alt=&quot;&quot;&gt;&lt;/center&gt;&lt;br&gt;&lt;center&gt;&lt;i&gt;Hydraulic erosion is a snap with the Terraformer&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;So What Changed?&lt;/h1&gt;&lt;br&gt;&lt;b&gt;Atlas&lt;/b&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed a hard crash in atlasGenerateTextureTOCFromLargeJPEG()&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added a throttle to threaded part of Atlas I/O pipeline to avoid congestion&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed some memory leaks in Atlas&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; The Player's lightmap sampling code now supports Atlas lightmap files (when they are generated by the Lighting Kit)&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed multiple miplevel shifting bugs in Atlas&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Modified older Atlas CHU mesher to prevent collision meshes from exceeding internal limits&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added a GUI control for monitoring the performance of Atlas instances&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Atlas better handles scenarios where the clipmap size is less than the base tile size of the texture TOC&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Separated the Atlas and TerrainBlock blended terrain shaders so that the Atlas blended lightmaps wouldn't be oversaturated by the X2 multiplier needed by TerrainBlock&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Split Atlas out into its own separate Project Generator code module so that platforms that don't support everything in Atlas can generate clean projects without it (or if someone doesn't need Atlas). Note the TORQUE_ATLAS define that allows Atlas files to register with the ResourceManager.&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.rustycode.com/matt/plan_06_12_08/atlas.jpg'  alt=&quot;&quot;&gt;&lt;/center&gt;&lt;br&gt;&lt;center&gt;&lt;i&gt;You can achieve truly beautiful vistas with Atlas&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;SFX&lt;/b&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added the beginnings of an XAudio2 SFX layer. Microsoft is depreciating DirectSound in favor of the much better XAudio sound system which is cross-compatible with Windows and Xbox. In the near future it will be Torque's default audio layer on Windows and we wanted to allow you guys to start getting comfotable with it. There are still a few issues that need to be worked through but we will be providing directions on how to enable it if you are brave and want to start poking at it. &lt;b&gt;Note:&lt;/b&gt; &lt;i&gt;To properly compile TGEA 1.7.1 with XAudio2 support you will need to update to the latest Microsoft DirectX SDK (March 2008).&lt;/i&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added is3D parameter to SFXDevice::createVoice() for XAudio2 implementation.&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; The XAudio2 system now has basic 3D positioning support&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73996'&gt;Big cleanup of misnamed, missing, and misued sound assets&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74001'&gt;Removed a bunch of script references to alx functions (now handled by SFX)&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added more docs for SFXDescription and SFXProfile&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added some tips from Robert Blanchet for SFXProfile and SFXDescription to the docs&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73958'&gt;SFXProfile::getResource() properly handles resource that haven't been preloaded&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Merged latest stable release FMOD Ex 4.14.06 (Mac includes not updated yet!)&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74596'&gt;Replaced the depreciated MOD_System_GetDriverName() with FMOD_System_GetDriverInfo()&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74599'&gt;Fix for SFX FMod stereo sounds playing too fast&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed voice cleanup in SFXNullDevice that was causing shutdown assertions&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed incorrect &amp;quot;hasHardware&amp;quot; flag in SFXFMODDevice&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; We no longer initialize 3D parameters on non-3D sounds.&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Removed unused parameter from SFXSystem::_updateSources().&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; SFXSystem::_update() now uses proper TickMs constant.&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed channel setting in AudioGui and AudioMessage SFXDescriptions&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Removed duplicate audio type globals in audioProfiles.cs&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed OptAudioUpdateMasterVolume() to play test sound again&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed OptAudioUpdateChannelVolume() to take a description and not a channel&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Disabled &amp;quot;Use Hardware&amp;quot; toggle in options screen and now force $pref::SFX::useHardware to false in sfxAutodetect(). Software audio has largely exceeded hardware in all aspects and we no longer recommend using hardware audio with Torque (Vista doesn't support any hardware audio). You can easily re-enable hardware audio if your project requires it.&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added sfxMetricsCallback() to allow metrics( sfx ) to bring up audio metrics&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added cone support to SFX and all existing devices&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed bug in SFXEmitter that caused sound resource to not reload when changed&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed old cone support in SFXEmitter&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73995'&gt;Fixed crashes in sfxPlayOnce() and sfxCreateSource()&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; We now apply any deferred commits before playing a SFXDSVoice (might solve dsound glitches)&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Removed old AudioEmitter code&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed bug in OptionsDlg that caused providers with the same output devices to not switch when selected&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Major cleanup of SFXEmitter removing broken features and large sections of commented out code&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added 'playOnAdd' option to SFXEmitter to control initial playback state&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added play() and stop() console methods to SFXEmitter for controlling the playback state over the network&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed Mission Editor to support new SFXEmitter changes&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added more docs to SFXEmitter&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.rustycode.com/matt/plan_06_12_08/licensing.jpg'  alt=&quot;&quot;&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;New Project Generator&lt;/b&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Creating a new Torque project has always been a bit of a hassle (I documented 11 steps just to get everything named correctly) so we have added the New Project Generator. It takes most of the pain out of setting up you new project and should let you get on your way in no time!&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.rustycode.com/matt/plan_06_12_08/new_project_generator.jpg'  alt=&quot;&quot;&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Docs&lt;/b&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added a Migration Guide to the official docs that should greatly help when bringing TGEA 1.0.3 and TGE projects over into the new directory structure and methodologies of TGEA 1.7&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Further refined the Getting Started section of the docs (including coverage of the New Project Generator)&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.rustycode.com/matt/plan_06_12_08/pixel_3.0.jpg'  alt=&quot;&quot;&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;General Fixes and Improvements&lt;/b&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added GuiIdleCamFadeBitmapCtrl which makes it easy to do nice popup fading bitmaps&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed a warning being generated by the Crossbow files in T3D&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Re-enabled the ResourceManager's ability to find files outside of the modPaths when not in TORQUE_SHIPPING mode. This can be very helpful when in development mode.&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Increased the number of nodes that a PathCamera can use from 20 to 128&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; The Unified Shell menu now pulls its background from &amp;lt;YourGame&amp;gt;/scriptsAndAssets/client/ui/unified_background.jpg instead of from &amp;lt;YourGame&amp;gt;/scriptsAndAssets/data/skies/skybox_1.jpg&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added the option to not use an icon for highlighted rows in a GuiGameListMenuCtrl&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73858'&gt;Fixed SimDataBlockGroup::compareModifiedKey() so that the SimDataBlockGroup will properly sort&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73858'&gt;Removed the sort we were doing in transmitDataBlocks since it could still cause problems if datablocks have duplicate names and I would prefer to not impose the restriction of unique names on datablocks at this time&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; You can now enable NVPerfHUD functionality using a pref ($Video::useNVPerfHud) instead of a C++ define/recompile. Check out common/main.cs for an example.&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74334'&gt;Upped the FrameAllocator size to 16 Mb so that we can handle textures larger than 1024x1024&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73244'&gt;Disabled allowPlayerStep on the T3D station so that you can't walk up its walls&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Reordered initialization of cursors so that GuiCanvas correctly finds its default cursor&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74690'&gt;Decoupled mouse locking from cursor on/off.  Makes using custom ingame cursors possible again.&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added optional auto-deletion (reference counting) to SimObject&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74060'&gt;Fixed bug that caused left/right versions of all modifier keys to be swapped&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73652'&gt;Fixed a number of Unicode-related issues&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74213'&gt;DSO generation once again properly respects the TORQUE_NO_DSO_GENERATION define&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74736'&gt;Fixed Platform::makeRelativePathName()&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74398'&gt;Fixed wrong number of arguments in definition of GameConnection::getServerConnection()&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73942'&gt;Fixed various issues that prevented Visual Studio 2003 from compiling out of the box&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Removed Visual Studio 2008 Express' reliance on the Windows SDK since it has its own version built-in&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; The Terraformer Editor is back and mostly functional (few things may still be broken)&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Changed the WaterBlock and shaders to be able to detect the depth of the water at the shore (improves the look of the shorelines) and to detect when it is being occluded from the sun (improves the look of the specular on the water)&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed crash where some variables in LangFile were incorrectly being freed as non-arrays&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73763'&gt;GuiMLTextEditCtrl is now functional&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74521'&gt;Fixed some out of date onStaticModified() implementations that was causing them to not be called&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed a potential source of stack corruption in the Player code&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed incorrect deallocation of temporary buffers and incorrect dSprintf calls in winFileIo.cpp&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Re-enabled CrossbowSplash in TGEDemoAdvanced since it now works correctly&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; The application now registers the $defaultGame script global with a default value just to make sure we have it for other uses (like in the ResourceManager)&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; GFXTexHandle() now takes an optional parameter that will cause it to suppress a missing texture warning for objects that want to test for multiple files before giving up. This was used to greatly reduce the amount of console warnings generated by GuiBitmapButtonCtrl.&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added EMITTER to the reserved texture name list for Interior's so that we don't get console warnings about it&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Made it so that Lightning does not attempt to load strike textures that have not been set (reduces console spam)&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; The script function connect(%server) actually connects to the server again&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.rustycode.com/matt/plan_06_12_08/refraction.jpg'  alt=&quot;&quot;&gt;&lt;/center&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; GFXTexHandle.set() now also has an optional noWarning flag for code that wants to handle the error messages separate from the resource system&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Changed the ShaderGen &amp;quot;Failed to open Shader Stream&amp;quot; to something a bit more verbose and useful to the end user&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Made it so that the Precipitation code doesn't try to load the textures or shaders if they aren't specified in the datablock&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Tweak to the customProfiles so that they will properly override the common profiles and so that they won't double declare datablocks (reduces console spam). GuiControl's should now properly update their pointer to their GuiControlProfile when it is changed on the fly (previously this was causing a number of unpredicatable crashes).&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added a way to allow Platform::makeFullPathName() to expand any ~'s it finds in the path to be $defaultGame&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=9918'&gt;Made a small modification to the FlyingVehicle that makes it more stable&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=75041'&gt;GuiCanvas::renderFrame() properly handles a NULL render target (like from a Null GFX device)&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74115'&gt;The server now properly sends over a relative path to the mission (rather than the fully qualified path...which was causing lighting issues on the client)&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74445'&gt;Re-enabled the About dialog in Stronghold&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added Atlas as a creatable object in the Mission Creator&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added a working version of map2dif_plus_tgea.exe to engine\tools&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Changing the name of a dynamic field in the Mission Editor no longer causes a crash&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Set a better default visibility distance in the Mission Editor&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74600'&gt;Fixed a case where the GameConnection was not properly getting named ServerConnection&lt;/a&gt; (was causing problems with setFirstPerson())&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed bad rendering logic in GuiSliderCtrl that would cause a GFX assert&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Cleaned up a lot of the code surrounding DDS files so that the TextureManager and other code can properly treat them as GBitmap's. This means that you should now be able to use DDS files anywhere you could previously use JPG/PNG/BMP/GIF files (like as a texture on the Terrain).&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added the handy functions stripExtension() and addExtension which allows you to easily swap out the extension of a file for another extension. You can also have it validate the extension that is to be replaced with a valid texture extension (so that it won't strip off part of the file name).&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74476'&gt;GBitmap::findBmpResource() and GBitmap::load() now properly attempt to load the file with the given name and then will try to load with all of the other valid texture extensions.&lt;/a&gt; Before it was simply appending the different extensions to the full file name so you would get things like &amp;quot;demoWindow.jpg.png&amp;quot;. This code was made a lot cleaner by using the stripExtension() and addExtension helper functions mentioned above.&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Removed some extra console spam from GBitmap::findBmpResource() and GBitmap::load() for when it couldn't find a specific filename (it was spamming all the possible variations)&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74174'&gt;Removed the warning/assert about non-mipmapped dds files since we are generating mipmaps for the ones that don't have them&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Disabled the console spam that the DDSFile loading code was spewing out about the header info&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added an &amp;quot;Optimized&amp;quot; build configuration to all of the visual studio solutions/projects templates. This is for doing debug builds that are optimized in the same way as release builds. Very useful for debugging problems that only occur in release builds (uninitialized variables usually). The data values aren't always accurate but it does give you a useful callstack most of the time.&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74400'&gt;Multiple dynamic lights should work again inside of Interior zones&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73965'&gt;The red and blue channels of the Interior lightmaps no longer get swapped on relight&lt;/a&gt;&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.rustycode.com/matt/plan_06_12_08/reflection.jpg'  alt=&quot;&quot;&gt;&lt;/center&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed a texture leak in the GuiBitmapButtonCtrl&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; The texture leak dump now attempts to show the texture name (little better formatting)&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74461'&gt;ShapeBase::setImageState() no longer tries to start an emitter when it doesn't exist&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Renamed the previously unused &amp;quot;Products&amp;quot; folder to &amp;quot;Projects&amp;quot;. This is the recommended location for your new TGEA projects (and the default output location of the New Project Generator).&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; All of the GameExamples (and Template) now allow you to bring up the more in-depth OptionsDlg with &amp;quot;ctrl o&amp;quot;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74044'&gt;Dedicated servers should now work properly&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74798'&gt;Added the ConsoleFunction getTerrainUnderWorldPoint() which returns the TerrainBlock that is directly under a point in world space&lt;/a&gt;&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Updated getTerrainHeight() to work with multiple TerrainBlock's in a mission. It will defaulty get the height of the highest terrain at an (x, y) world position. You can now pass in an optional z world position and have it get the terrain height of the first terrain it finds that is lower than that z position (like in a cave).&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added swap() to tAlgorithm.h&lt;br&gt;&lt;li&gt;&lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=74356'&gt;Fixed the Gui Editor to allow you to drag items into groups like you could before&lt;/a&gt;&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;h1&gt;Heads Down&lt;/h1&gt;&lt;br&gt;We've really cranked to bring all these changed into TGEA this quickly. As you can see, it's an immense list for a point update and we're really proud of the improvments. The entire team including the awesome associates we work with are shifting our efforts to the next big feature additions to TGEA. Remember some of that stuff we talked about in deep R&amp;amp;D? Yeah...big changes coming. Expect to be shocked, we're aiming very high. Even though we'll be a little less active smashing bugs this round, we still want to hear from all of you. Grab this release, tell us what you love. Tell us where it hurts. We're listening and we're applying all your feedback in this and future releases.&lt;br&gt;&lt;br&gt;Big thanks to everyone involved in helping with this. Getting this much done would be impossible without you!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/985/14560">
		<dc:format>text/html</dc:format>
		<dc:date>2008-04-05T04:18:10+00:00</dc:date>
		<dc:creator>Matt Fairfax</dc:creator>
		<title>TGEA 1.7 is Officially Released!</title>
		<link>http://www.garagegames.com/blogs/985/14560</link>
		<description>&lt;b&gt;TGEA 1.7 is Officially Released!&lt;/b&gt;&lt;br&gt;&lt;br&gt;After an extremely successful beta test (&lt;a href='http://www.garagegames.com/blogs/985/14469'&gt;Beta 1&lt;/a&gt; and &lt;a href='http://www.garagegames.com/blogs/985/14520'&gt;Beta 2&lt;/a&gt;, TGEA 1.7.0 has been &lt;a href='http://www.garagegames.com/products/torque/tgea/'&gt;officially launched!&lt;/a&gt;&lt;br&gt;&lt;br&gt;We absolutely could not have done it on our own and owe a huge thanks to our community and to some individuals who have helped us immensely: &lt;a href='http://www.sickheadgames.com/' target=_blank&gt;Tom Spilman&lt;/a&gt;, &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=14484'&gt;Michael Perry&lt;/a&gt;,  &lt;a href='http://www.synapsegaming.com/' target=_blank&gt;John Kabus&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=29233'&gt;Jeff Faust&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=4590'&gt;Rene Damm&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=35183'&gt;Joseph Greenawalt&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=58540'&gt;Kirk Longendyke&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=54173'&gt;Stephan Goebels&lt;/a&gt;.&lt;br&gt;&lt;br&gt;I also have to give a huge thanks to &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=6452'&gt;Clark Fagot&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=1449'&gt;Joe Maruschak&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=38050'&gt;Brian Richardson&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=75264'&gt;Andy Maloney&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=370'&gt;Pat Wilson&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=4517'&gt;Robert Blanchet&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=5249'&gt;Justin DuJardin&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=8341'&gt;Dave Wyand&lt;/a&gt;, and &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=6645'&gt;John Quigley&lt;/a&gt;. They are the giants whose shoulders we stand on to bring you TGEA 1.7.0.&lt;br&gt;&lt;br&gt;Lastly, I want to say a very special thank you to &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=83134'&gt;Brett Seyler&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=71623'&gt;Deborah Marshall&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=17830'&gt;Eric Fritz&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=84255'&gt;Derek Bronson&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=33542'&gt;Matt Langley&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=75501'&gt;Ken Holst&lt;/a&gt; and &lt;a href='http://minions.prairiegames.com/trac/mom' target=_blank&gt;Josh Engebretson&lt;/a&gt;. Ken and Josh in particular have been living and breathing TGEA 1.7.0 alongside me for the last few months. They have been there through the good, the bad, the ugly, and The Awesome and it has been an honor for me to work with them.&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;br&gt;   &lt;img src='http://www.rustycode.com/matt/plan_04_04_08/dreamlords.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Cool New Features!&lt;/b&gt;&lt;br&gt;&lt;br&gt;This &lt;b&gt;FREE&lt;/b&gt; update to TGEA includes a ton of updates and new features. It is easier than ever for game developers to get up and running with the latest and greatest technology.&lt;br&gt;&lt;br&gt;TGEA 1.7.0 brings:&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;1) &lt;b&gt;GFX Power&lt;/b&gt; - TGEA 1.7.0's rendering is faster and more powerful than ever offering huge speed increases, full screen anti-aliasing, and support for non-shadered video cards. You can deploy your games to a much wider audience and trust that it will &amp;quot;just work.&amp;quot;&lt;br&gt;&lt;br&gt;&lt;center&gt; &lt;br&gt;   &lt;img src='http://www.rustycode.com/matt/plan_04_04_08/gears.jpg'  alt=&quot;&quot;&gt; &lt;br&gt;   &lt;a href='http://vimeo.com/847225' target=_blank&gt;&lt;i&gt;&amp;quot;Gears of Torque&amp;quot; Video&lt;/i&gt;&lt;/a&gt; &lt;br&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;   &lt;li&gt;2) &lt;b&gt;MegaTerrains&lt;/b&gt; - The new MegaTerrain system includes all the amazing real-time terrain editing features of the original Terrain system along with the larger size that the forward thinking game developer demands.&lt;br&gt;&lt;br&gt;&lt;center&gt; &lt;br&gt;   &lt;img src='http://www.rustycode.com/matt/plan_04_04_08/t3d_groundcover.jpg'  alt=&quot;&quot;&gt; &lt;br&gt;   &lt;a href='http://www.vimeo.com/858697' target=_blank&gt;&lt;i&gt;MegaTerrain Flythrough Video&lt;/i&gt;&lt;/a&gt; &lt;br&gt;&lt;/center&gt; &lt;br&gt;&lt;br&gt;   &lt;li&gt;3) &lt;b&gt;Polysoup Collision&lt;/b&gt; - We've taken &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=8863'&gt;Ben Garney's&lt;/a&gt; OPCODE Polysoup Collision implementation and extended it to better integrate with the environment and lighting. Quickly drop in your mesh objects and levels and get up and running with them in no time. &lt;br&gt;&lt;br&gt;   &lt;li&gt;4) &lt;b&gt;SFX Sound System&lt;/b&gt; - The brand new sound system provides proper abstraction and tools for using sound in games including a robust &lt;a href='http://www.fmod.org' target=_blank&gt;FMOD&lt;/a&gt; implementation.&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.rustycode.com/matt/plan_04_04_08/fmod.jpg'  alt=&quot;&quot;&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;   &lt;li&gt;5) &lt;b&gt;New Content&lt;/b&gt; - There is a ton of new content in TGEA 1.7.0 including the jaw dropping Forge Demo and &lt;b&gt;three&lt;/b&gt; new Player characters!&lt;br&gt;&lt;br&gt;&lt;center&gt; &lt;br&gt;   &lt;img src='http://www.rustycode.com/matt/plan_04_04_08/forge2.jpg'  alt=&quot;&quot;&gt; &lt;br&gt;   &lt;a href='http://www.vimeo.com/858700' target=_blank&gt;&lt;i&gt;Forge Demo Video&lt;/i&gt;&lt;/a&gt; &lt;br&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;   &lt;li&gt;6) &lt;b&gt;Torque Build System&lt;/b&gt; - The new Project Generator automates generating up-to-date projects files. This powerful, modular system makes maintaining new code and staying in sync with your team a snap.&lt;br&gt;&lt;br&gt;   &lt;li&gt;7) &lt;b&gt;Getting Started&lt;/b&gt; - A primary focus of this new release is making sure that new users can get up and running on TGEA as quickly as possible. We have done this by making sure that TGEA owners have &lt;b&gt;top notch docs&lt;/b&gt; available to help them hit the ground running. We are also providing a great selection of game examples to show tried and tested implementations of the most common problems you will encounter when building your game. &lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;br&gt;   &lt;img src='http://www.rustycode.com/matt/plan_04_04_08/legions2.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;   &lt;i&gt;Hit the ground running! Get it? =P&lt;/i&gt;&lt;br&gt;&lt;/center&gt;&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;b&gt;Awesome Support&lt;/b&gt;&lt;br&gt;&lt;br&gt;I touched on it above but I will reiterate: we could not have done this without the amazing GarageGames community. Your support for our Beta program was overwhelming. We really appreciate how professional and thorough your bug reports and bugfixes were. Moving forward we are going to continue to work closely with our customers, community, and &lt;a href='http://www.garagegames.com/company/associates/'&gt;Associates&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Your encouragement was so inspiring to us that I simply have to share a few of the comments that most warmed my heart:&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;font size=1&gt;Quote:&lt;br&gt;&lt;hr height=1 noshade&gt;&lt;br&gt;&amp;quot;I just got that &amp;quot;lump in my throat&amp;quot;, &amp;quot;feel like I'm gonna burst&amp;quot; sensation that you get after getting out of an engineering final that you thought was going to be super hard, but you feel like you did really well, and now you're leaving the building with this joy and relief welling up inside that makes you want to scream and dance in the middle of campus, but you can't 'cause you might scare the other students. Yeah, that's kinda what it's like. :) I'm at work, so no screaming or dancing allowed.&amp;quot;&lt;br&gt; &lt;br&gt;- Ryan Mounts&lt;br&gt; &lt;br&gt;&amp;quot;I have to say, even though I am at work right now I have gone through the new documentation and it is amazing how much difference a well organized set of docs can make. It looks great guys! Thank you and Congrats again!&amp;quot;&lt;br&gt; &lt;br&gt;- Syllus &lt;br&gt; &lt;br&gt;&amp;quot;Matt, Michael, Stephen, Jeff and the rest of you guys!&lt;br&gt;You simply make this place worth lingering in, totally great and awesome work (brushes off nose).&lt;br&gt;Im so pleased that I found, and choosed to use your engine -keep it up folks!&amp;quot;&lt;br&gt; &lt;br&gt;- Christian S&lt;br&gt; &lt;br&gt;&amp;quot;I just recently bought TGEA and was having a bid of an headache going through all the tutorials in TGEA. Then trying to convert some of the sample demos from TGE to TGEA. This new update is extremely helpful. Just wanted to say Thank You! &lt;br&gt;The documentation is great a help to new comers like me! :-)&amp;quot;&lt;br&gt; &lt;br&gt;- Lathieeshe Thillainathan&lt;br&gt; &lt;br&gt;&amp;quot;Now THIS is what I'm talking about! Kudos to the TGEA dev team, this is absolutely amazing!&lt;br&gt;This beta release of TGEA is what I've been needing for a long time wrapped up in one little neat package.&lt;br&gt;This is definitly a milestone for GG as a whole, and gives some great insight on what to expect in the future.&amp;quot;&lt;br&gt;&lt;br&gt;- Trenton Shaffer&lt;br&gt;&lt;hr height=1 noshade&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;center&gt;&lt;br&gt;   &lt;img src='http://www.rustycode.com/matt/plan_04_04_08/paa.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;   &lt;i&gt;Did you know that the Penny Arcade Adventures are being made with a version of TGEA?&lt;/i&gt;&lt;br&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;What's Next?&lt;/b&gt;&lt;br&gt;&lt;br&gt;GarageGames is committed to producing quality products. We will continue to work long and hard to improve our engines and our tools. You are going to start seeing far more frequent releases and bug fixes being pushed out to our customers. But we need your help! Keep offering us professional bug reports, keep giving useful feedback, keep pitching in to make things better for all of us. In that spirit, we would love to get to know you and your needs better and ask that you take a few minutes to fill out a quick survey for us:&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;a href='http://www.surveymonkey.com/s.aspx?sm=9EI4L10uVd8KIHtB8PEtkg_3d_3d' target=_blank&gt;Survey&lt;/a&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;* I know those of you who have been paying attention have seen some of the same features highlighted in my previous &lt;a href='http://www.garagegames.com/blogs/985/14469'&gt;blogs&lt;/a&gt; =). Since we are putting some major effort into marketing TGEA 1.7.0, this blog is going to be reaching a much wider audience and we felt it was important that they get to see all of the cool things that are in TGEA 1.7.0.&lt;/i&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/985/14520">
		<dc:format>text/html</dc:format>
		<dc:date>2008-03-29T02:09:34+00:00</dc:date>
		<dc:creator>Matt Fairfax</dc:creator>
		<title>Torque Game Engine Advanced Open Beta 2</title>
		<link>http://www.garagegames.com/blogs/985/14520</link>
		<description>&lt;b&gt;Full of Awesome!&lt;/b&gt;&lt;br&gt;&lt;br&gt;What an amazing community! It has been just over a week since we released the &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=14469'&gt;TGEA 1.7 Open Beta 1&lt;/a&gt; and it is hard to believe how much you guys have pitched in and helped!&lt;br&gt;&lt;br&gt;We've been working hard to address your bugs and to roll further improvements into TGEA 1.7 and I am proud to share that with you as the &lt;b&gt;TGEA 1.7 Open Beta 2&lt;/b&gt;!&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.rustycode.com/matt/plan_03_28_08/boom.jpg'  alt=&quot;&quot;&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;You can go grab it from the TGEA download link on your &lt;a href='http://www.garagegames.com/myAccount/'&gt;My Account&lt;/a&gt; page. Quickly! Go get it!&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;What am I getting myself into to?&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.rustycode.com/matt/plan_03_28_08/jira.jpg'  alt=&quot;&quot;&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;We've managed to pack in a ton of fixes into this release!&lt;br&gt;&lt;br&gt;I could not have done it without the amazing help of &lt;a href='http://minions.prairiegames.com/trac/mom' target=_blank&gt;Josh Engebretson&lt;/a&gt;, &lt;a href='http://www.sickheadgames.com/' target=_blank&gt;Tom Spilman&lt;/a&gt;, &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=14484'&gt;Michael Perry&lt;/a&gt;, &lt;a href='http://www.synapsegaming.com/' target=_blank&gt;John Kabus&lt;/a&gt;, &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=29233'&gt;Jeff Faust&lt;/a&gt;, and &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=34977'&gt;Stephen Zepp&lt;/a&gt;. These guys have really pitched in to help, going above and beyond the call of duty!&lt;br&gt;&lt;br&gt;You can see a list of all of the changes we've rolled into the release here:&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Sound files (.ogg) are now being properly included in the installer (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73290'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73290&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; fxShapeReplicator should now clean up properly when applying changes (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73281'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73281&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; The lighting system now correctly samples the lightmaps underneath the Player for its ambient lighting (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73224'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73224&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Changed to TGE message boxes to work correctly in fullscreen (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73287'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73287&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed the mipmap wrapping related terrain edge seam (fixed function and shader) (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73224'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73224&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added some code to GuiCanvas::setVideoMode() to handle 0 sizes for the resolution dimensions (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73259'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73259&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed a typo in the configureCanvas() script code that was causing the resolution width to be blank when having to fallback from a resolution too large in windowed mode&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed a comparison in configureCanvas() that was causing it to falsely think fullscreen was windowed (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73289'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73289&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Applied fix for when Player SplashEmitter is not present (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73340'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73340&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed some of the incompatibility issues with integrated Intel video cards (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73350'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73350&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed problems with ganerating a new mission (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73304'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73304&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed dynamic field rename and deletion in the Inspector (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73245'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73245&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Now validating TerrainBlock clipMapSizeLog2 and texelsPerMeter settings (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73473'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73473&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Terrain Texture Editor now properly handles multiple TerrainBlock's (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73465'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73465&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Made it so that you can't walk up walls on polysoup collision TSStatic's (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73244'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73244&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed all of the references to #include &amp;quot;game/&amp;lt;file.h&amp;gt;&amp;quot; (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73510'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73510&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; The WheeledVehicle wheels render again (with shadow) (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73352'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73352&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Removed the unused buildresults.html (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73226'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73226&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed weapon push back and aim being affected by Trigger's (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73348'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73348&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed multiple Atlas issues (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73515'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73515&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Shadows no longer project through polysoup TSStatic's (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73243'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73243&lt;/a&gt;)&lt;br&gt;- The TerrainBlock rendering code will skip the detail texture pass if no detail texture is specified (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73325'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73325&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fonts now correctly generate themselves on non-US English versions of Windows (&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73257'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=73257&lt;/a&gt;)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; PrimBuilder::end() now takes an optional argument which can be used to override its default behavior of calling setupGenericShaders(), (which calls disableShaders())&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed translucent material handling to work correctly when 'mMaterial-&amp;gt;translucent' is set, but 'mMaterial-&amp;gt;translucentBlendOp' is set to None.  This enables pure alpha test materials without any blending.&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed mMaterial-&amp;gt;alphaTest and mMaterial-&amp;gt;alphaRef to be set on CustomMaterial.&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed an incorrect use of IF in the compile.bat files&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added game/shaders to include path for relative imports&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Clean up InteriorSimpleMesh's on Interior deletion&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fix the incorrect network packing of mConeOutsideVolume&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added a fix for getting the client side SFXDescription&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; The Weapon Picker in T3D is now functional&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed the mounting code in GuiObjectView&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed off center text in the loading bar&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Majorly sped up mission loading for singleplayer and hosting servers&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Datablocks were not being sorted correctly before transmission&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Debris was not rendering correctly&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed dynamic lighting attenuation for non-normal mapped materials&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added better Inspector fields validation&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed some uninitialized data on the TerrainBlock that could cause a crash on in the WheeledVehicle&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added the buggy data and scripts to T3D (have to add it in the Mission Editor or spawn as it)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Improved the Terrain Painter functionality: left-click to select active block for painting. This avoids the Terrain Painter from going crazy as you mouse over terrain.&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed dynamic lights bug with CustomMaterials&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Beefed up the GFX device creation code to handle falling back from incompatible settings and attempt to find something that works&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Added toggle to allow you to enable DRL as long as FSAA isn't turned on&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Cleaned up the version numbers and versioning scheme in the engine and application&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Fixed stack overflow in Mission Editor selection (deselection via script was disabled)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Container::castRay() was not properly filling in the distance parameter&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Did a nice polish pass on the Documentation&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; The TerrainBlock's will now send position changes across the network (like when applied in the Inspector)&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; The Inspector datablock fields should properly filter according to datablock type&lt;br&gt;&lt;li&gt; &lt;img src='http://www.rustycode.com/matt/bp.jpg'  alt=&quot;&quot;&gt; Applying a new datablock in the Inspector now works properly&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;A little goodie for you!&lt;/b&gt;&lt;br&gt;&lt;br&gt;One of the most exciting things that this release brings, is a solid version of the Forge Demo that we are happy to be able to share with all of the people who have yet to purchase the &lt;a href='http://www.garagegames.com/products/torque/tgea/'&gt;TGEA SDK&lt;/a&gt; (shame on you ;).&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_03_28_08/glowy_forge.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;i&gt;&lt;a href='http://demos.garagegames.com/tgea/ForgeDemo-1-7-0.exe' target=_blank&gt;Click here to download the Forge Demo&lt;/a&gt;&lt;/i&gt;&lt;br&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;What's next?&lt;/b&gt;&lt;br&gt;&lt;br&gt;One of the coolest things that Brett hit on in his &lt;a href='http://www.garagegames.com/blogs/83134/14506'&gt;recent blog&lt;/a&gt; about the whole &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=13585'&gt;IAC deal&lt;/a&gt; is that we finally have the resources to properly &lt;b&gt;follow through&lt;/b&gt; on our releases and to continue development. We no longer have to immediately move on to something totally unrelated in order to keep the company afloat. This means that you are going to be seeing a lot more frequent updates to our products (measured in weeks and months rather than in years).&lt;br&gt;&lt;br&gt;Our bug list for the TGEA 1.7 Release is getting pretty short and Beta 2 is very nearly a release candidate. Assuming no show stopping bugs pop up (*knocks on wood*) we will be launching TGEA 1.7.0 really soon! But don't worry if your particular issue hasn't been fully addressed. We are going to continue active development on TGEA and you will be seeing the fruits of that labor much sooner rather than later.&lt;br&gt;&lt;br&gt;&lt;b&gt;Final Stretch&lt;/b&gt;&lt;br&gt;&lt;br&gt;With all of that in mind, I want to further encourage people to help us find &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73228'&gt;bugs&lt;/a&gt; and to continue to offer &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73226'&gt;feedback&lt;/a&gt;. You have our ear and our attention...now it is up to you to put it good use!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/985/14469">
		<dc:format>text/html</dc:format>
		<dc:date>2008-03-19T01:19:51+00:00</dc:date>
		<dc:creator>Matt Fairfax</dc:creator>
		<title>Torque Game Engine Advanced Open Beta</title>
		<link>http://www.garagegames.com/blogs/985/14469</link>
		<description>&lt;b&gt;Did you say Open Beta?&lt;/b&gt; &lt;br&gt;&lt;br&gt;I am happy to announce the release of the TGEA 1.7 Open Beta! &lt;br&gt;&lt;br&gt;We, here at GarageGames, have decided to go out on a limb and allow &lt;b&gt;all&lt;/b&gt; owners of the Torque Game Engine Advanced to get their hands on the TGEA 1.7 beta as we continue nail down the remaining issues. &lt;br&gt;&lt;br&gt;&lt;center&gt; &lt;br&gt;   &lt;img src='http://www.rustycode.com/matt/plan_03_18_08/Oasis.jpg'  alt=&quot;&quot;&gt; &lt;br&gt;&lt;i&gt;Still early screenshots from our Oasis demo&lt;/i&gt; &lt;br&gt;&lt;/center&gt; &lt;br&gt;&lt;br&gt;&lt;b&gt;Why is this a Beta?&lt;/b&gt; &lt;br&gt;&lt;br&gt;At this point we consider TGEA 1.7 feature complete and of a quality and readiness that we trust TGEA owners to take a look and test things out with the understanding that it's...well...a beta :)  There are still some &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73224'&gt;known bugs&lt;/a&gt;. We'd *love* to get everyone's help &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73228'&gt;identifying and squashing these&lt;/a&gt; and as many other bugs as we can.  Early access to this, one of our biggest releases ever, will allow us to keep an &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73226'&gt;open dialogue&lt;/a&gt; about the direction of our products and their features. &lt;br&gt;&lt;br&gt;&lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=14445'&gt;Michael Perry&lt;/a&gt; has done a ton of work on the Getting Started, Mission Editor, GUI Editor, Using Art Asset documents but we still have a ways to go on some other areas of the documentation. We will continue to work actively on this while TGEA is in beta and look forward to getting &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73226'&gt;feedback&lt;/a&gt; as we add the final touches to make this a full release. &lt;br&gt;&lt;br&gt;&lt;b&gt;What will you get (for FREE!)&lt;/b&gt; &lt;br&gt;&lt;br&gt;I covered a lot of things in my &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=14177'&gt;previous blog&lt;/a&gt;, so I will only hit the highlights: &lt;br&gt;&lt;br&gt;&lt;ul&gt; &lt;br&gt;   &lt;li&gt;1) Major code cleanup and refactor - The GG Game Studios team put nearly a year of work on the underlying engine code and their effort shows in the number of bugs fixed and how much simpler it is to work with the code.&lt;br&gt;&lt;br&gt;   &lt;li&gt;2) MegaTerrains - As you may have seen in &lt;a href='http://www.garagegames.com/blogs/4280/14448'&gt;Josh Engebretson's&lt;/a&gt; recent blog, the legacy terrain system in Torque has been extended to allow for *much* larger and much more detailed terrains.  These new MegaTerrains include all the amazing real-time terrain editing features of the original Terrain system.  It should make getting the terrain you want for your game in place easier than ever. &lt;br&gt;&lt;br&gt;&lt;center&gt; &lt;br&gt;   &lt;img src='http://www.rustycode.com/matt/plan_03_18_08/MegaTerrain.jpg'  alt=&quot;&quot;&gt; &lt;br&gt;   &lt;a href='http://www.vimeo.com/799556' target=_blank&gt;&lt;i&gt;Creating a MegaTerrain Video&lt;/i&gt;&lt;/a&gt; &lt;br&gt;&lt;/center&gt; &lt;br&gt;&lt;br&gt;   &lt;li&gt;3) Polysoup Collision - We've taken &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=8863'&gt;Ben Garney's&lt;/a&gt; OPCODE Polysoup Collision implementation and extended it to better integrate with the environment and lighting.  The improvements are looking sharp! Quickly drop in your mesh objects and levels and get up and running with them in no time. &lt;br&gt;&lt;br&gt;&lt;center&gt; &lt;br&gt;   &lt;img src='http://www.rustycode.com/matt/plan_03_18_08/Polysoup.jpg'  alt=&quot;&quot;&gt; &lt;br&gt;   &lt;a href='http://www.vimeo.com/799185' target=_blank&gt;&lt;i&gt;Using Polysoup Video&lt;/i&gt;&lt;/a&gt; &lt;br&gt;&lt;/center&gt; &lt;br&gt;&lt;br&gt;   &lt;li&gt;4) SFX Sound Layer - The new sound layer is getting a thorough testing over in the games on &lt;a href='http://www.instantaction.com' target=_blank&gt;InstantAction&lt;/a&gt; and has already proven to be enormously easier to work with. &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=11919'&gt;Tom Spilman&lt;/a&gt; will continue to roll in cool new features and improvements over the course of the beta. &lt;br&gt;&lt;br&gt;   &lt;li&gt;5) Getting Started - A primary focus of this new release is making sure that new users can get up and running on TGEA as quickly as possible. We are doing this by making sure that TGEA owners have top notch docs available to help them hit the ground running. We are also providing a great selection of game examples to show tried and tested implementations of the most common problems you will encounter when building your game. &lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_03_18_08/GameExamples.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Why TGEA 1.7?&lt;/b&gt; &lt;br&gt;&lt;br&gt;Version numbers are a funny thing...What metric do you use to determine how big of a jump in version number you should make? The number of features? The amount of time spent on it? The amount of money? &lt;br&gt;&lt;br&gt;By all these metrics, this release warrants a very big jump.  The changes, though not all of them sexy, are together an enormous improvement over TGEA 1.0.3.  Users digging into the code or really banging on the stability and performance of this new release will notice right away that, though this is a TGEA release, it's much different than any Torque engine ever released before.  Some of you have heard us refer to &amp;quot;Juggernaut&amp;quot; as our internal repository of the latest and greatest tech.  Well, in many ways that's true, but there's a lot work that has to go into a release like this one before it's really usable by Torque developers outside GG offices.  That's the work I've been doing for the past few months.  We're releasing this under the TGEA banner because it is the most advanced stuff we've got.  It's been mentioned before, but &lt;a href='http://www.garagegames.com/mg/snapshot/view.php?qid=1564'&gt;Legions&lt;/a&gt;, ScrewJumper, Marble Blast Online, Buccaneer, and many other titles forthcoming have all been built on exactly this tech, so it's very battle-tested. &lt;br&gt;&lt;br&gt;Some of you might be looking at our version number history in the past and saying &amp;quot;hmmm...&amp;quot;  Well, if you look back over the development of TGE, it is fairly easy to see the snail's pace of version numbering next to a mountain of features and bug fixes between each version of the engine.  Looking back over the last &lt;b&gt;7 years&lt;/b&gt; of TGE development, it is pretty obvious that we have easily more than doubled the functionality and usability of the engine (just ask some of the old timers ;).  Taking the longview and looking at other new engines that have run through 3 full version numbers in one or two years before fading away, it makes us sometimes wonder why this release shouldn't be called Torque 2 or even Torque 3! &lt;br&gt;&lt;br&gt;There are certainly people at GG who'd rather keep a release like this low key...maybe roll out with a small announcement as we have in the past of TGEA 1.1 etc.  As a developer, I sometimes fight my own cautious nature in talking enthusiastically about my own work.  I think most devs are the same.  But TGEA deserves more of a splash than that.  Or at least that's what the marketing dudes keep telling me. =P  Ultimately, how did we settle the version number debates at GarageGames? With lively discussions and guerilla nerf battles! &lt;br&gt;&lt;br&gt;&lt;center&gt; &lt;br&gt;   &lt;img src='http://www.rustycode.com/matt/plan_03_18_08/TnTF2.jpg'  alt=&quot;&quot;&gt; &lt;br&gt;&lt;/center&gt; &lt;br&gt;&lt;br&gt;&lt;b&gt;Let's get cracking!&lt;/b&gt; &lt;br&gt;&lt;br&gt;Grab your vey own &lt;a href='http://www.garagegames.com/products/torque/tgea/'&gt;license&lt;/a&gt; to TGEA, hop over to your &lt;a href='http://www.garagegames.com/myAccount/'&gt;account page&lt;/a&gt; to download the Beta from your TGEA download page, and start sending us &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73226'&gt;feedback&lt;/a&gt; and &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=73228'&gt;bugs&lt;/a&gt;! &lt;br&gt;&lt;br&gt;With your help, we can make this the best release of Torque yet!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/985/14177">
		<dc:format>text/html</dc:format>
		<dc:date>2008-01-18T22:38:35+00:00</dc:date>
		<dc:creator>Matt Fairfax</dc:creator>
		<title>Big Update to TGEA on the way!</title>
		<link>http://www.garagegames.com/blogs/985/14177</link>
		<description>Hi GarageGames Community! I know I have been awfully quiet recently but trust me...it was worth it!&lt;br&gt;&lt;br&gt;Ever since I handed off community management to the supremely capable hands of &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=16378'&gt;David Blake&lt;/a&gt;, I have been jamming away on the next big update to Torque.  As many of you know, we spent much of 2007 merging the Torque C++ engine products into one code base which we've been referring to as Torque Juggernaut.  There are big opportunities here to update both TGEA and TGE.  I focused on TGEA 1.0.3 as a start here, but as you'll see below, we've made some *big* moves. &lt;br&gt;&lt;br&gt;Huge credit goes to &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=6452'&gt;Clark&lt;/a&gt; and his team working on the core engine for all their hard work on Juggernaut over the past year.  Juggernaut includes lots of updates, bug fixes, and feature additions to the Torque line up.  What we're looking to release here will look a lot like TGEA, but it's really another stepping stone to our longer term goal of a fully componentized Torque Engine. &lt;br&gt; &lt;br&gt;&lt;center&gt;&lt;img src='http://www.garagegames.com/images/site/images_mattF/sky.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;i&gt;TGEA...more is on the way&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;What you'll see:&lt;br&gt;&lt;br&gt;All the features of TGEA 1.0.3 PLUS 99% of TGE 1.5.2 PLUS:&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;1. A brand new completely abstracted sound system (SFX) with a DirectSound and OpenAL implementation (credit to &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=11919'&gt;Tom Spilman&lt;/a&gt;).&lt;br&gt;&lt;li&gt;2. Major reworks of GFX layers and the addition of a D3D8 layer&lt;br&gt;&lt;li&gt;3. All of the rendering objects should &lt;b&gt;now support fixed function fallbacks for non-shadered video cards&lt;/b&gt;&lt;br&gt;&lt;li&gt;4. Introduction of the &lt;b&gt;Project Generator&lt;/b&gt; - a system that automates generating up-to-date Visual Studio projects files based on which &amp;quot;modules&amp;quot; of code you want to include&lt;br&gt;&lt;li&gt;5. Significant directory reorganizations with an eye towards making it easier to work with for both experienced and new users&lt;br&gt;&lt;li&gt;6. A ton of bugfixes done by the internal development team as they worked towards a fully componentized version of Torque&lt;br&gt;&lt;li&gt;7. Lots of refactoring and general code cleanup&lt;br&gt;&lt;li&gt;8. Port of some of the missing TGE classes including Lightning, fxShapeReplicator, and RigidShape&lt;br&gt;&lt;li&gt;9. The famous &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=8863'&gt;Ben Garney's&lt;/a&gt; OPCODE &lt;b&gt;polysoup collision&lt;/b&gt; implementation&lt;br&gt;&lt;li&gt;10. Support for &lt;b&gt;multiple legacy terrain tiles (including full editor support)&lt;/b&gt; - this should make building a paging terrain manager for massive environments a lot easier and will support realtime editing&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.garagegames.com/images/site/images_mattF/terrain.jpg'  alt=&quot;&quot;&gt; &lt;br&gt;&lt;i&gt;Multiple Terrain Tiles (with full editor support)&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;11. Ports of the TGE demo and starter.fps with performance tweaks&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.garagegames.com/images/site/images_mattF/starter1.jpg'  alt=&quot;&quot;&gt; &lt;br&gt;&lt;img src='http://www.garagegames.com/images/site/images_mattF/starter2.jpg'  alt=&quot;&quot;&gt; &lt;br&gt;&lt;i&gt;Stronghold (starter.fps)&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.garagegames.com/images/site/images_mattF/tgedemo.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;i&gt;TGE Feature Demo&lt;/i&gt;&lt;/center&gt; &lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;12. A couple &lt;b&gt;unreleased demos&lt;/b&gt;!  A &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=34977'&gt;small&lt;/a&gt; &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=14219'&gt;team&lt;/a&gt; is slaving away to bring you a &lt;b&gt;never-before-seen feature demo&lt;/b&gt; that will knock off those socks.&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.garagegames.com/images/site/images_mattF/forge.jpg'  alt=&quot;&quot;&gt; &lt;br&gt;&lt;i&gt;&lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=32699'&gt;Tim Aste's&lt;/a&gt; Forge demo&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.garagegames.com/images/site/images_mattF/newdemo.jpg'  alt=&quot;&quot;&gt; &lt;br&gt;&lt;i&gt;Shhhh... early yet, but this new demo is going to be BEAUTIFUL&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;13. &lt;b&gt;Previously unreleased Player models&lt;/b&gt; bringing the total count up to 6!&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.garagegames.com/images/site/images_mattF/players.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;i&gt;Release will include SpaceOrc, TorqueOrc, Elf, Forge guy, Spacesuit guy, and BoomBot&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;14. Clipmapping support for legacy terrain allows higher resolution terrain textures and gives a general performance boost&lt;br&gt;&lt;li&gt;15. &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=29233'&gt;Jeff Faust's&lt;/a&gt; fantastic &lt;a href='http://www.garagegames.com/mg/snapshot/view.php?qid=1556'&gt;AFX Kit&lt;/a&gt; should be updated for compatibility with this new version and he's already brought over most of the excellent bugfixes he posted on the TGEA forums including multiple particles per emitter&lt;br&gt;&lt;li&gt;16. Reworked Material system is easier to use and performs better &lt;br&gt;&lt;li&gt;17. Improved functionality in the Mission Editor with work from &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=8341'&gt;Dave Wyand&lt;/a&gt;, with a few new features that make it much easier to use&lt;br&gt;&lt;li&gt;18. GUI Editor improvements making it easier to use&lt;br&gt;&lt;li&gt;19. &lt;b&gt;TGB-style offline docs and tutorials&lt;/b&gt; for better / faster accessibility&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.garagegames.com/images/site/images_mattF/docs.jpg'  alt=&quot;&quot;&gt; &lt;br&gt;&lt;i&gt;TGB-style Offline Docs&lt;/i&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;20. Abstracted Lighting allows you to plug in different lighting systems of your choice.  Current built in options include:&lt;br&gt;&lt;li&gt;a) Basic Lighting System (really simple)&lt;br&gt;&lt;li&gt;b) &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=21036'&gt;John Kabus'&lt;/a&gt; Synapse Gaming Lighting System&lt;/ul&gt;&lt;br&gt;&lt;br&gt;I wanted to greatly smooth the transition from TGE to TGEA, so making sure that TGEA supports nearly all of the same features (&lt;b&gt;no OpenGL or Mac support&lt;/b&gt;) you have come to expect from TGE, converting over most of the TGE content and mission, and including a lot of tools and functionality that will greatly ease porting a pre-existing TGE project have all been a primary focus.  Right now this update will automatically handle unmapped textures and converting older file formats of things like TerrainBlocks and Waterblocks. I have also spent time working on pulling together the best of the Torque documentation and getting it far more organized. The goal here is to make getting started with this next release of TGEA to be comparable to getting started with TGE, if not even easier. TGEA is still a powerful and complex game engine but we're working hard to make it a lot more approachable.&lt;br&gt;&lt;br&gt;At this point I am sure that there are a few questions on everyone's mind!&lt;br&gt;&lt;br&gt;&lt;b&gt;How much will this cost?&lt;/b&gt; This is a &lt;b&gt;free&lt;/b&gt; update for TGEA owners. It doesn't get much better than that!&lt;br&gt;&lt;br&gt;&lt;b&gt;Will this include OpenGL?&lt;/b&gt; Sadly, &lt;b&gt;no&lt;/b&gt;, this update will not include OpenGL. All of the work we have done on OpenGL is still not ready for release.&lt;br&gt;&lt;br&gt;&lt;b&gt;When will this update be ready?&lt;/b&gt; As always, this is a hard question to answer. GarageGames is more committed to high quality releases than ever before so this update will not go out the door until it is polished and ready. The Associates are already participating in a closed Beta and have been giving great help and feedback. I expect to have a fairly complete version of it demoing at GDC next month but I will not hesitate to put in a couple of extra weeks on documentation and bugfixing if it needs it (please email me if you would like to help with docs). There is still a lot of ground to cover but we are making rapid progress on it!&lt;br&gt;&lt;br&gt;Hopefully everyone reading this is as excited as I am about this update! Be sure to go check out the &lt;b&gt;awesome&lt;/b&gt; things that the game teams are doing with it in &lt;a href='http://www.garagegames.com/mg/snapshot/view.php?qid=1564'&gt;Fallen Empire: Legions&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;center&gt;&lt;img src='http://www.garagegames.com/images/site/Legions3.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;i&gt;Fallen Empire: Legions&lt;/i&gt;&lt;/center&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/985/13565">
		<dc:format>text/html</dc:format>
		<dc:date>2007-09-15T00:43:04+00:00</dc:date>
		<dc:creator>Matt Fairfax</dc:creator>
		<title>A Week in Oregon</title>
		<link>http://www.garagegames.com/blogs/985/13565</link>
		<description>Since &lt;a href='http://www.indiegamescon.com' target=_blank&gt;IGC&lt;/a&gt; is coming up fast, I figured I would give you guys and gals a glimpse into the very cool town and surrounding area that GarageGames calls home =)&lt;br&gt;&lt;br&gt;Conveniently, my cousin visited Eugene for the first time since I moved here 3 years ago and we tried to pack as much sightseeing and fun into his too short week. And, we took pictures! Lots and lots of pictures!&lt;br&gt;&lt;br&gt;As soon as Kory landed at the enourmous Eugene Airport (&amp;quot;we kept circling over cow pastures so long I was wondering if the pilot was lost and looking for the airport&amp;quot;) he was quick to let us know that he was starving so I bustled him off to the very uniquely Eugenian experience that is&lt;br&gt;&lt;a href='http://www.cafeyumm.com' target=_blank&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/cafe_yumm.jpg'  alt=&quot;&quot;&gt;&lt;/a&gt;.&lt;br&gt;&lt;br&gt;This is an odd little fast food joint that only exists in Eugene that caters to health nuts and vegeterians with its main dish of rice, beans, and a special sauce (very rich). Very tasty! I was sad when they had to close the one near the office although, ironically, their main corporate office is just the other side of the wall of our &amp;quot;garage&amp;quot;.&lt;br&gt;&lt;br&gt;We let him rest up that evening (we did introduce him to the concept of a mongolian grill) so that we could get up early on Saturday and head up to the &lt;a href='http://www.sprucegoose.org' target=_blank&gt;Evergreen Aviation &amp;amp; Space Museum&lt;/a&gt; which is the home of the famous &amp;quot;Spruce Goose&amp;quot; (largest plane ever built).&lt;br&gt;&lt;br&gt;The museum is about an hour and half north of Eugene and, while I had driven by it a few times, I had never taken the time to actually go visit it. Let me tell you, I really wish I had before! It was amazing! Imagine a huge building with tons of windows (the whole front is glass) built around an eight story airplane with tons of cool aircraft tucked comfortable under its 319 ft wingspan. They had everything from early planes and dogfighters to WW2 craft (including a B51 bomber you could go inside) to modern jets like an SR-71 Blackbird and an A-4 Skyhawk. They even had a P-38 Lightning which is one of my favorite designs of all time =)&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/sgm_sprucegoose.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/sgm_many.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/sgm_old.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/sgm_fighter.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/sgm_jet.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/sgm_p38.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/sgm_rabbit.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Meet my cousin Kory...he's the goofy guy in the last picture =P&lt;br&gt;&lt;br&gt;On Sunday we headed up to Portland to see &lt;a href='http://www.montypythonsspamalot.com' target=_blank&gt;Spamalot&lt;/a&gt; which is a musical based on the Monty Python movie &amp;quot;The Quest for the Holy Grail&amp;quot;.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/spamalot.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;On the way up we introduced him to &lt;a href='http://www.frys.com' target=_blank&gt;Frys&lt;/a&gt; (think Sam's Club or CostCo for electronics). We then took him around the city a bit, back and forth across the numerous bridges in the middle of Portland. From there we wandered around downtown and ended up at &lt;a href='http://www.powells.com' target=_blank&gt;Powell's Bookstore&lt;/a&gt; (the world's largest used bookstore...literally a full city block). Unfortunately, we forgot the camera that day so you will have to imagine it all =(&lt;br&gt;&lt;br&gt;On Monday, Kory ended up coming with me to the office and I gave him a quick walking tour of downtown Eugene. At some point he grabbed my camera and wandered around taking pictures of various things in downtown that caught his interest like the 5th Street Market just down the road from GG, a cool looking tattoo place a couple blocks away, and a lot of the flowers lining the streets in the heart of downtown.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/fifthstreet_truck.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/fifthstreet_foodcourt.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/fifthstreet_courtyard.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/fifthstreet_back.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/eugene_tattoo.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/eugene_flowers.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Tuesday was also a pretty low key day for us. Kory bounced between our office and the Eugene library (which is an amazing library). Later that night we took him to see the &amp;quot;Simpsons Movie&amp;quot; in the &lt;a href='http://www.kval.com/news/8775202.html' target=_blank&gt;real Springfield&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/office_desk.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/library_outside.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/library_stairs.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;I ended up taking a half day on Wednesday so that we could take Kory out to the Oregon coast. It was the prettiest I have ever seen the coast: 77 degrees, sunny, light breeze. My wife immediately ran up and stuck her toes into the 50 degree water just to verify that we were on the right side of the country =P Normally going to the coast involves jeans, shoes, and a sweatshirt. We decided to take him just north of Florence (an hour west of Eugene) to the Heceta Head Lighthouse (most photographed lighthouse in the world) since it gives you a good glimpse of the sandy beaches, cliffs, sea caves, mountains, and forests all in the same place that is the standard on our state's coast (baffling to me who grew up where the mountains are 4-5 hours from the beach).&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/coast_haystacks.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/coast_hecetahead.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/coast_lighthouse.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/coast_inside.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/coast_lilcapn.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/coast_cave.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/coast_shadow.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/coast_log.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Thursday night was board game night at GG for the group of people I am currently working with. We ended up having a lot of fun with &lt;a href='http://www.boardgamegeek.com/game/822' target=_blank&gt;Carcassonne&lt;/a&gt;, &lt;a href='http://www.otb-games.com/showcase/apples.html' target=_blank&gt;Apples to Apples&lt;/a&gt;, and &lt;a href='http://www.boardgamegeek.com/game/1234' target=_blank&gt;Once Upon A Time&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Sadly, Kory had to leave on Friday so he ended up missing out on going to the Oregon Ducks game on Saturday with me and my wife (who is a rabid fan of the Ducks =).&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/ducks_talana.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/ducks_together.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;He also missed out on getting to see one of the weirder Eugenian tradions...rock stacking in the Willamette River:&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_09_14_07/rockstacking.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Not a comprehensive coverage of all of the things you can see in our wacky little city. I didn't get into the rock climbing, camping, rafting, Saturday Market (hippie fest), volcanoes, lava fields, and hot springs for example. There is a ton you can see and do and I am often surprised at the things I don't even know about yet after being here for 3 years.&lt;br&gt;&lt;br&gt;Hopefully I will be seeing some of you at IGC and I can point you in the direction of something fun to do!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/985/12695">
		<dc:format>text/html</dc:format>
		<dc:date>2007-04-10T06:27:12+00:00</dc:date>
		<dc:creator>Matt Fairfax</dc:creator>
		<title>Great Strides</title>
		<link>http://www.garagegames.com/blogs/985/12695</link>
		<description>&lt;img src='http://www.rustycode.com/matt/plan_04_09_07/ConstructorBanner.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;As many of you know by now &lt;a href='http://www.garagegames.com/products/torque/constructor/'&gt;Constructor&lt;/a&gt; has &lt;a href='http://www.garagegames.com/mg/snapshot/view.php?qid=1436'&gt;shipped&lt;/a&gt;!!!&lt;br&gt;&lt;br&gt;Now I can finally turn my attention to other things (ok...I can turn my attention *after* the 1.0.1 patch ;)&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_04_09_07/talananmatt1.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;One of the things I have on my mind and close to my heart is the charity walk that me and my wife are participating in this May.&lt;br&gt;&lt;br&gt;The walk is called Great Strides and is the number one fundraising event for the &lt;a href='http://www.cff.org/' target=_blank&gt;Cystic Fibrosis Foundation&lt;/a&gt;. Not many of you know it but my wife was born with Cystic Fibrosis which is a fatal genetic illness that primarily effects the lung and digestive system. It causes her to have frequent lung infections, poor absorption of food, and a myriad of other symptoms. She has been hospitalized a few times already and will be put back in more and more as her symptons progress. Eventually she will have to face a full lung transplant.&lt;br&gt;&lt;br&gt;When she was born the average life expectancy of someone born with CF was 18 years. Largely through the efforts of the Cystic Fibrosis Foundation and the money they raise for research, that life expectancy has climbed to 37 years and continues to get higher every year. The CFF is listed yearly among the top most efficient charities, with the vast majority of the money going straight into research.&lt;br&gt;&lt;br&gt;If you would like to lend a hand please visit my wife's team page at &lt;a href='http://www.cff.org/great_strides/talanalydaairfax' target=_blank&gt;www.cff.org/great_strides/talanalydaairfax&lt;/a&gt;. Any size donation would be hugely appreciated and if you are in the Eugene, OR area you are more than welcome to join us in our walk!&lt;br&gt;&lt;br&gt;Thanks!&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_04_09_07/silhouette2.jpg'  alt=&quot;&quot;&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/985/11489">
		<dc:format>text/html</dc:format>
		<dc:date>2006-10-27T04:25:51+00:00</dc:date>
		<dc:creator>Matt Fairfax</dc:creator>
		<title>Constructor Beta9 thru Beta14</title>
		<link>http://www.garagegames.com/blogs/985/11489</link>
		<description>Just to give everyone a glimpse into how busy we have been with Constructor! This is extracted from our changelogs over the last 4 months.&lt;br&gt;&lt;br&gt;Since this got a little long I had to split it up. This is continued from &lt;a href='http://www.garagegames.com/blogs/985/11488'&gt;Constructor Beta3 thru Beta8&lt;/a&gt;.&lt;br&gt;&lt;br&gt;And no, we do not have a firm release date yet =P&lt;br&gt;&lt;br&gt;&lt;h1&gt;Constructor Beta9 thru Beta14 Changes&lt;/h1&gt;&lt;br&gt;Below is a list of all changes that have been made to Constructor between Beta9 and Beta14.  This covers SVN revisions 782 through 999.&lt;br&gt;&lt;br&gt;&lt;h2&gt;Vertex Snap to Grid&lt;/h2&gt;&lt;br&gt;Brush vertices will now correctly snap to the grid when moved with the tools or the Axis Gizmo.  Previously they would only move by the amount of grid spacing but not stick to the grid as drawn.&lt;br&gt;&lt;br&gt;&lt;h2&gt;New Action Centers&lt;/h2&gt;&lt;br&gt;Two new Action Centers have been added to the &lt;i&gt;Edit-&amp;gt;Action Center&lt;/i&gt; menu and &lt;i&gt;Tools&lt;/i&gt; Form's &lt;i&gt;Action Center&lt;/i&gt; popup:&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;World [ALT+W]&lt;/b&gt; - about the world's origin.&lt;br&gt;&lt;li&gt;&lt;b&gt;Custom [ALT+C]&lt;/b&gt; - about a user defined action center that is stored in the current scene's detail level.&lt;/ul&gt;&lt;br&gt;A new tool &lt;i&gt;Edit Custom Action Center&lt;/i&gt; has been added to the &lt;i&gt;Edit-&amp;gt;Action Center&lt;/i&gt; menu.  This allows the user to change the scene's custom Action Center to any position (which is saved in a CSX file).  The changes made using this tool are immediate.  The tool's only button, Reset, is used to place the custom Action Center back to the world's origin.&lt;br&gt;&lt;br&gt;&lt;h2&gt;Brush Tab Update&lt;/h2&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;The &lt;i&gt;Brush&lt;/i&gt; tab of the &lt;i&gt;Object Properties&lt;/i&gt; Form now has a button underneath the parent entity's name called 'Edit Properties'. Clicking on this button will open the &lt;i&gt;Manage Entities&lt;/i&gt; window and select the brush's parent solid entity.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorBrushTabEditPropButton.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;li&gt;The &lt;i&gt;Brush&lt;/i&gt; tab of the &lt;i&gt;Object Properties&lt;/i&gt; Form now displays the selected brushes' group number or &amp;quot;None&amp;quot; if they do not belong to a group.  If the selected brushes do not share the same group then the Group field will appear blank.&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;Select Same Brush Owning Entity&lt;/h2&gt;&lt;br&gt;Added a new &lt;i&gt;Select-&amp;gt;Same-&amp;gt;Brush Owning Entity&lt;/i&gt; menu item.  With at least one item selected this operation will select like items that share the same owning solid entity ie: 'worldspawn' or 'detail'.  This works with brushes, faces and vertices.&lt;br&gt;&lt;br&gt;&lt;h2&gt;New Sunlight Form&lt;/h2&gt;&lt;br&gt;A new &lt;i&gt;Sunlight&lt;/i&gt; Form has been added and may be used to modify the current scene's sun's orientation and color.  This information is now saved in a scene's CSX file.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorSunlightForm.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;Manage Entities Window Update&lt;/h2&gt;&lt;br&gt;The &lt;i&gt;Manage Entities&lt;/i&gt; window opened from &lt;i&gt;Scene-&amp;gt;Manage Entities&lt;/i&gt; now displays the number of child brushes for each entity.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorManageEntitiesBrushCount.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;Scene Menu Update&lt;/h2&gt;&lt;br&gt;The &lt;i&gt;Scene&lt;/i&gt; menu now contains a list of the loaded scenes at the bottom with a check mark beside the current one.  Selecting one of the scene names will make it the current scene.  This is in addition to what may already be done from the &lt;i&gt;Layers&lt;/i&gt; Form.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorSceneMenuList.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;Tool Dynamic Control Update&lt;/h2&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;A new 'color3' dynamic control has been created.  It provides three numeric text edit fields representing the RGB components of a color and a small color preview swatch.&lt;br&gt;&lt;li&gt;A new 'label' dynamic control has been created.  It is used to add a single line of (usually unchanging) text.&lt;/ul&gt;&lt;br&gt;&lt;h2&gt;Add Point Entity Tool Update&lt;/h2&gt;&lt;br&gt;The &lt;i&gt;Add Point Entity&lt;/i&gt; tool now allows for a mouse click anywhere within the 3D Views to move the new entity.  This means you're not required to click on the handle to position the point entity.&lt;br&gt;&lt;br&gt;&lt;h2&gt;Radial Clone Tool&lt;/h2&gt;&lt;br&gt;A new &lt;i&gt;Radial Clone&lt;/i&gt; tool has been added to the &lt;i&gt;Tools&lt;/i&gt; Form's &lt;i&gt;Create&lt;/i&gt; tab.  This tool will make multiple copies of the selected brushes (or all brushes if none are selected) radiate about a given center.  Each copy has a given scale, rotation and offset (in that order) applied in a cumulative fashion.  So the second copy will be scaled more than the first, etc.  When the center handle is moved or the rotation axis is changed the duplicated brushes are updated in real time.  At some point this tool will also work with shapes and entities.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorRadialClone.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;Array Clone Tool&lt;/h2&gt;&lt;br&gt;A new &lt;i&gt;Array Clone&lt;/i&gt; tool has been added to the &lt;i&gt;Tools&lt;/i&gt; Form's &lt;i&gt;Create&lt;/i&gt; tab.  This tool will make multiple copies of the selected brushes (or all brushes if none are selected) into an array with a given number of copies along the world X, Y and Z-axis.  Each copy is given an offset from its neighbors as set in the tool's interface.  It is perfectly valid to have zero copies along a particular axis to build 2D and 1D arrays.  At some point this tool will also work with shapes and entities.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorArrayClone.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;Quantize Tool&lt;/h2&gt;&lt;br&gt;A new &lt;i&gt;Quantize&lt;/i&gt; tool has been added to the &lt;i&gt;Tools&lt;/i&gt; Form's &lt;i&gt;Modify&lt;/i&gt; tab.  This tool will force the selected brushes, shapes, point entities or vertices to snap to the grid.  For brushes, shapes and point entities the &lt;i&gt;Group&lt;/i&gt; and &lt;i&gt;Origin&lt;/i&gt; Action Centers are honored and work as you'd expect.  For vertices only the &lt;i&gt;Origin&lt;/i&gt; Action Center operates specially and is likely what you'd use most of the time.  All other Action Centers behave the same as &lt;i&gt;Selection&lt;/i&gt; ie: snap at the selection center (Axis Gizmo location).&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorQuantizeTool.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;Drag Empty Area to Scroll&lt;/h2&gt;&lt;br&gt;It is now possible to drag within a scroll control's body to scroll as if the scroll bars were used.  Just hold down the mouse in an empty area (one that a child content control doesn't cover) and drag.  This works better in some areas than others as child controls may take over more area than appears.  An example of this is the Tree View control where its width is the longest line of text which leaves empty looking space around other rows.  Good Forms to try this in are the &lt;i&gt;Tools&lt;/i&gt;, &lt;i&gt;Tools Properties&lt;/i&gt; and &lt;i&gt;Preferences&lt;/i&gt; Forms.&lt;br&gt;&lt;br&gt;&lt;h2&gt;New Tabbed Container Form&lt;/h2&gt;&lt;br&gt;A new &lt;i&gt;Tabbed Container&lt;/i&gt; Form has been added.  Using the Tabbed Container's &lt;i&gt;Modify Tabs&lt;/i&gt; menu item on the Form's menu the user may customize the number of tabs and the Form contents of each tab.  For example one tab may be the &lt;i&gt;Materials&lt;/i&gt; Form, one is the &lt;i&gt;Undo&lt;/i&gt; Form while a third is the &lt;i&gt;Preferences&lt;/i&gt; Form.  If the tabbed content has its own menu items they are accessible from the Form Menu when that tab is active.  For example with a &lt;i&gt;Materials&lt;/i&gt; Form tab active the Form menu contains the menu items to adjust its texture popup image preview.&lt;br&gt;&lt;br&gt;The older &lt;i&gt;Properties&lt;/i&gt; Form on the current layouts has been replaced with a &lt;i&gt;Tabbed Container&lt;/i&gt; Form that has also been given the name 'Properties'.  It has been given tabs for the &lt;i&gt;Tools Properties&lt;/i&gt;, &lt;i&gt;Object Properties&lt;/i&gt;, &lt;i&gt;Sunlight&lt;/i&gt; and &lt;i&gt;Preferences&lt;/i&gt; Forms.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorTabbedContainer.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;Window Title&lt;/h2&gt;&lt;br&gt;Constructor's window title now displays the name of the current scene.&lt;br&gt;&lt;br&gt;&lt;h2&gt;Undo / Redo&lt;/h2&gt;&lt;br&gt;Undo functionality from Beta3 thru Beta8:&lt;br&gt;&lt;ul&gt;&lt;li&gt;Creating and deleting a brush &lt;br&gt;&lt;li&gt;Transforms (move, rotate and scale) using the axis gizmo &lt;br&gt;&lt;li&gt;Brush selection and deselection &lt;br&gt;&lt;li&gt;Selection &lt;br&gt;&lt;li&gt;Adding / Deleting &lt;br&gt;&lt;li&gt;Grouping &lt;br&gt;&lt;li&gt;Locking &lt;br&gt;&lt;li&gt;Hiding &lt;br&gt;&lt;li&gt;Transforms (rotation, scale, position) &lt;br&gt;&lt;li&gt;Replace Shape&lt;/ul&gt;&lt;br&gt;New Undo functionality for Beta9 thru Beta14&lt;br&gt;&lt;ul&gt;&lt;li&gt;Undo of vertex and face selection &lt;br&gt;&lt;li&gt;Undo of brush geometry changes (e.g. vertex tweaking) &lt;br&gt;&lt;li&gt;Undo of brush texturing&lt;br&gt;&lt;li&gt;Implemented paging of the undo stack to disk. This should sort out the memory issues of Beta 11. &lt;br&gt;&lt;li&gt;Undo entries that have been paged to disk show in the stack as blue. Paged out redo entries are light blue. &lt;br&gt;&lt;li&gt;Added a couple of preferences to the prefs form to allow setting undo options. You can enable / disable paging entirely and set the maximum memory usage (in kilobytes) before entries are paged out. &lt;br&gt;&lt;li&gt;Added a preference to limit the size of the undo stack. Set to zero for unlimited. &lt;br&gt;&lt;li&gt;When changing scenes, the inactive scene will fully page out it's undo stack if it's inactive for at least a minute.&lt;br&gt;&lt;li&gt;Undo for entity properties&lt;/ul&gt;&lt;br&gt;&lt;h2&gt;Tool Created Brush ID Compression&lt;/h2&gt;&lt;br&gt;While working with a tool it may create and delete a number of brushes during its operation.  A good example is the &lt;i&gt;Hollow Brush&lt;/i&gt; tool and the various &lt;i&gt;Clone&lt;/i&gt; tools.  All of these transient brushes change the next unique brush ID number and you may end up with large ID number gaps from using a tool.  Now brush ID's are compressed after using a tool to help with this problem.  This won't affect existing brushes but only those newly created by a tool.  If a tool does not support brush ID compression it may set the &lt;i&gt;tool.RFLAG_NOIDCOMPRESSION()&lt;/i&gt; flag at registration.&lt;br&gt;&lt;br&gt;&lt;h2&gt;3D View Toolbar and 2D Alignment Tools&lt;/h2&gt;&lt;br&gt;The &lt;i&gt;Single 3D View&lt;/i&gt; Form may now display a toolbar.  Its optional drawing and position within the window are setup from the Form menu's &lt;i&gt;Toolbar Display&lt;/i&gt; item.  The toolbar current has four tools: &lt;i&gt;Align 2D Left&lt;/i&gt;, Align 2D Right, &lt;i&gt;Align 2D Top&lt;/i&gt; and &lt;i&gt;Align 2D Bottom&lt;/i&gt;.  The tools currently operate in the orthographic display modes and are relative to the current view.  So for a Top view left is considered the -x Axis while the Right view considers the -y Axis as the left.  These tools are limited to only brushes and do not take groups into account ie: align to the individual brush bounds.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/Constructor3DViewToolbar.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;Undo Form Update&lt;/h2&gt;&lt;br&gt;The bottom of the &lt;i&gt;Undo&lt;/i&gt; Form now displays the amount of memory used by the current scene for the undo stack and the total amount of memory dedicated to undo for Constructor.  To clear the current undo stack use the trashcan button at the bottom right corner.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorUndoFormMem.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;Slice and CSG of Vertex Edited Brushes&lt;/h2&gt;&lt;br&gt;You can now Slice, Knife, Clip, and perform CSG operations on vertex edited brushes without having to worry about losing your edits. Be warned though that a vertex edited brush that is not convex will not save or export properly.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/Constructor_vertexslice.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;WASD Camera Controls&lt;/h2&gt;&lt;br&gt;A new Free Movement camera option has been added to the &lt;i&gt;3D View&lt;/i&gt; Form.  To toggle between the original Orbit camera and the Free Movement camera use the 'c' keyboard shortcut or check the 'Free Cam' checkbox under the Preferences Form's 'View Camera' section.  While in Free Movement mode the right mouse button will rotate the view about the camera's location and move the camera's target along with it.&lt;br&gt;&lt;br&gt;With the right mouse button held in a &lt;i&gt;3D View&lt;/i&gt; Form the WASD keys become active to move the camera as in a traditional FPS game.  These keys work with either the Orbit or Free Movement camera modes.  Holding down SHIFT will cause the camera to move 10x faster, while holding down CTRL will cause the camera to move 10x slower.  These keys also work with the &lt;i&gt;Rotate&lt;/i&gt; drag button in the top left of the &lt;i&gt;3D View&lt;/i&gt; Form.&lt;br&gt;&lt;br&gt;&lt;h2&gt;Preferences Form Update&lt;/h2&gt;&lt;br&gt;The &lt;i&gt;Preferences Form&lt;/i&gt; has a new 'View Camera' section with two new parameters.  The 'Free Cam' checkbox is used to toggle between the 3D View camera's Free Movement and Orbit modes.  The 'Move Speed' text edit control is the number of meters per second that the camera will move using the WASD keys.&lt;br&gt;&lt;br&gt;&lt;h2&gt;Prompt for Save Before Close&lt;/h2&gt;&lt;br&gt;If a scene has been modified the user will now be prompted before the scene is closed or Constructor is closed.&lt;br&gt;&lt;br&gt;&lt;h2&gt;Unit Conversion&lt;/h2&gt;&lt;br&gt;All text edit controls that are based on the &lt;i&gt;Dynamic Control&lt;/i&gt; system (the &lt;i&gt;Tools Properties&lt;/i&gt; Form is an example) now support units of measurement.  When a unit is included with a number and Return or TAB is pressed, that number will be converted to meters (Torque units).  Supported unit suffixes include: mm, cm, m, km, in for inches, ft or feet, yard or yards, mi or miles.  These units may be combined with the existing ability to enter an expression that is automatically evaluated.  For example if the following were entered into the &lt;i&gt;Build Cube&lt;/i&gt; tool's &lt;i&gt;Center X&lt;/i&gt; field:&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;5cm + 2mm&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;and Return or TAB is then pressed, the field would evaluate to: 0.052&lt;br&gt;&lt;br&gt;A special unit of &lt;i&gt;t&lt;/i&gt; has been set up that will convert a number of texture units (based on the map's &lt;i&gt;geometry_scale&lt;/i&gt; parameter) into meters.  This is very handy if you wanted to size a cube to match a particular texture size or to move geometry with the &lt;i&gt;Translate&lt;/i&gt; tool a texture's width.  For example if the following values were entered into the &lt;i&gt;Build Cube&lt;/i&gt; tool's &lt;i&gt;Size&lt;/i&gt; field:&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;Size X: 128t&lt;br&gt;     Y: 128t&lt;br&gt;     Z: 128t&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;you would end up with cube that perfectly fits a 128x128 size texture regardless of the map's &lt;i&gt;geometry_scale&lt;/i&gt; setting.  In the above case this would produce a 4x4x4 cube with a &lt;i&gt;geometry_scale&lt;/i&gt; of 32.&lt;br&gt;&lt;br&gt;Please note that not all text edit fields currently support this unit conversion.  If they do not support expression evaluation then they also do not support the conversion.  Over time more text edit fields will be upgraded.  Forms that support unit conversion include: &lt;i&gt;Tools Properties&lt;/i&gt;, &lt;i&gt;Face&lt;/i&gt; tab under &lt;i&gt;Object Properties&lt;/i&gt;, and &lt;i&gt;Preferences&lt;/i&gt;.&lt;br&gt;&lt;br&gt;&lt;h2&gt;Keyboard Shortcut List&lt;/h2&gt;&lt;br&gt;Created a &lt;i&gt;Help-&amp;gt;Documentation-&amp;gt;Keyboard Shortcuts&lt;/i&gt; menu item that opens a window display all of Constructor's keyboard shortcuts.  The list may be sorted by the various columns using the arrow buttons along the top.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorKeyboardShortcutMenu.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorKeyboardShortcutWindow.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;3D View Camera Update&lt;/h2&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Changed the Orbit camera zoom system's modifier keys.  It is now consistent with the Free Movement (FPS) camera. SHIFT will increase the zoom speed while CTRL will slow it down.  Holding down ALT with either modifier will double or half the speed respectively.  The zoom speed multiplier may be customized with the ZoomFastMultiplier and ZoomSlowMultiplier preferences with each currently defaulted to 5x.&lt;br&gt;&lt;li&gt;The algorithm for the orbit camera zoom system has been modified to remain consistent at all zoom levels while still providing the acceleration when the camera is further from the target.&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;New Locked Brushes Mode&lt;/h2&gt;&lt;br&gt;A new &lt;i&gt;Preferences&lt;/i&gt; Form check box has been added: &lt;i&gt;Lock Blocks&lt;/i&gt;.  When checked, locked brushes behave as in the past by blocking selection by the mouse.  When unchecked locked brushes now draw in wireframe in all 3D Views and do not block mouse selection.  This allows for locked brushes to remain as a reference while allowing the selection of geometry behind them.  By default the &lt;i&gt;Lock Blocks&lt;/i&gt; preferences is set to off.  The 'l' keyboard shortcut may also be used to toggle the locked brush blocking state.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorLockedBrushes.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;New Selection Sets Form&lt;/h2&gt;&lt;br&gt;A new &lt;i&gt;Selection Sets&lt;/i&gt; Form has been created.  It lists all of the defined selection sets for the current scene with two buttons beside each entry.  The '+' button will add the selection set to the scene while the '-' button will subtract it from the scene.  At the bottom of the Form is a &lt;i&gt;Create&lt;/i&gt; button to save the current selection into a new or existing set, and a &lt;i&gt;Delete&lt;/i&gt; button to delete the chosen selection set from the scene.  To highlight a selection set to delete, click on its name in the list.&lt;br&gt;&lt;br&gt;The &lt;i&gt;testscenes/fulltest.csx&lt;/i&gt; file has been included as a scene that utilizes most of the CSX format features such as grouping, static meshes and selection sets.  You may use it to try out the &lt;i&gt;Selection Sets&lt;/i&gt; Form's features until you build your own scene that includes selection sets.  When combined with object hiding and locking, selection sets are a powerful aid in Constructor's workflow.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorSelectionSetsForm.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;New Selection Form&lt;/h2&gt;&lt;br&gt;A new &lt;i&gt;Selection&lt;/i&gt; Form has been created.  It is used to select or deselect objects based on the given criteria using the same '+' and '-' buttons as the &lt;i&gt;Selection Sets&lt;/i&gt; Form.  It mirrors much of the functionality found under the &lt;i&gt;Select&lt;/i&gt; menu and also includes some special features of its own.  It currently supports:&lt;br&gt;&lt;ul&gt;&lt;li&gt;All objects&lt;br&gt;&lt;li&gt;All geometry (brushes, faces etc.)&lt;br&gt;&lt;li&gt;All point entities&lt;br&gt;&lt;li&gt;All static meshes&lt;br&gt;&lt;li&gt;All reference shapes&lt;br&gt;&lt;li&gt;All geometry that uses the chosen material&lt;br&gt;&lt;li&gt;All objects that are part of the chosen selection set&lt;/ul&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorSelectionForm.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;New Keyboard Shortcuts&lt;/h2&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;.&lt;/b&gt; (period) - Will zoom in the view under the mouse pointer&lt;br&gt;&lt;li&gt;&lt;b&gt;,&lt;/b&gt; (comma) - Will zoom out the view under the mouse pointer&lt;/ul&gt;&lt;br&gt;&lt;h2&gt;Selection Form Update&lt;/h2&gt;&lt;br&gt;The &lt;i&gt;Selection Form&lt;/i&gt; has two new popups.  The first is used to select all point entities of the chosen class ie: light_omni.  The second is used to select all brushes that are children of the chosen entity.  This popup lists entities as 'name (ID)' similar to parent field of the &lt;i&gt;Object Properties'&lt;/i&gt; Brush tab.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorSelectionFormUpdate.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;UV Texture Display&lt;/h2&gt;&lt;br&gt;First pass at a UV texture display.  To try it out change one of the &lt;i&gt;3D View&lt;/i&gt; Form's to a 'Texture (UV)' display mode (left popup) and select a brush face on a map.  The face will be rendered in texture space ie: transformed vertex distance from the two texture planes.  You may need to zoom in the display to see the textured face.  Still lots of work to do but it appears to be correct and operational.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/plan_10_26_06/ConstructorTextureView.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h2&gt;New Build Sphere Tool&lt;/h2&gt;&lt;br&gt;The &lt;i&gt;Build Sphere&lt;/i&gt; tool is now operational.  The user may choose the number of sides around the sphere's equator and the number of segments that make up its height.  Right now only the 'Per face mapping' texturing choice is valid and will mirror the results of Quark.  The texture scale and offset parameters all work.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.rustycode.com/matt/