<?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/38050/">
		<title>Blog for Brian Richardson 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-07T09:33:51+00:00</dc:date>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/38050/14251"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/38050/13419"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/38050/9557"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/38050/9056"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/38050/8787"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/38050/8282"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/38050/7273"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/38050/6278"/>
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.garagegames.com/blogs/38050/14251">
		<dc:format>text/html</dc:format>
		<dc:date>2008-02-06T05:50:31+00:00</dc:date>
		<dc:creator>Brian Richardson</dc:creator>
		<title>A PIX debugging session</title>
		<link>http://www.garagegames.com/blogs/38050/14251</link>
		<description>Here's an article I've been meaning to write for a little while.  It's about PIX, the DirectX utility that ships with the DirectX SDK.  It's a great utility for tracking down rendering issues.  The point of this article isn't really to explain it in great detail, because it's easy to use.  It's mostly to expose people to the tool and encourage you to check it out!  This is a debugging session I did after tracking down a crash bug in dynamic cubemaps in the upcoming &lt;a href='http://garagegames.com/blogs/985/14177' target=_blank&gt;TGEA release&lt;/a&gt;.  The crash bug was pretty easy to find.  But when I fixed it, I got this result:&lt;br&gt;&lt;br&gt;&lt;a href='http://knowhere.net/gg/pix-article/images/pix000.png' target=_blank&gt;&lt;img src='http://knowhere.net/gg/pix-article/thumbnails/pix000.png'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;The &amp;quot;spider ball&amp;quot; in this image should be reflecting the tower it is next to, what gives?  Let's use PIX to figure it out.  First, to launch PIX, find it under DirectX Utilities under the DX SDK folder.  You'll get a blank screen.  Next, select File-&amp;gt;New Experiment.  Then for &amp;quot;Program Path&amp;quot;, enter the path to your executable.  Then, select the &amp;quot;A single-frame capture to Direct3D whenever F12 is pressed.&amp;quot; radio button.  Finally, hit the &amp;quot;Start Experiment&amp;quot;.  This will launch the app.  The next step is to get your app to render your bug.  In this example, I moved the camera so I was looking at the spider ball again and hit the F12 key.  The game will pause while PIX records all of the DirectX API calls and state into a log file.  Then quit.  You'll end up with a screen like this:&lt;br&gt;&lt;br&gt;&lt;a href='http://knowhere.net/gg/pix-article/images/pix001.png' target=_blank&gt;&lt;img src='http://knowhere.net/gg/pix-article/thumbnails/pix001.png'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;The treeview in the lower left pane is a list of all DirectX calls made during the frame that was recorded.  If you click on the render tab in the right pane PIX will show you the scene up to the API call selected in the left pane.  You can learn a lot about how an app renders by just hitting the &amp;quot;D down&amp;quot; button and watching the scene draw step by step in the render pane.&lt;br&gt;&lt;br&gt;&lt;a href='http://knowhere.net/gg/pix-article/images/pix002.png' target=_blank&gt;&lt;img src='http://knowhere.net/gg/pix-article/thumbnails/pix002.png'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;It's cool to have all of this information at our fingertips, but it'd be cooler if we could filter it down to what we're interested in.  By right-clicking on a pixel in the scene and selecting &amp;quot;Debug This Pixel&amp;quot; we can do just that.&lt;br&gt;&lt;br&gt;&lt;a href='http://knowhere.net/gg/pix-article/images/pix003.png' target=_blank&gt;&lt;img src='http://knowhere.net/gg/pix-article/thumbnails/pix003.png'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;This will replace the render view with a list of all of the API calls that changed the color of that pixel.  It's a life story of that pixel for that frame.  You can click on each of the links displayed to move the current selection in the treeview in the left hand pane to that API call.  &lt;br&gt;&lt;br&gt;&lt;a href='http://knowhere.net/gg/pix-article/images/pix004.png' target=_blank&gt;&lt;img src='http://knowhere.net/gg/pix-article/thumbnails/pix004.png'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;In this next image, I just picked the first pixel that was black, which should get me to the API call I feel is generating the wrong image.  It's event 2893.  &lt;br&gt;&lt;br&gt;&lt;a href='http://knowhere.net/gg/pix-article/images/pix005.png' target=_blank&gt;&lt;img src='http://knowhere.net/gg/pix-article/thumbnails/pix005.png'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;Now we can examine the state of D3D at the time of this call.  This is awesome stuff!  Rendering with DirectX (and OpenGL) basically involves setting up a large state machine.  The types of states are rendering states, textures, texture sampling states, shaders, shader constants, and the list goes on.  If any one of these states is incorrect, you'll get rendering bugs.  They can be hard to track down without a tool which allows one to examine the state of D3D.  Often we have to do ad-hoc state checks by dumping textures to disk or querying the device and logging the state info out to a file.  PIX provides the ability to check state without modifying your code.  Getting back to my dynamic cubemap problem, the first question we must answer is:  Is the dynamic cubemaptexture being rendered correctly?  If it is being generated correctly, are we actually using it during the draw call?  Let's find out!  Double click on the blue hexadecimal address to the left of the API call in the treeview in the left hand pane.  In this example, it's 0x056150D8.  This will change the right hand pane to a view of the device.  We can see a lot of state here.  I want to look at the textures, so I choose &amp;quot;Pixel State&amp;quot; from the tabs and scroll down to the &amp;quot;Sampler&amp;quot; section.  This section allows one to look at all of the current textures that are active during a draw call.  Many bugs are just due to the wrong texture being bound, or no texture is bound at all!  &lt;br&gt;&lt;br&gt;&lt;a href='http://knowhere.net/gg/pix-article/images/pix006.png' target=_blank&gt;&lt;img src='http://knowhere.net/gg/pix-article/thumbnails/pix006.png'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;To actually look at the texture, just double click on the blue hexadecimal address in the &amp;quot;texture&amp;quot; column.  In the next picture, you can see the cubemap texture has data in it!  This is good news, that means I can ignore all of the code that deals with generating the cubemap.&lt;br&gt;&lt;br&gt;&lt;a href='http://knowhere.net/gg/pix-article/images/pix007.png' target=_blank&gt;&lt;img src='http://knowhere.net/gg/pix-article/thumbnails/pix007.png'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;Next, I wanted to look at the pixel shader code that is used.  Mostly because I forgot how the cubemap was working at the time.  I wanted to see what other dependencies it might have:  other textures, shader constants, etc.  To do this, go back to the debugger frame that showed the history of the pixel and click on &amp;quot;Debug pixel (xx,xx)&amp;quot;.  This will bring up the pixel shader that was used.  &lt;br&gt;&lt;br&gt;&lt;a href='http://knowhere.net/gg/pix-article/images/pix008.png' target=_blank&gt;&lt;img src='http://knowhere.net/gg/pix-article/thumbnails/pix008.png'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;Looking at the shader, it only samples the cubemap and doesn't rely on any shader constants.  It's time to look at the vertex shader to see what it passes to the pixel shader.  To do this, just select &amp;quot;Debug Vertex X&amp;quot; in the history view.&lt;br&gt;&lt;br&gt;&lt;a href='http://knowhere.net/gg/pix-article/images/pix009.png' target=_blank&gt;&lt;img src='http://knowhere.net/gg/pix-article/thumbnails/pix009.png'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;Looking at this dump really fast, I could see that it needed to have these vertex shader constants: $modelview @ position 0, $cubeTrans @ position 16, and $cubeEyePos @ position 19.  Let's check the vertex shader constants and see if the data is good.  To do this, select &amp;quot;Vertex State&amp;quot; from the tabs and scroll down to the vertex shader constants.  &lt;br&gt;&lt;br&gt;&lt;a href='http://knowhere.net/gg/pix-article/images/pix010.png' target=_blank&gt;&lt;img src='http://knowhere.net/gg/pix-article/thumbnails/pix010.png'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;Oh crap!  Look at positions 16-19, it's full of zeros.  So the cubemap transform isn't getting set!  I quickly searched the code to see what sets them up and found out that they'll only be set if the material has &amp;quot;dynamicCubemap&amp;quot; set to true!  D'oh!  I fixed the material and got the following screen:&lt;br&gt;&lt;br&gt;&lt;a href='http://knowhere.net/gg/pix-article/images/pix012.png' target=_blank&gt;&lt;img src='http://knowhere.net/gg/pix-article/thumbnails/pix012.png'  alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;That was literally my debugging session, it took about 5 minutes.  It could have taken a lot longer if I didn't have the right tool.  Hopefully, this was a good introduction to PIX.  There are other uses for it:  performance monitoring, resource usage, but this is what I use it for the most.  I hope this article makes you reach for PIX the next time you have a rendering bug.</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/38050/13419">
		<dc:format>text/html</dc:format>
		<dc:date>2007-08-18T23:05:43+00:00</dc:date>
		<dc:creator>Brian Richardson</dc:creator>
		<title>TGEA Batching Doc + randomness</title>
		<link>http://www.garagegames.com/blogs/38050/13419</link>
		<description>So, a whole lot has changed for me in the past two years or so.  I've moved to Portland, OR and bought a house.  I've gotten engaged to my girlfriend of over 8 years.  I've shipped a few pieces of &lt;a href='http://mlb.mlb.com/mlb/subscriptions/mosaic.jsp' target=_blank&gt;software&lt;/a&gt;.   The latest change is that I've joined the engine team here at GarageGames!   It's definitely been a childhood dream of mine to work on games and game technology for a living.  I'm getting chills when old songs (mostly old Front 242) are playing and I'm hacking on our next engine release.  Reminds me of staying up too late as a kid trying to make .s3m music players in protected mode assembly.  Also, reading Gamasutra and GG is work, not something I have to hide when I'm at work! ;)  Everyone at GG has been really cool and it's a great place to be.&lt;br&gt;&lt;br&gt;I've written a small &lt;a href='http://tdn.garagegames.com/wiki/TSE/Batching' target=_blank&gt;article&lt;/a&gt; on &lt;a href='http://tdn.garagegames.com/' target=_blank&gt;TDN&lt;/a&gt; about the batching system used in &lt;a href='http://garagegames.com/products/torque/tgea/' target=_blank&gt;TGEA&lt;/a&gt;.  If you want to add a new object to TGEA, or add custom shaders you must know how this works and I think the &lt;a href='http://tdn.garagegames.com/wiki/TSE/Batching' target=_blank&gt;article&lt;/a&gt; is a good overview to get you started.&lt;br&gt;&lt;br&gt;Also, if you are doing any graphics programming with DirectX and are not using &lt;a href='http://msdn2.microsoft.com/en-us/library/bb173114.aspx' target=_blank&gt;PIX&lt;/a&gt; you are going into a knife fight with a pointy stick.  PIX has been a great tool for debugging silly graphic artifacts.  It's told me twice that some textures were not getting set.  It's also really good at showing you how your scene is being drawn.  It's so good in fact, that for my required screenshot in a .plan, I'm going to post of screenshot of a scene in PIX!&lt;br&gt;&lt;br&gt;&lt;img src='http://knowhere.net/gg/pix.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;As I keep on learning and creating new things, I'll try to write more articles explaining pieces of the engine and other fun stuff one can do.</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/38050/9557">
		<dc:format>text/html</dc:format>
		<dc:date>2006-01-13T07:51:40+00:00</dc:date>
		<dc:creator>Brian Richardson</dc:creator>
		<title>Torque is a good playground!</title>
		<link>http://www.garagegames.com/blogs/38050/9557</link>
		<description>So, a year and a half ago I was visiting Portland and read something on Slashdot about the Torque Game Engine.  I had read about it a while ago, but never checked it.  On a whim, I did.  The idea of being a game developer suddently overwhelmed me and I decided to buy the engine and start hacking.&lt;br&gt;&lt;br&gt;After a bit of time, I've released some &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=result&amp;amp;qdn=^38050&amp;amp;qsf=posted&amp;amp;qsd=desc'&gt;resources&lt;/a&gt;, and I've worked on some &lt;a href='http://knowhere.net/portfolio.html' target=_blank&gt;projects&lt;/a&gt;.  &lt;br&gt;&lt;br&gt;Fastforward about a year and a half, I'm in Portland and now I've got a neat new job doing some DirectShow programming.  It's not game programming yet, but I'm definitely moving in the right direction.  I'm working on some projects that should turn into some released stuff!  &lt;br&gt;&lt;br&gt;With Torque getting more &lt;a href='http://www.garagegames.com/blogs/34977/9552'&gt;acceptance&lt;/a&gt; as a engine in gamedev circles, I think I'm in a pretty good position to meet my goal of being a fulltime game developer.  I guess I'm just writing this for other people that might be thinking about using Torque to get into gamedev, it seems to be pushing me in the right direction!&lt;br&gt;&lt;br&gt;Other randomness, I've released a little &lt;a href='&amp;quot;http://knowhere.net/kblaunch/&amp;quot;' target=_blank&gt;program&lt;/a&gt; that does super fast program launching.  Check it out a let me know what you think!&lt;br&gt;&lt;br&gt;Here's a little screenshot:&lt;br&gt;&lt;img src='http://knowhere.net/kblaunch/kblaunch1.png'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Also, check out &lt;a href='http://pagdig.org/' target=_blank&gt;PAGDIG&lt;/a&gt; if you're in the Portland area!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/38050/9056">
		<dc:format>text/html</dc:format>
		<dc:date>2005-10-26T20:09:09+00:00</dc:date>
		<dc:creator>Brian Richardson</dc:creator>
		<title>Wednesday Oct 26 20:09</title>
		<link>http://www.garagegames.com/blogs/38050/9056</link>
		<description>IGC Wrapup, Breaking things, hire me!&lt;br /&gt;&lt;br /&gt;Random update time kids!  I had a good time at IGC!  It was great to see all of the projects and get some of that energy again.  &lt;br&gt;&lt;br&gt;Mistakes I made this year were:  &lt;br&gt;&lt;br&gt;I guess this year I was a bit less social, so I met less new people.  This is because I actually knew people this time! So I just hung out with them.  I'll have to change that next year.  &lt;br&gt;&lt;br&gt;Not testing my stuff completely before comming down.  This was due to time mostly.  It was very dishearting to see someone launch my demo and it just flat out broke on them.  Next year I'll have fully tested demos to install.  But I did install something on the machines this year, which is a step higher than last year.&lt;br&gt;&lt;br&gt;I've redone my &lt;a href='http://knowhere.net/' target=_blank&gt;website&lt;/a&gt;.  I've decided to use it to sell myself as a contractor.  If you have a paying project and are looking for some programming help, check me out.  Also, if any of you could run through my &lt;a href='http://knowhere.net/portfolio.html' target=_blank&gt;portfolio&lt;/a&gt; page and let me know if anything is unclear or worded poorly.  It was neat to assemble this page because it was nice to see almost everything I've done over the last year in one spot.  Felt good after my disappointing IGC demos. ;) I recommend everyone do it!&lt;br&gt;&lt;br&gt;I spent a day prototyping a concept I've called &amp;quot;Breakshit&amp;quot;.  &lt;img src='http://knowhere.net/gg/gid/breakshit.png'  alt=&quot;&quot;&gt;  &lt;br&gt;&lt;br&gt;Everyone likes to break things, so why not write a game around that activity?  I've got enough tech done to prototype gameplay now.  So now I need to figure out a good goal to provide the smallest amount of structure neccessary for &amp;quot;fun&amp;quot;.  I've got a video of the breaking stuff &lt;a href='http://knowhere.net/gg/gid/breakshit2.avi' target=_blank&gt;here&lt;/a&gt; (xvid encoded).  I based the &amp;quot;tech&amp;quot; on The &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=5502'&gt;Shape3DS&lt;/a&gt; resource (Thanks Matt!) so I can grab lots of free 3DS models to litter my landscape with and break them!&lt;br&gt;&lt;br&gt;On the prototyping note, check out &lt;a href='http://www.gamasutra.com/features/20051026/gabler_03.shtml' target=_blank&gt;this&lt;/a&gt; article about rapid game prototyping, it is quite well written!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/38050/8787">
		<dc:format>text/html</dc:format>
		<dc:date>2005-09-24T18:50:50+00:00</dc:date>
		<dc:creator>Brian Richardson</dc:creator>
		<title>Saturday Sep 24 18:50</title>
		<link>http://www.garagegames.com/blogs/38050/8787</link>
		<description>What I've been up to and what I'm planning to do:&lt;br&gt;&lt;br&gt;I landed a nice job here in Portland, OR so I'm gonna be able to stay!  That's quite a load of my mind.  I've settled into a nice new rhythm.  I've gotten a bunch of smaller projects done:&lt;br&gt;&lt;br&gt;1.  Port of fxFoliageReplicator from TGE to TSE for a bounty submission.  I had a lot of fun doing this.  All of the animation is done in the vertex/pixel shaders.  It was intersting comming up with methods to turn features on and off with no branching.  Mostly involved multiplication of things by 1 or 0, or by taking advantage of overflow and the min function.&lt;br&gt;&lt;br&gt;2.  Re-enable interior rendering modes in TSE for a bounty submission.&lt;br&gt;&lt;br&gt;3.  Some GuiFlash bug fixing, mini-enhancements.  This will be released to the community at some point.&lt;br&gt;&lt;br&gt;4.  Some work on &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=37490'&gt;Josh Dallman's&lt;/a&gt; game: &lt;a href='http://www.shelledgame.com/' target=_blank&gt;Shelled!&lt;/a&gt;&lt;br&gt;&lt;br&gt;5.  Also, I just submitted a new resource called: &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=8786'&gt;Stupid WheeledVehicle Tricks&lt;/a&gt;.  This shows you how to modify the vehicles to drive on walls, and gives some code allowing a two wheeled vehicle.&lt;br&gt;&lt;br&gt;I've also been doing some hardware hacking.  After my laptop died for the final time, I decided to yank out the ATI Mobility Radeon 9600 chip and install it into my Speak and Spell.  I can now play TGE/TSE based games on it (albeit, a bit slow).  Here's a picture of it running a new build of &lt;br&gt;&lt;a href='http://www.shelledgame.com/' target=_blank&gt;Shelled&lt;/a&gt; (in the surreal environments, gotta love em):&lt;br&gt;&lt;br&gt;&lt;img src='http://knowhere.net/gg/shellednspell-planshot.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Plans for the future:&lt;br&gt;I'm going to clean up some of the projects I've messed around with and bring them to IGC with me.  They won't be impressive, but at least I'll have something running on those machines, eh?  Then maybe I'll start focusing my energy in on one project, but I'm not very worried about that right now.&lt;br&gt;&lt;br&gt;I'm just gonna yoink this directly from Josh:&lt;br&gt;&lt;br&gt;Lastly, for you &lt;a href='http://search.garagegames.com/search?restrict=developers&amp;amp;ie=&amp;amp;q=portland&amp;amp;site=GarageGames&amp;amp;output=xml_no_dtd&amp;amp;client=GarageGames&amp;amp;btnG=Google+Search&amp;amp;access=p&amp;amp;lr=&amp;amp;ip=67.101.6.36&amp;amp;proxystylesheet=GarageGames&amp;amp;oe=&amp;amp;filter=p' target=_blank&gt;Portland GarageGames members&lt;/a&gt; (and there are quite a few), check out the new &lt;a href='http://www.pagdig.org/' target=_blank&gt;Portland IGDA Chapter website&lt;/a&gt; which lists the next meet at Old Town Pizza on Oct 13th.   PAGDIG stands for Portland Area Game Developer Interest Group.&lt;br&gt;&lt;br&gt;I had fun just talking with other game dev people there and it seems like we could really get a scene going if we can grow this group a bit.  So show up, eat pizza, you gotta eat that night anyways right?</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/38050/8282">
		<dc:format>text/html</dc:format>
		<dc:date>2005-07-18T07:12:49+00:00</dc:date>
		<dc:creator>Brian Richardson</dc:creator>
		<title>Monday Jul 18 7:12</title>
		<link>http://www.garagegames.com/blogs/38050/8282</link>
		<description>Move to Portland, GID Ghosts Entry, other silliness&lt;br /&gt;&lt;br /&gt;Due to all kinds of &amp;quot;real world&amp;quot; things going on and some gamedev side projects I haven't gotten too much done on my own projects.  This &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=7988'&gt;resource&lt;/a&gt; is the only public thing I've done recently.  Some of this is due to my move from Washington, DC to Portland, OR.  I love this town so far and I hope I'll be able to settle in with a job soon.  (If anyone knows of any cool openings, please get in touch!)&lt;br&gt;&lt;br&gt;So, now that I've gotten here, I've gotten back into gamedev work a little bit.  I've been playing around with HLSL and Rendermonkey alot.  I really want to get more into non-photorealistic rendering and doing weird games.  So on that note, I decided to jump in and do a gid this weekend. Here's what the critics have to say:&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;lt;TomB&amp;gt; its quite possibly the weirdest thing ive seen come out of a GID ever&lt;br&gt;&lt;hr height=1 noshade&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Here's a screenshot:&lt;br&gt;&lt;br&gt;&lt;img src='http://knowhere.net/gg/gid/gidghosts.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;It's called &amp;quot;Fade to Nothing&amp;quot;.  The premise behind the game is simple.  Everytime you are hit, you become invisible for 5 seconds.  As your health decreases, so does your opacity.  This makes it harder for your opponents to hit you.  This also opens up neat strategic possibilities.  You could damage yourself, then run to a new hiding place while you are invisible.  There are all kinds of neat gameplay possibilities.  There's also a full screen &amp;quot;GHOOOOOSTVISION&amp;quot; shader effect to make seeing more annoying.&lt;br&gt;&lt;br&gt;I'm hosting a dedicated server for a while, so you can download it &lt;a href='http://knowhere.net/gg/gid/ftn.zip' target=_blank&gt;here&lt;/a&gt; and join the action!  There are a couple things to keep in mind.  One:  This currently requires a ps2.0 capable card.  This is because I'm lazy.  Two, there's a weird bug with the material mapping.  When you join the server for the first time, the level will blink because the mappings have not taken effect.  If you disconnect and reconnect, it's fine.  Three, there are spelling and grammar errors on my title screen.  I may or may not fix this in the future. ;) &lt;br&gt;&lt;br&gt;Finally, here's a quick rundown of the dev:&lt;br&gt;&lt;br&gt;1.  Port starter.fps over to TSE.  (This will hurt me later. ;)&lt;br&gt;2.  Enable my GHOOOOOOOSTVISION shader. &lt;br&gt;3.  Notice that setting alpha on shapebase objects is annoying.  I implement a simple shader to get around that.  (Minus the ugly sorting issues that I ignored.)&lt;br&gt;4.  Fix network bug with my shader hack.&lt;br&gt;4.5:  Start implementing &amp;quot;last man standing&amp;quot; mode.  This would do a normal last man standing game, but you are still allowed to run around and shoot people after you're dead.  You'd just be invisible, and you would do no damage, you would just throw them around.  I thought this would be very fun!  But I didn't feel like dealing with the &amp;quot;dead&amp;quot; state management.&lt;br&gt;5.  Create a quick .MAP level.  Used textures from &lt;a href='http://www.gamesextract.com' target=_blank&gt;Games Extract&lt;/a&gt; for the level.  Rock on free textures!&lt;br&gt;6.  Get annoyed because my material mapping isn't working.  Matt Fairfax issues the smackdown and let's me know that the demoMaterial macro is reference demo.  Why didn't I see that!?&lt;br&gt;7.  Random cleanup&lt;br&gt;&lt;br&gt;Wow, long plan! ;) I'm sure I missed something.  Oh well..  I'm going to be looking into hatching/stippling style rendering soon.  Other future plans are blurry right now.</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/38050/7273">
		<dc:format>text/html</dc:format>
		<dc:date>2005-03-02T16:59:10+00:00</dc:date>
		<dc:creator>Brian Richardson</dc:creator>
		<title>Wednesday Mar 2 16:59</title>
		<link>http://www.garagegames.com/blogs/38050/7273</link>
		<description>February turned out to be a much more productive month for me than January.  Here's what I got done:&lt;br&gt;&lt;br&gt;I passed my Game Mathematics class at the &lt;a href='http://www.gameinstitute.com/' target=_blank&gt;Game Institute&lt;/a&gt;.  I signed up for this class back in '99 or so and never did anything with it.  With my renewed excitement for game development, I decided to finish it up.  It's a great refresher on the math I knew and introduced me to the math I needed to know.&lt;br&gt;&lt;br&gt;I worked on the &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=7119'&gt;Flash GUI&lt;/a&gt; resource with &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=19453'&gt;Thomas Lund&lt;/a&gt;.  That was quite fun.  I fixed the viewport issues that it was having inside Torque.  It's based on &lt;a href='http://www.tulrich.com/geekstuff/gameswf.html' target=_blank&gt;GameSWF&lt;/a&gt; and will just get cooler as GameSWF gets more ActionScript support.&lt;br&gt;&lt;br&gt;I've also have been working with other people more.  I'm helping &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=13196'&gt;Tom Feni&lt;/a&gt; with his Toons project.  I'm working with &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=16383'&gt;Nate Watson&lt;/a&gt; on his project as well.  I've got another one coming up also!  &lt;br&gt;&lt;br&gt;On the personal project front.  I have made some progress on my game Fight Like A Girl.  It aims to be Mike Tyson's Punchout for the ladies.  Here's a current screenshot:&lt;br&gt;&lt;br&gt;&lt;img src='http://www.knowhere.net/gg/flag.gif'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;It's currently written in Flash.  I'm pondering finding a Flash artist to animate the rest of the game.  That seems to slow me down the most.  I'm hoping to have a full version of the first fighter/level done very soon.  Then I'll link it here and find out what I'm doing wrong so I don't make the same mistakes more than once.  &lt;br&gt;&lt;br&gt;The future of this game is a bit blurry.  I want to have a Flash version because I want it to be extremely easy to get people to play it.  My plan is to have a downloadable version as well, which would provide customization and other bells and whistles.&lt;br&gt;&lt;br&gt;There are many options for this:&lt;br&gt;&lt;br&gt;1.  Use the Flash Projector/ActiveX control.  Advantages are:  Least amount of new work, runs everywhere easily.  Disadvantages are:  Runs slow, doesn't look &amp;quot;cool&amp;quot;.  I wanted to Target very low end machines with this.  So the projector w/ GDI seemed like a good bet.  But it runs really slow on my slow work machines, and I don't like it.&lt;br&gt;&lt;br&gt;2.  Use GameSWF/OpenGL.  This raises the bar to OpenGL capable machines.  I really wanted to have an extremely low bar for  customers to hurdle.  I could try to write a software renderer for gameswf.  It is set up so you can replace the graphics and sound rendered with new modules.  So this might not be too bad.  It also doesn't currently support all of the ActionScript I need, so I'd also have to code that.&lt;br&gt;&lt;br&gt;3.  Use Torque2D.  I could easily export the graphics with some code+GameSWF.  Then recode my game logic in TorqueScript.  If I'm already going to require OpenGL w/ GameSWF, then this route maybe the safest approach.&lt;br&gt;&lt;br&gt;Any suggestions would be appriciated.  Please keep in mind that I really want it to be easy for potential customers to give me their money! ;)  That's why I'm leaning towards the Flash Projector or a new software renderer in GameSWF.</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/38050/6278">
		<dc:format>text/html</dc:format>
		<dc:date>2004-08-19T14:46:18+00:00</dc:date>
		<dc:creator>Brian Richardson</dc:creator>
		<title>Thursday Aug 19 14:46</title>
		<link>http://www.garagegames.com/blogs/38050/6278</link>
		<description>Fun device time!&lt;br /&gt;&lt;br /&gt;My plans have changed a small bit.  I've learned quite a bit about Torque in the past month or so.  I was working on a racing shooter game ala Mario Kart.  You can see some of the results of that learn in this &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=6222'&gt;resource&lt;/a&gt;.&lt;br&gt;[url]&lt;br&gt;&lt;br&gt;But that got put on hold.  I'm working on a small short project involving this &lt;a href='http://www.essentialreality.com/' target=_blank&gt;VR Glove&lt;/a&gt;.&lt;br&gt;I've learned alot about Torque's input/event system and about the action map.  Which links the input to the scripts.  Watch this little &lt;a href='http://knowhere.net/gg/glove1.mov' target=_blank&gt;video&lt;/a&gt;  To see&lt;br&gt;the glove in action.&lt;br&gt;&lt;br&gt;Future plans are to improve the glove interface.  Then complete the rest of the project I'm working.  Finally, I'm going to get back to work on my game.  &lt;br&gt;&lt;br&gt;I've had some issues with map making.  But I've found lots of pieces of info about dif files scattered all over the place which have been helping me out.  I'm thinking about consolidating them all together in one page to help other people.&lt;br&gt;&lt;br&gt;Anyways, that's all folks.</description>
	</item>
</rdf:RDF>
