Updates

Project Summaries

Nancy Drew: Warnings at Waverly Academy:
• This was my first time working on the long-running Nancy Drew Adventure series. (This is game #21!) I implemented new engine features, created puzzles in lua, and supported a team of 2 additional programmers, and 3 scripters.

Nancy Drew Dossier: Resorting to Danger:
• The second in the series of Nancy Drew "casual" games from Her Interactive. Again, I was the lead programmer on this project. I primarily created tools and added features to our engine. Additionally I supported a team of 1 additional programmer and 2 scripters.

Nancy Drew Dossier: Lights, Camera, Curses:
• I was the lead programmer on this "casual" game from Her Interactive. I added features to our proprietary engine, implemented core game mechanics and puzzles in Lua, and supported a team of 1 additional programmer and 3 scripters.

The Cody Capers: Cody Pops the Case:
• I was the sole programmer on this casual game from Her Interactive - built using
Torque Game Builder (Pro). I modified the engine to add additional features, new UI objects, and bug fixes. I also implemented the game logic in TorqueScript.

Project H.A.M.M.E.R.:
• I worked as a scripter on this cancelled project, created by Nintendo Software Technology. During my relatively short period there, I used NST's proprietary scripting system to implement the functionality of enviornment objects.

Sims 2 (GBA):
• This game was created by Amaze Entertainment during the summer between my junior and senior year at DigiPen. As a QA Tester I executed test plans, performed regression testing, and wrote detailed bug reports.

Project Popstar:
• This is the first project from Rockin' Sweet Studios. For this game I am doing absolutely everything - I am the sole programmer on this project.

Yaris Express: (Toyota Yaris Mobile Game Development Competition Grand Prize Winner (2006))
• This is a game project created for a competition held exclusively for DigiPen students and sponsored by Toyota. The challenge was to create a cell phone game in J2ME (and then later ported to BREW) to run on Nokia 60-series phones to help promote the new Toyota Yaris. I created this project along with Johnney Nguyen from the Brigades/Sea of Chaos team; this was our first project in Java. For this project I had my hands in every aspect of the game.

Brigades:
• This was my seventh and eighth semester game project, and also my final student project. For this game I wrote the math library, the physics engine, the collision system, the animation system, the culling system, and a maya exporter (written in C++ using the Maya SDK).

• Physics Engine - Projectile motion including air resistance and gravity, full 3D rotational physics with impulse based collision reaction using inertia tensors, gravitational and magnetic forces, and torques.

• Collision System - Models are made of bones, and each bone has an associated mesh; so the hierarchy has an overall bounding volume, then each individual mesh has a bounding volume, and then an oriented bounding box tree is created from the tris of each mesh. The terrain is handled a little different - a quad-map is created from the terrain mesh; for this, I divide the space of the mesh into quads whose size and number depend on the number of tris per square unit of the mesh. I then associate each tri to a quad. So when I need to detect collision with the terrain, I can simply index into the quad map with a position and radius and it will return all the tris I could possibly collide with. Additionally, many collision calculations are simplified using good-fitting bounding volumes, for example - cylinders are used to estimate soldier on soldier collisions.

• Animation System - Created my own animation format to best suit our custom model format, where key frames include both a position and an orientation. The system smoothly blends any number of animations, eases out of animations, and has a priority system to override animations, and all of which can be user controlled. With the way it is set up, animations [internally] do not run on an entire object or character, they only run on the individual meshes they control, so you could have a different animation running on every part of an object without any complication.

• Culling System - Runs on a separate thread and uses a super-frustum, whose planes are computed from the camera/perspective transform matrices. The system actually contains a collection of frustums so that you could easily switch from one to the other when culling to different cameras.

Sea of Chaos: (IGF Student Showcase Winner (2006))
• This was my fifth and sixth semester game project, and also my first 3D game project. For this game, I wrote the math library, the physics engine, and the collision system. Additionally, I also implemented the fish and birds, the loading/saving system, the credits, designed and implemented the special weapons, designed and created one level and one additional area, wrote dialog, and created several menus and part of the HUD.

• Physics Engine - Projectile motion including wind effects, air resistance, and gravity, as well as ship motion including buoyancy, and fluid drag. 2D and some 3D rotational physics with impulse based collision reaction.

• Collision System - Meshes are simplified anywhere from 33% - 66%, then each triangle in the original mesh is linked to a triangle in the simplified mesh. The simplified mesh is then subdivided into either 4, 8, 16, or 32 segments based on its size, type, and number of tris. The only simplification in collision is that mesh / mesh collision detection uses the simplified version of the meshes.

Barren: Wasteland Memories:
• This was my third and fourth semester game project. For this title, I implemented the controls module using DirectInput for keyboard and gamepad support, the attack system including projectile management, 2D collision, the dialog system, cheats, everything dealing with the towns, and also designed and created seven levels.

Weapons of Mass Destruction:
• This was my second semester game project and was my first experience with DirectX. For this game, I implemented the sound system via fmod and created/implemented all the info screens.

Drumroll!:
• This project was completed during my first semester, using DigiPen's ProjectFUN game engine. For this project I designed and implemented the point system and win conditions, and created a majority of the menus.

Textreme Golf 2K3:
• This was the first game project that I ever worked on - an ASCII golf game. For this game, I implemented the caddy, putting, multiplayer, the info screens/displays, and designed two of the holes, and all eighteen greens.

PSO Item Manager:
• I wrote this program with the sole purpose of learning C#. The program allows the user to create and maintain a database of items from the Phantasy Star Online game series and create an html formatted tradelist from it, all via a user-friendly interface.