Twitter
Friday
Mar132009

The Churn Continues

Nothing terribly flashy to report. I've mainly been busy with small infrastructure work and the big ticket item of a robust UI system. I think that's finally to the point where it can be used is almost any future project so I am excited about that. Once I had it done it was extremely easy to add menus, HUDs, etc. throughout the game. I am a fan of keeping things data driven so, like most of the components in my engine, it's controlled through XML. There are XML elements and attributes that specify the type of UI control, font, position, alignment, etc. along with any children with an arbitrary nested depth. All that means is that from the XML file I can define menus and sub-menus and any changes appear in game without having to change or recompile code. The XML file also defines actions for buttons, which are delegates that are defined per game at the moment. However, these actions can be changed like anything else so a button can go from resuming the game to quitting it by just changing one word in the XML file.

As far as release date goes, I know I said I'd have something to download around now but I want to make sure this game is polished before I do that. I'll keep you guys up to date on that front, but for now I'll just say "when it's done".
Monday
Feb232009

Fullscreen Glow

I added support for fullscreen glow to my renderer yesterday and overall I am happy with the results. While this effect is not full blown HDR color correction/bloom/etc., it gives the scene a softer look while making the luminous colors brighter and providing some anti-aliasing on the side. I realize some people feel these type of post-processing effects are overused, but I like it. If you disagree, it will be one of the detail settings in the game that you can turn off.

WARNING: What follows is graphics nerd speak...

Here's the rundown on my implementation:

  1. If glow is on, we render the scene (minus UI) to an offscreen rendertarget, otherwise proceed as normal while rendering to the backbuffer.


  2. When we're done rendering the scene, switch the rendertarget over to one that is 1/4 the size. This fraction can be larger or smaller, but I made the performance/quality tradeoff at 1/4.


  3. Set the full-size offscreen rendertarget as a source texture.

  4. Set a fullscreen quad as the vertex source.

  5. Sample from the offscreen RT now... we are effectively downsampling the original result.

  6. The output of this stage is this sample, with the alpha channel containing the luminosity (or grayscale) of the color.

  7. Set the alpha blending mode to additive.

  8. Set the rendertarget to the backbuffer and another source texture to the downsampled luminosity RT.

  9. For this pass, sample the downsampled luminosity texture with a 3x3 gaussian blur kernel. Again, the size of the blur can be larger or it can be a box filter. This is also a performance/quality tradeoff.

  10. Add the blurred luminosity value to the sample for the scene texture.


Here's what the final result looked like:

glowcompare
Sunday
Feb152009

Gameplay Footage

I put together a video of the game thus far after I got it to a state that represents the core gameplay.  Graphically, I plan to add shadows and some postprocessing (namely glow) as well as a prettier display for scores and lives.  I also plan on adding more enemies and some other goodies before making a download available.  Speaking of which, people have asked me when that is going to happen.  My goal is get this done sometime in the middle of March.  I am limiting the scope of the game to a single level score challenge and yes, it will be free since it's such a small game.  I intend to start a much longer term project sometime around April, but more on that later since I haven't really narrowed down the pool of ideas :)

As always, I welcome comments and feedback.  Thanks and enjoy.

Wednesday
Feb112009

Pinky and the Cave

 

First of all, hello world and welcome to Roach Puppy Games.   I know the size of my current audience is about 0-3 but I hope to change that and what the hell, I'm gonna blog anyway.  I created this entity (I use that word too much) to brand my creations and to have a single place to talk about my work other than my blog.  It all sounds very official but it's just me in my home office in my free time.  Up until recently, my game development efforts have been very focused graphics demos, engines and small game prototypes.  I've been refocusing these last few months, motivated by the IGF and successes of small teams due to the rising popularity of casual and indie games.

Introductions aside, here's a small preview of my current project Pinky and the Cave.  I've been working on it for about a month in order to flesh out my engine, but I decided to continue work on it since it's turning out to be a pretty fun game.  Think Geometry Wars if you were swinging on a rope the whole time.

Pinky and the Cave
Page 1 ... 2 3 4 5 6