Portfolio

Welcome to my portfolio! Below is a listing of articles I’ve written and projects I’ve worked on. If you have any questions, please don’t hesitate to contact me.

Articles

Depth of Field

Second place in the Ziggyware Holiday XNA Article Contest. A tutorial on Gaussian blurring modulated by a depth channel in order to create a depth of field effect.
< View the article >

Multi-Threading with XNA

Second place in the Ziggyware XNA Article Contest. A tutorial on multi-threading covering basic concepts, risks (such as locks and race conditions), and performance considerations (such as processor caching of spatially-coherent data).
< View the article >

Quadtrees

An extensive two-part article describing the concept of a QuadTree, complete with several descriptive images (including an animated walkthrough of an item moving within a QuadTree). Ends with a discussion of several different uses of a QuadTree, highlighting the importance of building it for the specific task at hand.
< Part 1 > < Part 2 >

Projects


FlatRedBall


FlatRedBall Animation Demo

Lead graphics programmer for FlatRedBall Studios.
Integrated skinned model rendering and animation, post-processing support, 3D audio and more to the FlatRedBall game engine. Also developed a component-based shader architecture for an internal project, whereby shaders were divided into functional blocks which could be reused across all shaders (e.g. GetPixelLighting()).

The following demo application and video demonstrate skinned model animation, intelligent animation blending, 3D audio and to a lesser degree, multiple render surface and post-processing support. This demo uses the free dwarf model from Psionic.

< Download the Windows Installer >

Demo Video:


Dream Sower


Dream Sower

Technologies:

  • XNA Game Studio Express
  • C#
  • Blender 3D

Developed for: Microsoft’s Dream Build Play competition. During: Spring-Summer 2007A unique game where you must fight off nightmares and build a dreamscape to keep the dreamer happy.

< Download the Windows Installer >
< Download the Xbox 360 .ccgame (XNA Creator’s Club membership required) >

Gameplay Video:


Wisp


Wisp

Developed in an afternoon as an exploration of rendering techniques. Used XNA and HLSL to code the project.

< Download the Windows Installer >

Video:


Landscape Generation


Wisp

Procedural landscape generation, with a focus on generating landscapes suitable for third-person games (such as the RTS genre). Land is generated with a blend of diamond-square and Voronoi noise, then eroded using a combination of thermal and hydraulic erosion algorithms. The generated land is rendered with a two-dimensional-palette-based toon shader, with the palette varied on both land height and inclination.

< Download the Windows Installer >

Video:


Volume Rendering Exploration


Dream Sower

Technologies:

  • XNA Game Studio Express
  • C#
  • HLSL

Developed: Spring 2007An exploration of volume rendering using XNA and HLSL. Built a point-based volume renderer as a first test (download below), then built a slicing-planes and ray-casting version.

More data sets can be download from gris.uni-tuebingen.de, and can be loaded by the program by placing the .raw file in the VolumeFiles directory and editing the xml file in that directory. Please note that this program only supports 8-bit data sets.

< Download the Windows Installer >


Separating Axis Theorem


Dream Sower

Technologies:

  • XNA Game Studio Express
  • C#

Developed: Fall 2006A demo of using the Separating Axis Theorem and a Quadtree for collision detection. The purpose of the demo is to demonstrate collision detection, not collision response - therefore, the response is a simple center-point reflection.

< Download the Windows Installer >