Publications
|
Automated Occluders For GPU Culling Hierarchical Z-Buffer Occlusion Culling and How to Automate Occluder Creation Published in |
Professional Projects
Activate3D
2010 – 2011
Emergent Game Technologies
2007 – 2010
Toolbench
Products: Gamebryo Lightspeed 3.0, 3.1, 3.2
Toolbench is a pluggable tools framework written in C#, very similar in design to Eclipse for its plug-ins. It hosts a World Builder, Script Editor, Debugger, etc…
When I first joined Emergent, Toolbench was just getting off the ground. I worked primarily on the tool’s infrastructure and on the level editor, World Builder. However, I’ve been involved at some level with almost every plug-in in Toolbench. Even though the technology was fairly new at the time we ended up using a fair amount of WPF in the tools UI.
You can watch the following videos of Toolbench being demoed on Gamebryo LightSpeed 3.0.
COSS Development Corporation
2004 – 2005
Screen Designer
I worked at COSS during the summers while attending NC State University. One of the things I worked on was Screen Designer, which was a tool for authoring UI for web forms. The output of the tool was a mixture of script and XML that was consumed by a web system for managing insurance forms. The tool was written in C# and Windows Forms. There was also a prototype LALR compiler I was working on to replace the old one but left before finishing it.
![]() |
![]() |
![]() |
Independent Projects
Game Jams
To see the Game Jams I’ve participated in head over to my [Game Jams] page.
Polymorph Framework
Years: 2007-Present
Affiliation: Open Source
This project started off as a code generator for Mono/.Net, that I took over as steward for and continued to add to and fix bugs. The project allows you to write code using high-level constructs like If/Else/For that generates IL code on the fly. The framework ignores compiler constraints like scope. This framework would be much better in a situation where you’re trying to access data through improper channels if it’s not exposed through public accessors. Like if you were building a system to serialize data in a class, not everything you want to save is accessible.
http://www.codeplex.com/Polymorph
XNA GUI Framework
Year: 2007
Affiliation: Quixotic Labs (me)
A simple UI framework written in XNA. When I started the project there were not any good UI frameworks for XNA. However, several have been released since then so I’ve shelved this project for now.
XNA Visual Studio Debug Visualizers
Year: 2007
Affiliation: Quixotic Labs (me)
While working on the XNA UI framework, I wrote a series of debug visualizers for Visual Studio to view things like textures and render targets. I also wrote one for editing a matrix.
Student Projects
Virtuoso (HI-FIVES Project)
Year: 2006
Affiliation: North Carolina State University
HI-FIVES stands for Highly Interactive Fun Internet Virtual Environments in Science.
I worked on this research project at NCSU under Dr. Michael Young. Funded by a grant from the NSF, the goal of the project was to create a new teaching environment for students with video games. I was involved with HI-FIVES from the start working with another programmer. We did the project as a mod for Half-Life 2 using the Source engine from Valve Software to act as a level-builder and script editor for the world. Designed so that teachers (or anyone) with no experience in game development, can after a short time build and script worlds for their students to learn in.
One piece of the project I was responsible for was the scripting environment. Unfortunately the Source engine does not have a scripting environment which meant I had to add one to it. I started by attaching the Lua virtual machine to the engine. This made it so any natively built object could actually be controlled by Lua scripts instead of precompiled C++ code. However, for anyone to be able to write a game the scripting environment had to be visual. So to go along with the visual representation completed by my partner on this project. I wrote the backend framework that contained all the classes for representing various script components. Thing along with the client/server communication layer to transmit the changes and synchronize all the clients, multiple people could edit the same environment together and then all observe the results.
Quagmire
Year: 2006
Affiliation: North Carolina State University
Quagmire was a tool I wrote to help automate the grading process for Java assignments that students would write. It was often the case that students would fail to follow the directions, so simply plugging their code into an application generally failed because they didn’t conform to the interface provided. This made the grading process a very manual one because if the program didn’t work you had to break it down, looking for what partial credit you could give the student.
So as part of a research course I wrote Quagmire to process the student’s Java assignments and test them. It could test for documentation completeness, specification (did they conform to the design requirements), and finally it had a unit testing framework. That supported the ability to do things with a time-out because it was quite common for students to write infinite loops, which broke the one-shot automated tests that were written in the past. I ended up winning the Donald L. Bitzer Creativity Award for this project.
![]() |
![]() |
![]() |
Story Graph
Year: 2006
Affiliation: North Carolina State University
The “Story Graph” project was an idea I came up with in a research course at NC State University. The basic idea is, a tool for story-boarding your game or possibly an interactive sequence in the game. You start by placing a plane in the world on the grid that represents a frame in the storyboard. You then drop actors from the palette and assign them actions to take along a time line.
I created a mod of UT2004 to act as the visualizer, it is sent commands from a server that processes the output file of the Story Graph tool. When the story is executed the game proceeds to create 3D actors and execute a series of actions written in unreal script that correspond to the actions specified in the tool for the actors. The transition between frames happens in real time and the characters will automatically run to the next frame to play out the next sequence.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Asteroids
Year: 2005
Affiliation: North Carolina State University
A simple Asteroids clone in OpenGL that I did as a student at NC State University. The game has some twists over the original, like a 3rd and 1st person camera.
Wide Asleep
Year: 2005
Affiliation: North Carolina State University
Another project I worked on at NC State University was a game mod for UT2004. Wide Asleep was a 7 Week project to design and build a game. I lead a team of 7 other programmers and 2 art students to build by far one of the largest and most involved games of any of the teams that participated. I was the only one with any experience modding Unreal, so a great deal of time was poured into our game.
Most of my time was spent developing the core gameplay and managing the team, making sure all the parts came together.






















Comments (0)