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
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
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
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
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
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.
Separating Axis Theorem
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.
