Games...
Dungeon of Glory
Video Game Olympics
Vigilante
Super Arkanoid
Super Smash Bros Pong
Battle Time
Tools...
Dungeon of Glory - Model Viewer
Dungeon of Glory - Maya Exporters
3D Terrain Editor
Video Game Olympics - Board Editor
NFL Head Coach - Settings Editor
Sample Source Code...
Resource Management
Mission Critical Applications...
iCDC
Centralized Heuristic Application Deployment
iDMV
Mederyx
Demos...
Skinned Animation Research Project
Asteroids Ship AI Neural Network Research Project
Path Planner
Networked Tank Game
Renderware Tank Game
Networked Chat Program
Decision Tree
Flocking
GBA Platformer
GBA Sound
Caching Scheme
Game Designs...
Dinocore Game Design
Level Designs
Cliff Base - Unreal Tournament 2004 Level
|
|
|
Games
|
Dungeon of Glory
Academic Project
05/2006 - 09/2006
Technical Lead
•3D Dungeon crawler - Action/RPG
•Worked with five other programmers
•Implemented renderer abstraction (OpenGL/Direct3D)
•Designed and constructed procedural dungeon generator
•Demonstrated skinned animations (Hardware/Software)
•Produced detailed Design and Technical documentation
Explore the levels of the Dungeon of Glory. Survive endless hordes of monsters and amass power unparalleled. Use your innate abilities to sway the tide of battle, by unleashing devastating finishing moves. Will you remember who your allies are? Or will your greed, driven by the dungeon, turn you against them? Choose your class and skills. Acquire items as you roam through the dungeon walls. Use Primer attacks to build up Momentum for devastating Finishers. Experience fast-paced, uninterrupted game play as you explore the dungeon.
 
 


This is a work in progress, and is subject to change
|
|
Video Game Olympics
Academic Project
10/2005 - 11/2005
Technical Lead
•Modified existing Direct3D wrappers
•Managed a team of five programmers
•Wrote Code Architectural Overview in Design document
•Created Donkey Kong multiplayer minigame
•Created Super Mario World multiplayer minigame
•Created Sonic based single player minigame
•Implemented board game
•Applied parallax scrolling algorithm
•Added DirectShow video playback
•Built camera animation system
•Implemented single player versions of all multiplayer games
•Delivered extra and early for every milestone
Video Game Olympics is a Structure of Game Programming class project produced by Exploding Barrel Productions. It was a large undertaking for being a two month student game as the group committed themselves to seventeen mini-games. The main goal for the game was to end up with a board game that you move around (similar to Mario Party), coupled with the mini-game fun of Wario Ware. Mission accomplished. The team finished with one hell of a multiplayer game that has all of the elements that make a party game fun.
 
 

This game requires DirectX 8
|
|
Vigilante
Academic Project
09/2005
Programmer
•Used existing Direct3D wrappers
•2D driving action game
•Simplified GTA2 clone
•Designed and implemented in two weeks
•Created MFC level editor
•Implemented A* path finding
•Built component based AI system
•Constructed powerup system
In the small urban haven Hovertown, gangs have seized control of the streets. They have lost all respect for the law, and fear no one. It's time for all of that to change. Take control of Vigilante Officer Pete Williams, and regain control on the streets one level at a time.
 

This game requires DirectX 8
|
|
Super Arkanoid
Academic Project
09/2005
Programmer
•Used existing Direct3D wrappers
•Implemented in one week
•Created simple level scripting format
•Designed powerup system
Super Arkanoid plays very similarly to other Arkanoid games in existence. Bricks are laid out in front of a paddle, and you hit a ball back and forth to break through them. When the ball falls through the bottom of the screen, you lose a life. Lose all of your lives, and you lose the game. Each score is multiplied by a modifier. This modifier starts at 1.0 and increases by .5 each time the ball and paddle collide, but is reset each time you lose a life. Powerups in Super Arkanoid work differently than you might expect in that their effects do not take place as soon as the paddle touches them. Instead, they are put into the paddle's inventory for use at the appropriate time.
 

This game requires DirectX 8
|
|
Super Smash Bros Pong
Academic Project
06/2005
Programmer
•Win32 GDI based Pong game
•Created animation system
•Implemented collision
•Added powerups
•Constructed AI
When Mario and Link could not settle thier disputes on the Smash Bros. battlefield, they decided a good old game of turtle shell soccer would determine the victor. It is up to you to determine their fate! Play a new twist on an old game with unique ball powerups!
 

|
|
Battle Time
Personal Project
02/2005 - 04/2005
Programmer
•Windows console based RPG
•Implemented A* path finding with waypoints
•Constructed procedural dungeon generation mechanism
•Implemented turn based battle system
•Designed character leveling
Battle Time is a mindless dungeon crawler taken back to its roots. It combines the dungeon crawling feel of all of the older Commodore 64 games that I played during my youth with a more modern combat system like that found in the early Final Fantasy games. The funnest part of working on this project was creating the robust procedural dungeon generator as well as the battle system. The game represents a base line concept of the feel that we are going for in Dungeon of Glory, but with turn based battles. This game has no end, the levels can keep going on and on forever, with enemies strength and numbers scaling appropriately.
 

|
|
|
Tools
|
Dungeon of Glory - Model Viewer
Academic Project
07/2006
Programmer
•Used to view models outside of the game
•Implemented Maya control scheme
•Made animations loop infinitely
|
|
Dungeon of Glory - Maya Exporters
Academic Project
06/2006
Programmer
•Used to export models and animations out of Maya 7.0
•Integrated with Maya
•Created MEL based windows for each exporter
•Supports exporting models, animations, appearances
•Implemented both binary and XML formats
•Finds bind pose even if it was deleted by an artist
|
|
3D Terrain Editor
Academic Project
11/2005 - 12/2005
Programmer
•3D height map based terrain editor
•Used height map, multi-texture blending, smoothing
•Implemented CG fragment program to blend textures
•Integrated OpenGL into an MFC window
•Demonstrated 3D picking with brush placement
Inspired by the terrain editor built into Unreal Tournament 2004 that was used to create the Cliff Base level below, I decided to try to duplicate their terrain editing tool. Within a month, I feel that my tool came a long ways and I was very happy. Here is the result!
 

|
|
Video Game Olympics - Board Editor
Academic Project
10/2005
Programmer
•Implemented board editor and manager
•Added support for parallax scrolling layers
•Supports rotating tiles as needed
•Supports multiple layers
|
|
NFL Head Coach Settings Editor
Personal Project
06/2006
Programmer
•Fixed numerous community issues with the game
•Added the ability to set quarter length, difficulty, and more
•Reverse engineered save file format with help of George Greer
•Constructed TDB file format interface classes
•Designed and implemented in less than one week
This application fills a need by exposing settings that should have been made available through the NFL HC Interface. These settings exist in the Madden engine which is behind the game. By tweaking these settings you can produce far more realistic results, which is highly desirable in a SIM like this.
 

|
|
|
Sample Source Code
|
Resource Management
From Dungeon of Glory
07/2006
Programmer
•Smart pointer resource caching
•Resource bucket for resource grouping and reference holding
•Support for many different resource types
•Ability to specify resource path based upon type
This code is responsible for managing all resources loaded and used within Dungeon of Glory. By requesting a resource with the LoadResource function of either the resource manager or the resource helper, you will be given a reference to any currently loaded copy. A resource is loaded upon the first request for it, and released when finished..

This code is part of a much larger work, and cannot be compiled on its own.
|
|
|
Mission Critical Applications
|
iCDC
Interyx LLC - Natrona County, WY
01/2002 - 12/2003
Lead Programmer
•Designed and built District Court case management system
•Worked with Clerk of District Court to create application
•Utilized Oracle 9i database back end
•Implemented debit/credit based accounting system
•Implemented XML driven data conversion process
•Designed auto-update application to keep client updated
|
|
Centralized Heuristic Application Deployment
Interyx LLC - Natrona County, WY
06/2004 - 12/2004
Lead Programmer
•Designed and constructed application deployment solution
•Implemented secure application access
•Installs and automatically updates applications when executed
•Customizable settings driven deployment
•Updated Registry, COM DLLs, INI Files, File Permissions
•Developed using VB.NET and C#
•Installed on 100+ workstations
|
|
iDMV
Interyx LLC - Natrona County, WY
01/2001 - 01/2002
Lead Programmer
•Implemented Vehicle Sales Tax billing software
•Created State statute complient Vehicle Registration system
•Implemented Vehicle Title assignment and tracking
•Worked directly with Natrona County staff to design system
•Learned Oracle database administration and interfaces
•Implemented text based conversion process
|
|
Mederyx
Interyx LLC
06/2003 - 01/2004
Lead Programmer
•Worked on patient accounting and billing system
•Poured over and learned HIPAA data formats and rules
•Utilized existing software to learn practices
•Designed XML based data conversion process
|
|
|
Demos
|
Skinned Animation Research Project
Academic Project
03/2006 - 04/2006
Programmer
•Demonstrated software skinning
•Implemented animation blending similar to UT2004
•Constructed system for overriding joint movement
•Created sample game world to demonstrate features
|
|
Asteroids Ship AI Neural Network Research Project
Academic Project
02/2006
Programmer
•Added player AI to asteroids project
•Constructed abstract multi-layer perceptron class
•Implemented back-propegation to train the perceptron
•Used the perceptron to control ship
|
|
Path Planner
Academic Project
02/2006
Programmer
•Added path finding methods to existing application
•Used Best First, Breadth First, and Dijkstra algorithms
•Constructed A* (Normal/Optimized/Node Mesh) algorithms
•Implemented Genetic Algorithm approach to path finding
|
|
Networked Tank Game
Academic Project
03/2006
Programmer
•Added UDP based networking to existing tank game
•Implemented client/server scheme supporting four clients
•Developed client side prediction to ensure fluid movement
•Designed message layout to ensure proper communication
•Added broadcasting to find local servers
•Implemented packet reliability to ensure delivery
|
|
Renderware Tank Game
Academic Project
03/2006
Programmer
•Added numerous algorithms to existing application
•Designed collision detection for rockets, lasers, shells
•Implemented terrain following for the tank
•Developed procedural animation to move the tank parts
•Added multiple camera views (Follow, Look at, etc)
•Worked with Renderware
|
|
Networked Chat Program
Academic Project
03/2006
Programmer
•Added networking to existing IRC like chat software
•Implemented all network communication using TCP
•Handled reassembling of packets split by the network
•Demonstrated ability to multi-thread an application
|
|
Decision Tree
Academic Project
02/2006
Programmer
•Added decision tree to existing application
•Classifies examples into buckets based upon decisions
•Determines best decisions to use based upon average entropy
|
|
Flocking
Academic Project
02/2006
Programmer
•Added flocking to existing application
•Implemented cohesion, separation, and alignment algorithms
|
|
GBA Platformer
Academic Project
01/2006
Programmer
•Example of a GBA platformer with programmer art :P
•Demonstrated multi-layer scrolling, animation, and control
•Developed using Visual HAM
|
|
GBA Sound
Academic Project
01/2006
Programmer
•Added sound support to an existing rom
•Supports playing, restarting, and stopping a sound file
•Developed using Visual HAM
|
|
CPU Caching Scheme
Academic Project
11/2005
Programmer
•Added multiple caching schemes to an exisiting application
•Demonstrated direct mapped, fully associative, and 2-way set associative caching schemes
•Developed using C
|
|
|
Game Designs
|
Dinocore Game Design
Academic Project
01/2005
Designer
•Worked with team of four others
•Designed Wu Chang character
•Created Escape level
•Created all images
•Presented idea to classmates and instructors
Welcome to a world in chaos. Humanity has been besieged by an enemy once thought extinct. After a disturbing series of earthquakes that left no square foot of soil untouched, Dinosaurs began bubbling up from the Earth in massive waves. They have returned to reclaim the world which was once theirs. Humanity's only chance for survival is to band together. This shall be no small task, as the world's finest are fighting everywhere across the face of the Earth, leaving the rest of humanity demoralized, scared, and without true leadership. The civilians of Earth need a chance. They need a hero. You, an ordinary civilian, are your community’s last hope. You need to gather your community around you, keep them safe, and fight back as best you can to put the dinosaurs right back where they belong...underground.

|
|
|
Level Designs
|
Cliff Base - Unreal Tournament 2004 Level
Academic Project
07/2005
Designer
•Designed Unreal Tournament 2004 Deathmatch Level
 
|
|