Major Projects
Munch!
Genre: Edu-tainment
Debut: June 2008, DeVry Technology Fair
Group Size: 2
Language: Java (primarily swing with some awt)
Personal share: Custom loading algorithms and script interpretation, game state engine, image loading and handling, drawing algorithms, graphics creation, project manager
Munch! began as a senior project in March 2008 in OpenGL. My partner and I found that our lack of experience wouldn't allow us to get the project done within the time limit. After a month in, we made the choice to switch to a language we were both very familiar with: Java.
After the switch, production flew. I began with the foundational game engine, moving onto the graphics engine (loading algorithms, storage data structures, and drawing methods), while my partner began on gameplay managers. We continued to produce various managers and data structures throughout the following month, reaching mid-alpha well within the expected time. Our development was best done sitting next to one another in the computer lab, updating the project on the SVN server, then updating frequently throughout the day.
The project is still currently in production. We plan to complete it as a school district in Southern California wants the project. We plan to optimize the sound manager, create a gui-based level creator, and add custom level-loading algorithms, and perhaps a story mode as well.
Code Samples: Game: the game's state engine and core engine
State: parent state class used by the game state engine
SpriteImage: a custom-made sprite class used for the game's graphics
ImageManager: the core image engine which stores images and draws them
Half-life 2 in 3rd person
Genre: 1st/3rd person shooter
Debut: Game Developers Conference, San Francisco, 2008
Group Size: 2
Language: C++ using Source Engine
Personal share: Code manager, code advisor
This was perhaps my most unusual project. I served as an advisor for someone with less experience, advising how the objects were interconnected in the engine, and how to add new objects and modify current ones. I was not able to code due to problems with source control (which lead me to be the source control server) because of the size of the project and engine, but my partner wanted me on the project due to my experience and understanding of an object-oriented program and ability to learn an engine's layout.
This project was featured on the show floor at the DeVry University booth. The project was in beta at the Conference, and allowed the player to switch between first and third person views dynamically.
Grip! Grab! Gridlock!
Genre: Puzzle
Debut: Planned for IGF 2008, but never finished
Group Size: 6
Language: C# with XNA
Personal share: custom data structures to hold active game pieces and secret squares.
The idea behind Grip! Grab! Gridlock!, better known as G3, was modifying Tic-Tac-Toe for four players and an ever-expanding board. There would be secret pieces, such as landmines, to add some strategy and competitive gameplay when players are attempting to claim regions for points and to dominate the board.
My job was to create an expandable data structure which could hold the grid squares and what was in them. The challenge was finding a suitable base structure. I created a linked list which could expand in all four directions. I had to build this data structure from the ground up, as the node class in the collections library couldn't be inherited, rendering the linked list class impractical.
Unfortunately, due to poor management and a shakey vision, the game was never completed and eventually the code was lost.
Shattered
Genre: Action/adventure
Debut: Midterm project, 2007
Group Size: 8
Language: C# with XNA
Personal share: Project manager, Creative director
Midterm project is a DeVry class done 5th semester into the career. This is the first official project required for school and done with relatively little experience. My greatest problem was understanding project management and project dependencies, organizing time, and presenting a clear vision. The project eventually flopped, however, this was one of the greatest experiences the entire team had. Each member took their experience from this project to improve future projects. I took my experience managing this project and took on the same roles, as well as programmer, in my senior project, Munch!
Infinite Velocity
Genre: Dog fighter
Debut: Game Developers Conference, San Francisco, 2007
Group Size: 5
Language: C# with XNA
Personal share: AI
I came on the project late, about a month in. I was invited due to my experience with data structures. My task at hand was to create an AI engine in a language I didn't know. I taught myself C# and began constructing an AI engine using a finite state machine. Any entity could implement its own state machine and handle messages sent to it through the message pump.
The states were in tact and functioning before the Conference, however tweeks to the physics engine broke the automata, so the AI was not seen at GDC. The game, however, was featured at the DeVry University booth with poor 3D programmer art (which wasn't thought to be possible with this version of XNA). The ships resembled nacho chips, so the game was lovingly dubbed Flying Nachoes.
Code Samples: FSM: the finite state machine
State: A basic state used by the State Machine
Journey through Game History
Genre: Edutainment / dungeon crawler
Debut: GSP110 class, 2006
Group Size: 4
Language: C++ (console)
Personal share: data structure advisor, optimization
The final project in GSP110, which is the intro-level class for the Games and Simulation Programming (GSP) major, was to design a game and create both technical and design documentation. As a challenge, our professor offered extra credit to anyone who could create a demo of the game. The team took the challenge, and we designed a dungeon crawler using purely ASCII art. It was an rpg that lead the player through video game history, meeting with famous people throughout history, collecting items to solve puzzles, and defeating the evil fuzzy bunnies. The code for this game has, unfortunately, been lost