<?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/53238/">
		<title>Blog for Steven Peterson 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-13T01:15:36+00:00</dc:date>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/53238/11970"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/53238/10542"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/53238/10204"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/53238/9289"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/53238/9072"/>
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.garagegames.com/blogs/53238/11970">
		<dc:format>text/html</dc:format>
		<dc:date>2006-12-28T18:32:42+00:00</dc:date>
		<dc:creator>Steven Peterson</dc:creator>
		<title>2006 Year in Review!</title>
		<link>http://www.garagegames.com/blogs/53238/11970</link>
		<description>Time flies when your having fun; or are just that busy...&lt;br&gt;&lt;br&gt;So here's what I did in 2006:&lt;br&gt;&lt;br&gt;January 1st - March 31st(ish):&lt;br&gt;- Frame out the backend of EnviroTorque 2.0. &lt;br&gt;- Build a rules-based dynamic weather engine.&lt;br&gt;&lt;br&gt;April 1st(ish) - June 15th: &lt;br&gt;- Began working on a new cloud-manager resource to completely replace the old cloud handler.&lt;br&gt;(And very nearly completed it...)&lt;br&gt;&lt;br&gt;June 15th - July 1st: &lt;br&gt;- Accepted a job offer through an old college connection&lt;br&gt;- Flew down to SC. to checkout said offer&lt;br&gt;- Began packing &lt;br&gt;&lt;br&gt;July1st - July 9th&lt;br&gt;- Moved (out of my parents house) from NJ, to the SC into my first real apt/condo!&lt;br&gt;&lt;br&gt;July 10th - December 22nd&lt;br&gt;- Began new job working anywhere from 40-60 hours a week.&lt;br&gt;- Bought a surfboard&lt;br&gt;- Bought a bowflex&lt;br&gt;- Made (some) new friends &lt;br&gt;- Determined my Adaptec-RAID card only does software RAID, and was the source of 5-crashes in 10 months...&lt;br&gt;&lt;br&gt;December 23rd - January 2nd&lt;br&gt;- Flew home for &amp;quot;Christmas Break&amp;quot;&lt;br&gt;&lt;br&gt;&lt;br&gt;---&lt;br&gt;&lt;br&gt;GG&lt;br&gt;So before June I was on GG nearly everyday. And then I very unceremoniously dropped off the face of the earth. Looking back, I know I let some people down and probably injured a few relationships. For that all I can say is I'm sorry - I guess I took on way more than I could handle at one time, and didn't want to admit it at the time...&lt;br&gt;&lt;br&gt;&lt;br&gt;New Job&lt;br&gt;So I got hired by [link=http://lcpaver.com]Lowcountry Paver[/link]. Their a small manufacturer of concrete pavers for driveways, walkways, and pool-deckds - conveniently located less than 30 miles from the beaches of Hilton Head Island, SC.&lt;br&gt;&lt;br&gt;They needed a (mostly) full time IT. guy to do things like overhaul their web-site, build a new hardware-infrastructure and network etc. Hopefully in 2007 we will move away from Quickbooks to some full-fledged tier-2 ERP/MRP system to manage all aspects of the business and production cycle.&lt;br&gt;&lt;br&gt;Since I was out of money, and this was the first-best full-time job offer, I took it and so far it has worked out pretty well. It's taken me quite a while to get settled, but then I've been living &amp;quot;on-the-go&amp;quot; for two or three years straight so I guess it takes time to get organized again. &lt;br&gt;&lt;br&gt;In 2007 I'm hoping to finish my Cloud resource and Enviro-Torque. It will probably come just-in-time to have to port it to the shader engine, but what-can-you-do...&lt;br&gt;&lt;br&gt;&lt;br&gt;Real Estate&lt;br&gt;As a final note - I'm looking at my first possible real-estate-investment deal. I found a new plantation in Myrtle Beach that's opening up and I might try buying a lot this month so I can resell it in a year or so. &lt;br&gt;&lt;br&gt;&lt;br&gt;The End&lt;br&gt;So that's my update - I hope everyone had a Merry Christmas and has a Happy New Year. I wish everyone all the best in 2007! Even if I'm not online, I think of you guys all the time.&lt;br&gt;&lt;br&gt;&lt;br&gt;Steven</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/53238/10542">
		<dc:format>text/html</dc:format>
		<dc:date>2006-05-24T17:26:34+00:00</dc:date>
		<dc:creator>Steven Peterson</dc:creator>
		<title>Enviro-Torque 2.0 Update: New Cloud-System Resource</title>
		<link>http://www.garagegames.com/blogs/53238/10542</link>
		<description>&lt;i&gt;&lt;b&gt;Enviro-Torque 2.0 Update: New Cloud-System Resource&lt;/b&gt;&lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Enviro-Torque 2.0&lt;/b&gt; is progressing along slow and steady. The biggest challenge so far has been fixing the way Torque handles cloud-layers. To gain the functionality I want, I've had to entirely redesign this system, &lt;i&gt;and am hoping to release it as a free-resource &lt;b&gt;soon!&lt;/b&gt;&lt;/i&gt; &lt;br&gt;&lt;br&gt;This is a 'brief' overview of how the new system works, the problems solved, and where I still need some help. Feedback is encouraged!&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://stevengpeterson.com/gallery/d/25-1/dynamicSky.jpg'  align=right alt=&quot;&quot;&gt;&lt;br&gt;&lt;b&gt;&lt;i&gt;New Torque Cloud-System Resource:&lt;/i&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;1. Design Goals and Intended Features:&lt;/b&gt;&lt;br&gt;&lt;br&gt; - Control individual cloud layers (on/off).&lt;br&gt; - Ability to fade layer alpha to any value between 0 and 1.&lt;br&gt; - Support for arbitrary number of cloud layers.&lt;br&gt; - Allow for easy addition of new procedural effects for generating cloud layers.&lt;br&gt; - Allow for different types of textured and procedural cloud layers to be used simultaneously.&lt;br&gt; - Specifically include:&lt;br&gt; - - Basic textured layers.&lt;br&gt; - - Rob Rendell's Perlin based cloud generator.&lt;br&gt; - - Joseph Jahn's fractal cloud generator.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;2. Why the old Cloud-System didn't work:&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;2.1 The Sky Class:&lt;/i&gt;&lt;br&gt;&lt;br&gt;A look at the old code shows that the &lt;b&gt;Sky&lt;/b&gt; class's main purpose is to draw and manage the skybox including effects like visible distance, fog-bands and sky-textures. In my view this is the &lt;i&gt;only&lt;/i&gt; thing it should be doing. &lt;br&gt;&lt;br&gt;In reality, it also manages wind, volumetric fog and cloud layers just to name a few. While these effects are tightly integrated in their current implementation, most of them should be their own classes with low or no coupling between them.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;2.2 The Cloud Class:&lt;/i&gt;&lt;br&gt;&lt;br&gt;The &lt;b&gt;Cloud&lt;/b&gt; class, for reasons unknown, can also be found in the sky.h/cc files. Even in the old system each cloud layer was it's own object-instance.  Regardless, many properties, for example, if the layer was on or off, were properties of the Sky class &lt;i&gt;not&lt;/i&gt; the individual cloud-layers. &lt;br&gt;&lt;br&gt;Making the fundamental design changes I required just did not seem possible, so I looked for other avenues. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;3. A New Approach:&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;3.1 A Clean Slate and fxCloudLayer:&lt;/i&gt;&lt;br&gt;&lt;br&gt;First I stripped all the cloud stuff out of sky.h/cc. I momentarily had the old system working with the Cloud class located in cloud.h/cc to prove it worked; then I dumped it.  From now on my work would be in &lt;b&gt;/engine/game/clouds/&lt;/b&gt;. &lt;br&gt;&lt;br&gt;Second I got in touch with Rob Rendell who had started an &lt;b&gt;fxCloudLayer&lt;/b&gt; class. The idea was that you would add cloud-layers similar to fxSunLight objects. fxCloudLayer was essentially a single basic cloud-layer with an optional Perlin-fractal generator for random cloud creation. &lt;br&gt;&lt;br&gt;One of my design-goals was &lt;i&gt;easy addition of new procedural effects for generating cloud layers&lt;/i&gt;. So, dropping the 'fx' and taking out the procedural-code, I created an &lt;i&gt;abstract base class:&lt;/i&gt; &lt;b&gt;CloudLayer&lt;/b&gt;. Through inheritance I quickly came up with concrete classes:&lt;br&gt;- BasicCloudLayer - texture from image.&lt;br&gt;- RendellCloudLayer - Rendell's Perlin implementation.&lt;br&gt;- JahnCloudLayer - Jahn's plasma-fractal implementation.&lt;br&gt;&lt;br&gt;&lt;br&gt;So far everything worked great. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;3.2 UpdateSpeed() - A Bug Fix:&lt;/i&gt;&lt;br&gt;&lt;br&gt;In current versions of TGE cloud-layers have a 'cloud-speed' which gets multiplied by the wind-velocity to adjust the rate each cloud texture scrolls across the sky. Unfortunately it only updates itself when you hit 'Apply'. &lt;br&gt;&lt;br&gt;I added an &lt;b&gt;updateSpeed()&lt;/b&gt; function that gets called from CloudLayer's &lt;b&gt;renderObject()&lt;/b&gt; which checks the wind-velocity every frame. It would probably be more efficient to have the wind-velocity  notify the cloud-layers when there was a change, but that's another day.&lt;br&gt;&lt;br&gt;Note: This &lt;b&gt;getWindVelocity()&lt;/b&gt; call is the &lt;i&gt;only way in which my system is coupled to the Sky class!&lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;3.3 UpdateAlpha() A New Feature:&lt;/i&gt;&lt;br&gt;&lt;br&gt;To date I don't understand how this was done in the past. &lt;br&gt;&lt;br&gt;I rewrote it so that: each layer has it's own &lt;b&gt;mTargetAlpha&lt;/b&gt; and &lt;b&gt;mTargetTime&lt;/b&gt;. renderObject() also calls &lt;b&gt;updateAlpha()&lt;/b&gt;. Here, I get the difference between the layer's current alpha-level and mTargetAlpha. Using that info, the  last 'change in time', the time remaining and a touch of calculus, I interpolate the current alpha level towards the target. The final equation can be seen below:&lt;br&gt;&lt;br&gt;The advantage to this approach is that on any given frame all I care about is:&lt;br&gt;- how far do I have to go (difference in alpha)&lt;br&gt;- how long do i have to get there (difference in time)&lt;br&gt;- ( and what was the last change in time if-applicable )&lt;br&gt;&lt;br&gt;I &lt;i&gt;don't&lt;/i&gt; care if the clouds are fadeing in/out, so I can change mTargetAlpha and/or mTargetTime at any point, even mid-fade - &lt;i&gt;no problem!&lt;/i&gt; mTargetAlpha can also be any alpha level, not just 0 or 1. And finally - &lt;i&gt;each layer does this independently&lt;/i&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;stormAlpha = currentStormAlpha + ( alphaToGo / ( ( timeToGo + dT ) / dT ) );&lt;br&gt;&lt;br&gt;&lt;i&gt;where:&lt;/i&gt;&lt;br&gt;stormAlpha = new layer alpha&lt;br&gt;CurrentStormAlpha = current layer alpha&lt;br&gt;dT (delta-Time) = change in time&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Fig. 3. A quick UML diagram.&lt;/i&gt;&lt;br&gt;&lt;img src='http://stevengpeterson.com/gallery/d/37-2/CloudUML001.jpg'  align=right alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;4. CloudManager:&lt;/b&gt;&lt;br&gt;&lt;br&gt;I wanted a common interface from which you could control all the cloud-layers in-simiulation, wheather using the console, script or C++ code. The answer was singleton-simObject &lt;b&gt;CloudManager&lt;/b&gt;. &lt;br&gt;&lt;br&gt;As part of their onAdd function, inherrited from &lt;b&gt;CloudLayer&lt;/b&gt;, all cloud layers 'register' with CloudManager by calling &lt;b&gt;CloudManager::registerLayer( this )&lt;/b&gt;. The handle then gets stored in a vector. Now we have reliable handles to all our cloud-layers in one place. &lt;br&gt;&lt;br&gt;&lt;i&gt;Right now CloudManager only provides a few simple function calls:&lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;   void layerToggle( U32 layer, SimTime time );       /// toggles layer on/off&lt;br&gt;   void layerToggleAll( SimTime time );              /// toggles all cloud layers&lt;br&gt;   void layerSet( U32 layer, F32 alpha, SimTime time );&lt;br&gt;   void layerSetAll( F32 alpha, SimTime time );&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Up to this point everything (with a single exception) works great! With just a touch of inherritance, the solution is elegant, organized, and flexible and I have hit all my design goals (save one). &lt;i&gt;This is where the whole thing gets ugly and complicated and if you see a better way &lt;b&gt;PLEASE LET ME KNOW!!!&lt;/b&gt;&lt;/i&gt;. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;5. The Last Wall of the Castle: Multi-Layered Procedural Effects&lt;/b&gt;&lt;br&gt;&lt;br&gt;Untill this point &lt;i&gt;JahnCloudLayer&lt;/i&gt; works functionally, as an object, but not visually. Written for the old cloud-system it is not a single cloud-layer, but a  composit of three cloud layers to create a single visual effect.&lt;br&gt;&lt;br&gt;I tried using additive-blending to merge the 3-layers into one but for some reason, it isn't even close to the same. There may be a different way to 'blend', 'merge', or 'layer' three bitmaps into one but this is well beyond my realm of knowlege. A closer examination reveils that even if blending worked the three layers don't actually tile! This is normally hidden when the three layers are moving at different rates in real-time.&lt;br&gt;&lt;br&gt;How best to solve the problem?&lt;br&gt;&lt;br&gt;&lt;i&gt;Fig. 4. Jahn Fractal Clouds as it's &lt;b&gt;supposed&lt;/b&gt; to look:&lt;/i&gt;&lt;br&gt;&lt;img src='http://stevengpeterson.com/gallery/d/19-2/screenshot_001-00001.png'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Fig. 5. Jahn Fractal Clouds as they look now with additive blending:&lt;/i&gt;&lt;br&gt;&lt;img src='http://stevengpeterson.com/gallery/d/13-2/brokenFractalSky.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;6. SubLayers&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;6.1 Overview&lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Fig. 6. Another quick UML diagram&lt;/i&gt;&lt;br&gt;&lt;img src='http://stevengpeterson.com/gallery/d/23-1/CloudUML002.jpg'  align=right alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;The next approach I tried was for each CloudLayer to be a composite of &lt;i&gt;one or more sublayers&lt;/i&gt;. So I created an abstract class &lt;b&gt;SubLayer&lt;/b&gt; which takes on most of the former reponsibility of CloudLayer. CloudLayer gets an array of SubLayers to control. &lt;br&gt;&lt;br&gt;At this point CloudLayer is still the (scene)object that gets added to your *.mis. However it's the SubLayer(s) that are the sceneobjects that get rendered. CloudLayer initially sets up the texture in &lt;b&gt;setTexture()&lt;/b&gt; and then calls &lt;b&gt;setTexture( textureHandle )&lt;/b&gt; on each of the subObjects. CloudLayer is also still the one registering with CloudManager. It is mostly acting as an interface class.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;6.2 Problems with this Approach&lt;/i&gt;&lt;br&gt;&lt;br&gt;In execution, this approach is only a handful of extra lines. For the programmer, the complexity doubles with the addition of sublayers. Because there is  now a &lt;b&gt;SubLayer&lt;/b&gt;, &lt;b&gt;BasicSubLayer&lt;/b&gt;, &lt;b&gt;JahnSubLayer&lt;/b&gt;, etc. in addition to &lt;b&gt;CloudLayer&lt;/b&gt;, &lt;b&gt;BasicCloudLayer&lt;/b&gt;, &lt;b&gt;JahnCloudLayer&lt;/b&gt;, etc. it is litterly twice as many files. &lt;i&gt;It seems my solution went from 'elegant' to 'explosion in a paper-mill' overnight.&lt;/i&gt;&lt;br&gt;&lt;br&gt;So far I haven't gotten this working yet. Today's problem is that while CloudLayers are the objects added to the *.mis and thereby added to the simulation correctly; SubLayers are instanciated from C++ and so I have to register them myself. Based on the &lt;i&gt;'Adding already added object'&lt;/i&gt; errors, I gather I'm doing this wrong.&lt;br&gt;&lt;br&gt;I'm calling &lt;b&gt;registerObject()&lt;/b&gt; in the SubLayer child-objects' constructors. That seems to ensure &lt;b&gt;onAdd()&lt;/b&gt; (inherited from SubLayer) gets called. I'm still not sure how this is going wrong but it is...&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;7. Final Conclusion:&lt;/b&gt;&lt;br&gt;&lt;br&gt;I think this is one of Torque's systems that was in dire need of re-engineering. It will definitely be a huge milestone in the completion of &lt;b&gt;EnviroTorque 2.0&lt;/b&gt; and I hope it will prove a huge leap forward for the Torque engine as a whole. &lt;br&gt;&lt;br&gt;I think the idea of &lt;b&gt;SubLayers&lt;/b&gt; is a huge mis-step in an otherwise solid design. However, getting the &lt;i&gt;Jahn Fractal Clouds&lt;/i&gt; properly integrated to work alongside static-textured cloud layers is a key feature. &lt;i&gt;At this point I'm open to ideas...&lt;/i&gt;&lt;br&gt;&lt;br&gt;Last Idea:&lt;br&gt;I suppose it would be possible for just the &lt;b&gt;JahnCloudLayer&lt;/b&gt; to maintain an array of three texture-handles and I could probably adjust properties like cloud-speed for each of them. Then I could just layer the three layers together into one texture in &lt;b&gt;RenderObject()&lt;/b&gt;. This last step I'm not sure how to do though.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;8. Help Wanted:&lt;/b&gt;&lt;br&gt;&lt;br&gt;Torque Networking is something I just don't understand yet. I'm looking for a Torque-Veteran who will be able to properly finish off the networking aspect of this resource. Essentially netmasks, packUpdate(), and unPackUpdate() functions. &lt;br&gt;&lt;br&gt;I'm also looking for a small handful of Torque-Veterans to beta-test it before I make it a final resource. Testing will happen as soon as I have a release-candidate to email out.&lt;br&gt;&lt;br&gt;If your interested in helping please find the email-address in my profile or the contact box on my &lt;a href='http://www.stevengpeterson.com' target=_blank&gt;website&lt;/a&gt; to let me know!&lt;br&gt;&lt;br&gt;&lt;i&gt;And lastly - Thanks for reading!&lt;/i&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/53238/10204">
		<dc:format>text/html</dc:format>
		<dc:date>2006-04-06T20:13:26+00:00</dc:date>
		<dc:creator>Steven Peterson</dc:creator>
		<title>Student to Professional in (under) $1000, or &amp;quot;The Right Tools for the Job&amp;quot;</title>
		<link>http://www.garagegames.com/blogs/53238/10204</link>
		<description>&lt;b&gt;The Transistion&lt;/b&gt;&lt;br&gt;In the last 3 months, I've realized that making the jump from &amp;quot;Student&amp;quot; to &amp;quot;Professional&amp;quot; is quite a transition. The hardest part has probably been fixing that sleep-schedule and getting my body onto a 9-5 workday... Aside from less tangible things like time-management, and work flow changes,  I've had to completely overhaul my toolset. &lt;br&gt;&lt;br&gt;Now this may be something one doesn't really think about much as a programmer. All you need is a computer with a text editor, right? Wrong!.. &lt;br&gt;&lt;br&gt;Suffice it to say with my outdated hardware I couldn't even open the TSE demo's and I was afraid my 5-year old HDD's would die at any moment. On the software side, the commercial compiler that I didn't actually own, is no longer supported. &lt;b&gt;This did not make for an efficient workflow&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;New Hardware&lt;/b&gt;&lt;br&gt;I'll try not to bore you with the details, but I've spent most of the time since everyone else left for GDC replacing this stuff. I had bought a high-end Pentium-IV several years ago, and had slotted in my own video card and HDDs so those were the main bottle necks. Here's the new hardware list:&lt;br&gt;&lt;br&gt;&lt;b&gt;Hardware:&lt;/b&gt;&lt;br&gt;2x 250gig Seagate SATA-150 HDD's&lt;br&gt;Adaptec 2-port SATA RAID controller PCI-card&lt;br&gt;2x 256mb DDR 400 RAM&lt;br&gt;eVGA - nVidia-7800GS &lt;br&gt;Netgear FVS318 Network Switch and VPN Firewall Router&lt;br&gt;&lt;br&gt;The new harddrives are arranged in RAID-1 for redundancy (and improved read-times), which gives me peace-of-mind at night, if nothing else.. My RAM is doubled to 1-gig now. The 10/100 router will replace a hand-me-down base-10 switch. &lt;br&gt;&lt;br&gt;The nVidia-7800 is the best AGP card available, and has made &lt;i&gt;such a difference!&lt;/i&gt; As the back-ported &amp;quot;base-line model&amp;quot; the price is a cool $285 now. The card weighs in somewhere around 5 pounds, so it feels like your getting your money's worth too! ;-)&lt;br&gt;&lt;br&gt;Forum Thread: &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=41340'&gt;What video card should I buy&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Software:&lt;/b&gt;&lt;br&gt;TSE&lt;br&gt;Half-Life 2&lt;br&gt;&lt;br&gt;I immediately went out and bought TSE. Haven't gotten to far into it yet but now I can browse my very own shader engine, at my leisure. I hear a new release is &amp;quot;eminent&amp;quot; so I'm going to wait for that probably. &lt;br&gt;&lt;br&gt;Next I bought &amp;quot;Half-Life 2  Game of the Year Edition&amp;quot;. This is probably the best-value I've ever gotten for a game. The box includes the original Half-life(that I never played) ported to the new engine, &lt;i&gt;and&lt;/i&gt; a full edition of Counter-Strike SOURCE. All that aside it includes the &lt;b&gt;SOURCE-sdk&lt;/b&gt; so I have &lt;i&gt;another&lt;/i&gt; game engine to play with when I get to it. &lt;br&gt;&lt;br&gt;Free-Software:&lt;br&gt;Microsoft Visual C++ (v.8.0 / 2005) Express Edition&lt;br&gt;Subversion&lt;br&gt;&lt;br&gt;&lt;b&gt;MSVC-EE&lt;/b&gt;&lt;br&gt;Well neither TSE nor SOURCE-sdk support older compilers. So I downloaded the newer MSVC-EE. On first-glance I actually like it better than MS-VC6 because it's stripped down and doesn't seem to get in the way as much. I haven't gotten too far into it yet, and it takes some hacking to make either engine &lt;b&gt;forwards compatible&lt;/b&gt; to the 2005 compiler. If all goes well, I will probably buy Visual-Studio Professional 2005 so I have all the &amp;quot;right tools&amp;quot;. It would be the first Microsoft product I've bought since Office-2000.&lt;br&gt;&lt;br&gt;Forum Thread: &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=41815'&gt;What Compiler should I buy&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Subversion&lt;/b&gt;&lt;br&gt;By now I have about 20 zipped and dated copies of different TGE-sdk's and no version control. Turns out my host ( &lt;a href='http://www.dreamhost.com/rewards.cgi?ravenslay3r' target=_blank&gt;Dreamhost&lt;/a&gt; already has Subversion installed. I've spent quite a bit of time figuring out how I can import all my different TGE work into a single TGE-repository. I think I've finally gotten it down but not without a &lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=42093'&gt;fight&lt;/a&gt;. &lt;br&gt;&lt;br&gt;&lt;i&gt;SO&lt;/i&gt; since before GDC I've gotten very little development on Enviro-Torque done. Now, however, with faster (and redundant) HDD's, off-site version-control on a professionally managed server, a 100mb/s connection, forwards-looking compilers and SDK's, and the 'fastest video-card in the east' I'm expecting development to leap forward hardware-failure free!!! (knocks on wood..)&lt;br&gt;&lt;br&gt;Total Cost: approx: $800.00 &lt;br&gt;&lt;br&gt;&lt;br&gt;Thanks for reading,&lt;br&gt;Steven&lt;br&gt;&lt;a href='http://www.stevengpeterson.com' target=_blank&gt;www.stevengpeterson.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;ps. &lt;br&gt;&lt;b&gt;Don't buy&lt;/b&gt; from &lt;b&gt;Monarch-Computers&lt;/b&gt;, they billed my account same-day but didn't ship the &amp;quot;in-stock&amp;quot; video card for a full week. Based on several calls to customer-service I think it's only a handful of guys running a somewhat fly-by-night operation.&lt;br&gt;&lt;br&gt;On the other hand  &lt;b&gt;Tigerdirect.com&lt;/b&gt; offered a &lt;b&gt;great buying experience&lt;/b&gt;!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/53238/9289">
		<dc:format>text/html</dc:format>
		<dc:date>2005-12-02T18:50:57+00:00</dc:date>
		<dc:creator>Steven Peterson</dc:creator>
		<title>Friday Dec 2 18:50</title>
		<link>http://www.garagegames.com/blogs/53238/9289</link>
		<description>&lt;b&gt;Specular Highlights of a Setting Sun&lt;/b&gt; - An updated look at where I am and where I'm going in the new year. And a snapshot of a new TGE-feature i'm working on.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;font size=1&gt;Quote:&lt;br&gt;&lt;hr height=1 noshade&gt; I have often and often in the course of this session, ... looked at that behind the President, without being able to tell whether it was rising or setting; but now at length I have the happiness to know that it is a rising and not a setting sun.&lt;br&gt;&lt;i&gt;Ben Franklin&lt;/i&gt;&lt;hr height=1 noshade&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://stevengpeterson.com/dbin/public/screenshots/320x240/collage001.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Well actually this sun is setting, however, as any ending is but the begining of somthing else it may-as-well reperesent both. For all of us I suppose the sun is setting on 2005, and rising on the next-gen of gameing. For me, personally, it is setting on college and rising on, well, life, I guess.&lt;br&gt;&lt;br&gt;In torque-terms this means the end of Senior-Project (for now..) and the beginning of development on Enviro-Torque 2.0.&lt;br&gt;&lt;br&gt;&lt;b&gt;Senior Project - Legend of Zelda&lt;/b&gt;&lt;br&gt;For those who have been following, senior project is due on December 7th. So basically development is frozen in it's tracks, while I compile documentation, a demo release and graduate my butt outta here.&lt;br&gt;&lt;br&gt;Up till now I've pretty much prototyped the overworld, the inventory system, and part of the first level. I wanted to at least program some of the advanced charecter movements, but I haven't finished Blendering my 'Link' charecter model yet, so that won't be happening... :-(&lt;br&gt;&lt;br&gt;I did solve some neat problems with triggers, and got the joystick working etc. So my efforts weren't totally in vain. Mostly I just learned &lt;i&gt;alot!&lt;/i&gt;..&lt;br&gt;&lt;br&gt;For now i'm going to take a break from this one. When I'm done with my new environmental resource I'll port what I can slavage into TLK-1.4 and try again in my spare time...&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Enviro-Torque 2.0 - Pre-Production&lt;/b&gt;&lt;br&gt;In my original &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=8848'&gt;&lt;br&gt;Enviro-Torque Resource&lt;/a&gt; I refreshed the most recent Celestial day/night cycle and did a hack job of &amp;quot;integrating&amp;quot; it with a weather-resource to create more of a single &lt;i&gt;Dynamic Enviroment System&lt;/i&gt;.&lt;br&gt;&lt;br&gt;Now, I'm currently &lt;b&gt;designing&lt;/b&gt; &lt;i&gt;Enviro-Torque 2.0&lt;/i&gt;; a ground-up rewrite of my dynamic-enivroment system resource. It hopes to offer fully modular and scaleable managment of date/time, weather and celestial events. &lt;br&gt;&lt;br&gt;The specific-feature wishlist is fairly long but heading it are  multiple celestial bodies, and multiple (independently configurable) weather zones. &lt;br&gt;&lt;br&gt;One of the many new features of much &lt;i&gt;smaller&lt;/i&gt; scope is the sunset above. Didn't think I'd get to it, did ya? This is an early prototype of a new hook from the celesial sub-system into the water-block to scale the specular highlighting as a function of the position of the sun. &lt;br&gt;&lt;br&gt;In the final version I want to shade and scale the reflection using a weighted average of values from all celestial objects above the horizon, with those &lt;i&gt;closest&lt;/i&gt; to the horizon getting the heaviest weight. This is just one of the many new features coming, from me to you! &lt;br&gt;&lt;br&gt;&lt;b&gt;[The Design]&lt;/b&gt;&lt;br&gt;Currently the class diagram stands at 14 classes! Sounds like alot. The basic run down is a scheduler on top which opperates on a collection of task-objects. These include the Calender-Module, the Weather Manager, Celestial Manager, and any user defined tasks large or small. Similarly the Weather Manager opperates on a collection of weather-zone objects, while the Celestial-manager opperates on a collection of celestial objects.&lt;br&gt;&lt;br&gt;I intend to have several celestial-objects like &lt;i&gt;celSun.cc, celSatelite.cc, celStarfield.cc&lt;/i&gt; all derived from &lt;i&gt;celestialObject.cc&lt;/i&gt;. For celSun.cc, I really want to capture the essence of Sun.cc and fxSunLight.cc into one class so everything that goes together IS together, and I can have multiple instance of it. I don't know if this is possible though, depending on how tightly the rest of TGE is coupled to Sun.cc&lt;br&gt;&lt;br&gt;The last and most nebulous componet of the whole thing will be numerous hooks from  the celestial subsystem into various parts of the engine to create the actual day/night effects..... &lt;br&gt;&lt;b&gt;[/The Design]&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;i&gt;Enviro-Torque 2.0: Coming to a Garage Near You - Spring 2006&lt;/i&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;Well that was longer than I expected but thats where I am and where I'm going. Is that a plan or what? &lt;br&gt;&lt;br&gt;&lt;i&gt;Comments, Suggestions greatly appreciated!&lt;/i&gt;&lt;br&gt;&lt;br&gt;WebSite: &lt;a href='http://www.stevengpeterson.com' target=_blank&gt;www.stevengpeterson.com&lt;/a&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/53238/9072">
		<dc:format>text/html</dc:format>
		<dc:date>2005-10-30T09:15:06+00:00</dc:date>
		<dc:creator>Steven Peterson</dc:creator>
		<title>Sunday Oct 30 9:15</title>
		<link>http://www.garagegames.com/blogs/53238/9072</link>
		<description>I'm doing the senior-project thing, using Torque to make a game. Idea is to reimpliment the original &lt;i&gt;The Legend of Zelda&lt;/i&gt; in TGE-3D. &lt;b&gt;&lt;i&gt;Also looking for a job!&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;First Plan. &lt;br&gt;&lt;br&gt;Well lots going on. I'm working on my Senior Project, which is to, using Torque 1.3x, reimpliment the original &lt;i&gt; The Legend of Zelda&lt;/i&gt; for the NES in full 3d. So far it's going well but slow. Having to make models and textures and the learning curves for the art-pipeline is killing me. &lt;br&gt;&lt;br&gt;I also dumped a fair amount of time into a new homepage for me, my portfolio my project and my job hunt. Next on the list is a new resume. &lt;br&gt;&lt;br&gt;Make sure to check it out:&lt;br&gt;Homepage: &lt;a href='http://www.StevenGPeterson.com' target=_blank&gt;www.StevenGPeterson.com&lt;/a&gt; &lt;br&gt;Project Page: &lt;a href='http://www.StevenGPeterson.com/zelda' target=_blank&gt;www.StevenGPeterson.com/zelda&lt;/a&gt;&lt;br&gt;&lt;br&gt;Thats it for now.</description>
	</item>
</rdf:RDF>
