<?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/5030/">
		<title>Blog for Brian Ramage 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-09-05T23:09:47+00:00</dc:date>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/5030/12146"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/5030/11507"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/5030/11107"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/5030/10647"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/5030/8346"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/5030/8121"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/5030/7241"/>
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.garagegames.com/blogs/5030/12146">
		<dc:format>text/html</dc:format>
		<dc:date>2007-01-24T00:12:13+00:00</dc:date>
		<dc:creator>Brian Ramage</dc:creator>
		<title>TGEA Milestone 4.2 release</title>
		<link>http://www.garagegames.com/blogs/5030/12146</link>
		<description>I wish I could say there's a ton of grand new things in the release, but really it's just been hundreds of hours of bug fixing, plugging memory leaks, etc.  It's not super exciting, but it's the kind of polish and grunt work that we do so that you guys can be sure you're building on solid code and focusing on your gameplay rather than engine building.&lt;br&gt;&lt;br&gt;We're close enough to release to call this a beta.  There are still some issues present in this release, but they aren't major and we are fixing them at a rapid pace.  We're asking licensee's to report issues they are seeing with 4.2 (that we don't report as already known) so that we can pick up anything we missed and make sure it's as tight as possible for 1.0 release.&lt;br&gt;&lt;br&gt;There is a post in the private forums detailing what's in 4.2, what we're fixing, and a bunch of other things, so check that out if you are a licensee.&lt;br&gt;&lt;br&gt;Since we've had it in QA for a while now, we've already fixed many of the issues that are in that release and we aren't seeing major bugs, so we're hoping to have RC1 out in a week or two if we don't get slammed with forum bugs.</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/5030/11507">
		<dc:format>text/html</dc:format>
		<dc:date>2006-10-30T20:41:28+00:00</dc:date>
		<dc:creator>Brian Ramage</dc:creator>
		<title>TGEA Milestone 4 Demo</title>
		<link>http://www.garagegames.com/blogs/5030/11507</link>
		<description>The TGEA Milestone 4 demo is finally ready for your viewing pleasure.  You can grab it from Downloads/Devlopment Demos/Torque Shader Engine EA.  Yeah, we've got a lot of renaming to do.&lt;br&gt;&lt;br&gt;What is TGEA?  After getting lots of feedback on the TSE name change to Torque Advanced&lt;br&gt;Technologies, we've decided to change it once more.  TSE is now Torque Game Engine&lt;br&gt;Advanced or TGEA.  We feel this accomplishes our goals of establishing that TGEA&lt;br&gt;has more to offer than shader support, that it fits in with our current branding&lt;br&gt;strategy, and that its acronym is not slang for &amp;quot;crap&amp;quot; to people with funny&lt;br&gt;accents.&lt;br&gt;&lt;br&gt;This demo features the Orc once more, but he's not dancing this time thank goodness.&lt;br&gt;It's mostly just showing off the new MS4 lighting and self-shadowing that John Kabus&lt;br&gt;added to TGEA.  The editor is functional, so you can play around with the lights&lt;br&gt;and add your own and such.&lt;br&gt;&lt;br&gt;TGEA is coming along well, and we're feature complete at this point.  From now on&lt;br&gt;its a cycle of bug fixing, testing and feedback until we're done.  There are plenty&lt;br&gt;of docs to be added and refined as well, particularly in the areas of compiling on&lt;br&gt;VS2005 and using Materials.  Some of the code also needs better documentation&lt;br&gt;such as the new RenderInstance rendering structure.&lt;br&gt;&lt;br&gt;For those of you wondering where TGEA fits into the Torque product line, it is&lt;br&gt;our high end engine, aimed at serious 3D developers.  A version of it runs on the&lt;br&gt;XBOX 360, so it's got console port potential.  The core of TGEA is the same as&lt;br&gt;the Torque engine with the same object model, scripting, networking, and&lt;br&gt;editing tools.  For the most part the core is exactly the same we as regularly&lt;br&gt;merge the code between the two.  TGEA is a bit more complex to use than TGE, but&lt;br&gt;it offers higher performance and better visuals if you know what you're doing.&lt;br&gt;&lt;br&gt;Pretty much all of the rendering code in TGE has been gutted in TGEA.  Among&lt;br&gt;many improvements, it has:&lt;br&gt;&lt;br&gt;- A full blown material system that can procedually generate shaders&lt;br&gt;  based on artist preferences.  It also can be used for storage of per-surface&lt;br&gt;  data such as sound, physics info, and shader parameters.&lt;br&gt; &lt;br&gt;- An integrated dynamic lighting and shadowing system that works alongside&lt;br&gt;  the material system to take full advantage of shader surfaces.&lt;br&gt; &lt;br&gt;- A prototype super large (Atlas) terrain system that can effeciently render&lt;br&gt;  very large view distances, take up only a bit of video memory and yet deliver&lt;br&gt;  unique non repeating terrain over several square kilometers.&lt;br&gt; &lt;br&gt;- Fully transformable water with realtime reflections and underwater rendering&lt;br&gt;&lt;br&gt;- A new batched rendering system to render objects like characters much more&lt;br&gt;  effeciently than in TGE.&lt;br&gt;&lt;br&gt;- Support for full screen effects such as glow, bloom, refraction, DRL, and HDR.&lt;br&gt;&lt;br&gt;- An abstracted rendering layer to support multiple rendering APIs.&lt;br&gt;&lt;br&gt;&lt;br&gt;This engine has been in use internally for some time and was used for our hit&lt;br&gt;XBox Live Arcade title &amp;quot;Marble Blast Ultra&amp;quot;.  It's been pretty well battle tested&lt;br&gt;and is ready to be used to make your game or Serious application.&lt;br&gt;&lt;br&gt;I personally can't wait to finish cleaning up the remaining bugs and get it out&lt;br&gt;the door, it's been a long time ;)</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/5030/11107">
		<dc:format>text/html</dc:format>
		<dc:date>2006-08-17T19:55:43+00:00</dc:date>
		<dc:creator>Brian Ramage</dc:creator>
		<title>TSE Milestone 4</title>
		<link>http://www.garagegames.com/blogs/5030/11107</link>
		<description>There are a lot of questions being asked about TSE with the announcement of Torque X and MS4 coming up fast.  I thought I'd answer some of them here to clear things up a bit and also show some pretty orc pictures ;)&lt;br&gt;&lt;br&gt;&lt;img src='http://public.garagegames.com/brianr/planPics/08_17_2006/Orc-1.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://public.garagegames.com/brianr/planPics/08_17_2006/Orc-2.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Thanks to John Kabus for all the lighting work he did to make this possible.  Also thanks to Joe Maruschak and Mark McCoy for all painstaking tweaking to the Orc's textures and animations for this demo.  Tim Aste has done some pretty cool work with his characters, check up with him for some more screenshots and video of his work.  Pat Wilson and Ben Garney also jumped in for some last minute code tweaks on the Orc demo.  Hope to get it to y'all soon.&lt;br&gt;&lt;br&gt;&lt;br&gt;On to the Q/A:&lt;br&gt;&lt;br&gt;&lt;b&gt;- When is MS4 release?&lt;/b&gt;&lt;br&gt;Sometime soon, not this week though.&lt;br&gt;&lt;br&gt;&lt;b&gt;- What's going on with TSE after MS4?&lt;/b&gt;&lt;br&gt;Like other launches, we will go through a period of bug fixes based on community feedback and push out some release candidates until we feel it's ready for a full 1.0 release.&lt;br&gt;&lt;br&gt;&lt;b&gt;- September release?&lt;/b&gt;&lt;br&gt;We're hoping that we'll be ready for a 1.0 release in September.  It depends on how solid it's looking.  We're not going to release in September unless it's really ready to go.&lt;br&gt;&lt;br&gt;&lt;b&gt;- Is the TLK included with TSE?&lt;/b&gt;&lt;br&gt;Yes, the TLK is fully integrated with TSE and has some new features like hardware shadowing (including self-shadowing), dynamic lighting with specular and normal mapping support, and HDR/DRL solutions.  John can fill you in on the complete rundown of all the cool new features.&lt;br&gt;&lt;br&gt;&lt;b&gt;- What's going on with OpenGL and fixed function support?&lt;/b&gt;&lt;br&gt;OpenGL will not be supported in the 1.0 release, but we will have OpenGL and fixed function support further down the road.&lt;br&gt;&lt;br&gt;&lt;b&gt;- What's the status on Atlas?&lt;/b&gt;&lt;br&gt;Atlas is near to becoming &amp;quot;runtime feature complete&amp;quot; that means you'll have everything you need to run Atlas and import terrain from tools like l3dt.  Full editor support will not be in for Atlas however in the 1.0 release.  Please note that legacy (TGE) terrain runs just fine in TSE, incuding all the editing options.  I believe it outperforms TGE's terrain as well, but I haven't actually done metrics to prove it.&lt;br&gt;&lt;br&gt;&lt;b&gt;- What's the deal with TSE/Torque X?&lt;/b&gt;&lt;br&gt;They are completely separate products with different feature sets.  We'll be announcing more information about Torque X when it's closer to release.  Torque X is completely C# managed code however, so if you are looking for a C++ solution with shaders, TSE is the only way to go.  And of course, you can still go to the 360 with the TSE path with TSE 360.&lt;br&gt;&lt;br&gt;&lt;b&gt;- Will TSE be standalone when final?&lt;/b&gt;&lt;br&gt;Yes, TSE will be its own product, you won't need to purchase TGE in order to buy TSE.  Yes, the price will go up.&lt;br&gt;&lt;br&gt;&lt;b&gt;- If I buy Early Adopter, will I have to pay extra for updates?&lt;/b&gt;&lt;br&gt;If you buy the Early Adopter version of TSE now, you will not have to pay anything for the full 1.0 update or bugs fixes from then on.&lt;br&gt;&lt;br&gt;&lt;b&gt;- Are we going to see some new demos we can download?&lt;/b&gt;&lt;br&gt;Yes, although when is a bit uncertain.  We should be showing some of the new stuff at PAX coming up next weekend though, so stop on by to check them out.&lt;br&gt;&lt;br&gt;&lt;b&gt;- Will TSE ship with the Legions demo?&lt;/b&gt;&lt;br&gt;Probably not anytime soon no.&lt;br&gt;&lt;br&gt;&lt;b&gt;- What's going on with that forest picture on the DSOTD?&lt;/b&gt;&lt;br&gt;We might have an exciting announcement regarding that in the near future ;)</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/5030/10647">
		<dc:format>text/html</dc:format>
		<dc:date>2006-06-07T00:43:46+00:00</dc:date>
		<dc:creator>Brian Ramage</dc:creator>
		<title>TSE optimizations</title>
		<link>http://www.garagegames.com/blogs/5030/10647</link>
		<description>Hey everyone, just wanted to give a little bit of an update on the optimizations I've been working on for TSE.  The batching system is working out very well as you can see in the fps of the screenshots I've posted.  That's 10 space orcs in one shot running around 140 fps on a 3.4ghz P4 with an x800.&lt;br&gt;&lt;br&gt;The batching essentially will group up draw calls into one manager, stuffing them into bins like mesh, interior, translucent, glow, etc.  Each bin is then sorted by Material, and then at draw time, it will loop through each Material and send the appropriate draw and shader data to the card.  It greatly reduces the number of render calls to the GPU and speeds things up quite a bit.&lt;br&gt;&lt;br&gt;Since you can control the order that the bins are drawn and you can add your own fairly easily, a lot of the sorting issues in TSE should be eliminated, and also customized to the needs of your game.&lt;br&gt;&lt;br&gt;While working on the new batching system I also found and resolved more issues related to the skinning system in TSE.  Dynamic vertex buffers have now been fully implemented (as opposed to the existing 'volatile' vertex buffers), so transferring vertex data up has been further optimized.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://public.garagegames.com/brianr/planPics/06_06_2006/screen01.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;In this lower shot, you can see the new &amp;quot;Warning&amp;quot; material that I've created to let the user know that there is an unmapped material in the scene.  This should make it easier to detect than the previous &amp;quot;drop to fixed function with no lighting&amp;quot; system.  It works for most of the major geometry - interiors and meshes.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://public.garagegames.com/brianr/planPics/06_06_2006/screen02.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;This update should go live pretty soon, I'm just cleaning up some minor remaining issues and waiting for some Atlas changes to be complete before it's released.  I'm also hoping to kill some bugs over the next few days that the community has brought to my attention.&lt;br&gt;&lt;br&gt;Almost forgot to mention - the batching has been tested on Geforce cards and seems to have substantially increased performance.  This scene runs about 120fps on Matt Fairfax's laptop with a Geforce 6800 in it.  I put a 6600 in my machine and it runs about 40ps - not spectacular, but I'm not sure even one Orc ran at that speed previously.&lt;br&gt;&lt;br&gt;I also want to mention the great work Joe Maruschak did on optimizing the space orc and his gun to use just two materials.  This reduced the number of separate meshes in the orc from 27 down to 16 and almost doubled the performance when combined with the batching.  Thanks Joe!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/5030/8346">
		<dc:format>text/html</dc:format>
		<dc:date>2005-07-26T22:00:26+00:00</dc:date>
		<dc:creator>Brian Ramage</dc:creator>
		<title>Tuesday Jul 26 22:00</title>
		<link>http://www.garagegames.com/blogs/5030/8346</link>
		<description>Using quasi-procedural noise to break up texture tiling&lt;br /&gt;&lt;br /&gt;Alex came to me the other day wondering if pixel shaders could be used to break up textures that are tiled a lot over large surfaces.  After he explained exactly what he was looking for, I was pretty sure it could be done.  Turns out, it was a piece of cake.  I was able to whip up the shader in about 10 minutes yesterday on my first try (not even a compile error!).&lt;br&gt;&lt;br&gt;The shader just uses the texture coordinates of the vertices to index into a simple noisy texture I made in photoshop.  Here are the before and after pics:&lt;br&gt;&lt;br&gt;&lt;img src='http://public.garagegames.com/brianr/planPics/07_26_2005/noiseTile01.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://public.garagegames.com/brianr/planPics/07_26_2005/noiseTile02.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;And a blown up sample of the noise texture (the real one is 64x64 with each pixel being a different shade).&lt;br&gt;&lt;br&gt;&lt;img src='http://public.garagegames.com/brianr/planPics/07_26_2005/noiseSample.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Here's what the shader looks like (shader model 2.0):&lt;br&gt;&lt;br&gt;VERTEX:&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;//-----------------------------------------------------------------------------&lt;br&gt;// Structures                                                                  &lt;br&gt;//-----------------------------------------------------------------------------&lt;br&gt;struct VertData&lt;br&gt;{&lt;br&gt;   float2 texCoord        : TEXCOORD0;&lt;br&gt;   float2 lmCoord         : TEXCOORD1;&lt;br&gt;   float3 T               : TEXCOORD2;&lt;br&gt;   float3 B               : TEXCOORD3;&lt;br&gt;   float3 N               : TEXCOORD4;&lt;br&gt;   float3 normal          : NORMAL;&lt;br&gt;   float4 position        : POSITION;&lt;br&gt;};&lt;br&gt;&lt;br&gt;&lt;br&gt;struct ConnectData&lt;br&gt;{&lt;br&gt;   float4 hpos            : POSITION;&lt;br&gt;   float2 outTexCoord     : TEXCOORD0;&lt;br&gt;   float3 pos             : TEXCOORD2;&lt;br&gt;   float3 outEyePos       : TEXCOORD3;&lt;br&gt;   float4 outLightVec     : TEXCOORD4;&lt;br&gt;};&lt;br&gt;&lt;br&gt;&lt;br&gt;//-----------------------------------------------------------------------------&lt;br&gt;// Main                                                                        &lt;br&gt;//-----------------------------------------------------------------------------&lt;br&gt;ConnectData main( VertData IN,&lt;br&gt;                  uniform float4x4 modelview       : register(C0),&lt;br&gt;                  uniform float3   inLightVec      : register(C24),&lt;br&gt;                  uniform float3   eyePos          : register(C20),&lt;br&gt;                  uniform float3   fogData         : register(C22),&lt;br&gt;                  uniform float4x4 objTrans        : register(C12)&lt;br&gt;)&lt;br&gt;{&lt;br&gt;   ConnectData OUT;&lt;br&gt;&lt;br&gt;   OUT.hpos = mul(modelview, IN.position);&lt;br&gt;   OUT.outTexCoord = IN.texCoord;&lt;br&gt;&lt;br&gt;   float3x3 objToTangentSpace;&lt;br&gt;   objToTangentSpace[0] = IN.T;&lt;br&gt;   objToTangentSpace[1] = IN.B;&lt;br&gt;   objToTangentSpace[2] = IN.N;&lt;br&gt;&lt;br&gt;   OUT.outLightVec.xyz = -inLightVec;&lt;br&gt;   OUT.outLightVec.xyz = mul(objToTangentSpace, OUT.outLightVec);&lt;br&gt;   OUT.pos = mul(objToTangentSpace, IN.position.xyz / 100.0);;&lt;br&gt;   OUT.outEyePos.xyz = mul(objToTangentSpace, eyePos.xyz / 100.0);;&lt;br&gt;   OUT.outLightVec.w = step( 0.0, dot( -inLightVec, IN.normal ) );&lt;br&gt;&lt;br&gt;   return OUT;&lt;br&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;PIXEL:&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;//-----------------------------------------------------------------------------&lt;br&gt;// Structures                                                                  &lt;br&gt;//-----------------------------------------------------------------------------&lt;br&gt;struct ConnectData&lt;br&gt;{&lt;br&gt;   float2 texCoord        : TEXCOORD0;&lt;br&gt;   float3 normal          : TEXCOORD1;&lt;br&gt;   float3 pixPos          : TEXCOORD2;&lt;br&gt;   float3 eyePos          : TEXCOORD3;&lt;br&gt;   float4 lightVec        : TEXCOORD4;&lt;br&gt;};&lt;br&gt;&lt;br&gt;&lt;br&gt;struct Fragout&lt;br&gt;{&lt;br&gt;   float4 col : COLOR0;&lt;br&gt;};&lt;br&gt;&lt;br&gt;&lt;br&gt;//-----------------------------------------------------------------------------&lt;br&gt;// Main                                                                        &lt;br&gt;//-----------------------------------------------------------------------------&lt;br&gt;Fragout main( ConnectData IN,&lt;br&gt;              uniform float4    ambient         : register(C2),&lt;br&gt;              uniform sampler2D diffuseMap      : register(S0),&lt;br&gt;              uniform sampler2D bumpMap         : register(S1),&lt;br&gt;              uniform sampler2D noiseMap        : register(S2),&lt;br&gt;              uniform float4    specularColor   : register(C0),&lt;br&gt;              uniform float     specularPower   : register(C1)&lt;br&gt;)&lt;br&gt;{&lt;br&gt;   Fragout OUT;&lt;br&gt;&lt;br&gt;   float4 bumpNormal = tex2D(bumpMap, IN.texCoord);&lt;br&gt;   float4 bumpDot = saturate( dot(bumpNormal.xyz * 2.0 - 1.0, IN.lightVec.xyz) );&lt;br&gt;&lt;br&gt;   float4 diffuse = tex2D(diffuseMap, IN.texCoord);&lt;br&gt;&lt;br&gt;   float2 noiseIndex;&lt;br&gt;   noiseIndex.x = floor( IN.texCoord.x ) / 63.0 + 0.5/64.0;  // uses 64x64 noise texture&lt;br&gt;   noiseIndex.y = floor( IN.texCoord.y ) / 63.0 + 0.5/64.0;&lt;br&gt;   float4 noiseColor = tex2D( noiseMap, noiseIndex ) * 1.0 - 0.5;   &lt;br&gt;   &lt;br&gt;   OUT.col = diffuse + noiseColor * diffuse.a;&lt;br&gt;   OUT.col *= bumpDot + ambient;&lt;br&gt;&lt;br&gt;   float3 eyeVec = normalize(IN.eyePos - IN.pixPos);&lt;br&gt;   float3 halfAng = normalize(eyeVec + IN.lightVec.xyz);&lt;br&gt;   float specular = saturate( dot(bumpNormal.xyz * 2.0 - 1.0, halfAng) ) * IN.lightVec.w;&lt;br&gt;   specular = pow(specular, specularPower);&lt;br&gt;   OUT.col += specularColor * specular * diffuse.a;&lt;br&gt;   return OUT;&lt;br&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;This technique could be used in many places where you want to break up tiling like on brick walls, floors, etc.  The artist has full control over how subtle the effect is by controlling the noise texture.  If you really want to get funky, you could draw a picture in the noise texture and it would show up as a mosiac pattern rather than noise.  Thanks to Alex for thinking this stuff up!&lt;br&gt;&lt;br&gt;I may well make this a feature in TSE's procedural shaders.</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/5030/8121">
		<dc:format>text/html</dc:format>
		<dc:date>2005-06-24T01:22:57+00:00</dc:date>
		<dc:creator>Brian Ramage</dc:creator>
		<title>Friday Jun 24 1:22</title>
		<link>http://www.garagegames.com/blogs/5030/8121</link>
		<description>TSE Milestone 3&lt;br /&gt;&lt;br /&gt;&lt;img src='http://public.garagegames.com/brianr/planPics/06_23_2005/MS3.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;TSE milestone 2 is complete, and milestone 3 is well underway, so I thought &lt;br&gt;it would be a good time to share my thoughts on where we're going with it.&lt;br&gt;The main goal of MS3 is to tighten up the engine for more general consumption.&lt;br&gt;We want to fix some of the more annoying bugs and streamline some areas so&lt;br&gt;working with the materials is easier.  We'd also like to increase performance,&lt;br&gt;particularly on nVIDIA FX cards.&lt;br&gt;&lt;br&gt;Here are some of the major improvements planned:&lt;br&gt;   - Get FSAA fully working&lt;br&gt;   - .DDS support and more DXT compression options&lt;br&gt;   - Fix skinning code with interpolated tangent space vectors&lt;br&gt;   - Get an Atlas terrain editor working&lt;br&gt;   - Add a texture / material flush so artists don't need to reload TSE to tweak materials&lt;br&gt;   - Pre-load materials/shaders/other resources on level load&lt;br&gt;   - Better .dif warnings if they are incorrect version&lt;br&gt;   - Material enhancements&lt;br&gt;      - Alpha test&lt;br&gt;      - Parallax mapping&lt;br&gt;      - More blend operations for cubemaps&lt;br&gt;      - More procedural shader options&lt;br&gt;      - Better control over specular colors&lt;br&gt;      - ... much more&lt;br&gt;&lt;br&gt;In addition, I've got an update of Materials coming up next week that has:&lt;br&gt;   - client side Materials / ShaderData / CubemapData&lt;br&gt;   - auto loading of materials.cs from subdirectories - so they can live with the data&lt;br&gt;   - got rid of addMaterialMapping() calls - the mapping is done in the Material itself now&lt;br&gt;   - full path names of textures are no longer needed&lt;br&gt;   &lt;br&gt;I'll explain these improvements in greater detail when the updates go live.&lt;br&gt;&lt;br&gt;Figuring a timeline for MS3 is tough at this point as we have a LOT going on behind the&lt;br&gt;scenes right now.  Josh should be releasing a &amp;quot;bounty&amp;quot; list for MS3 tasks that we'd pay&lt;br&gt;to get done, so we're hoping that can speed the development a bit.  We've also got the&lt;br&gt;possibility of GG co-founder Tim Gift making a guest star appearance for MS3.  He might&lt;br&gt;break out some goodies (OpenGL anyone?).</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/5030/7241">
		<dc:format>text/html</dc:format>
		<dc:date>2005-02-25T03:09:20+00:00</dc:date>
		<dc:creator>Brian Ramage</dc:creator>
		<title>Friday Feb 25 3:09</title>
		<link>http://www.garagegames.com/blogs/5030/7241</link>
		<description>Water almost ready for MS 2&lt;br /&gt;&lt;br /&gt;Been a while since I updated the old .plan.  The water is coming along pretty well.  I'm working on optimizing the speed and cleaning up the code and interface before release.  We should have a good demo for GDC with Ben's new terrain.  Here's a screenshot of a test scene with some afwul programmer art:&lt;br&gt;&lt;br&gt;&lt;img src='http://public.garagegames.com/brianr/planPics/02_24_2005/screen01small.jpg'  alt=&quot;&quot;&gt;</description>
	</item>
</rdf:RDF>
