Welcome to my projects. Feel free to take a look at some of the games, tools and writing that I've been a part of.

Zombie Hut

Zombie Hut is a top-down 2D shooter following the adventures of a post zombie apocalypse pizza-boy. It is written in a from-scratch C engine with art by James Farris. 

I joined the Zombie Hut team roughly 1/3 into the development cycle of the game. Prior to that I'd been consulting on the design and team dynamics of the project. After a team restructuring, I came on as the Producer (Project Manager) and gameplay programmer. This was my first project of this scale (full product, 4-5 member team, multiple systems) and I learned a lot from the experience. Due to the schedule we followed a very low ceremony SCRUM management style. We didn't do much testing until the 3rd or 4th sprint, but looking back on the post mortem I wish we had begun earlier. We were able to identify some UI, control and overall UX issues but feel with earlier testing we could have improved the mechanics quite a bit.

I was responsible for the item system, including coins and all other interactive in-world objects. The UI was a shared project, although I worked on the menu system, which was inspired by the factory design pattern. Items were as well, with the specific data for items being read in from XML files. I fondly recall making the timer, as well as the "timer stamp" that drops in at 10 second intervals. I definitely enjoyed writing a linear interpolation function in C (because I love math like that). Speaking of math, another fun bit of code was the grenade, which if you'll notice follows a fake 3D arc out towards the viewer when it's thrown. This was a fun project, but I learned later that I much prefer C++ to C for game development. I'm still very proud of how this game turned out, however.

Feel free to download and play here. Unfortunately due to technical difficulties that page omits Kyung-Huk Kim, our other software engineer.

Rock-It Rails

Rock-It rails is a Greaser-punk (think steam-punk, but in the 50's) 2D platformer where our main character Penny must avoid obstacles, collect chemicals and manipulate the rails that run throughout the level in order to save the day!

Rock-It Rails was a very different project from Zombie Hut. In addition to having a dedicated team of wonderful artists, a longer production time lead to some significant missteps early on in the project. Because both this and Zombie Hut were projects for school, we needed to start on the work before we ever really had a clear vision. Rather than taking a truly iterative design model to heart we tried to come up with a shared vision and list of requirements before each sprint. This lead to some dead-ends and significant code base refactorizations. Looking back almost all of these issues could have been alleviated if we'd followed a more Agile process. Because of a great Technical director (David Sacks) and Tools programmer (James Farris) we had a great engine running early in the project. You'll see in a later video how powerful our tools were, and the engine had DirectX 10 graphics, backend features such as a mini-dump system for sophisticated debugging, a log system for debugging and testing, and a drawable physics environment (done by yours truly). These, combined with a component-based design engine, would have allowed very quick iterations to follow where the play testers lead us.

This is not to say I'm not proud of the end product. Custom sounds, with the recording assistance of Ian Shores, the sophisticated features I mentioned and amazing art from the art/design team lead to a product that I'm proud to show. I've always found it's important to take to heart the lessons of our failures, because in addition to making sure they don't repeat we can learn broader lessons from them. I would not be such a strong proponent of Agile development today had I not learned the perils of upfront requirements/design from this project!

This engine was written from-scratch in C++ using DirectX 10, Fmod for our audio engine and AntTweakBar for our editor. My code contributions to the engine were a 2D physics system with drawable physics objects as well as the component and object systems. This was an interesting and at times frustrating task for me as I was not familiar with the component based design pattern nor had I ever implemented a factory design pattern. As both of those were needed to form the foundation of the object system, this was a challenge! I learned a great deal from the implementation, and not just for those specific design patterns. It was eye-opening to realize that while a patter can be a very useful tool, it often presents it's own challenges and can rarely be used out of the box. There were a number of decisions to make, for example, in regards to object components. Does it make sense for an object to have more than one component of any given type? If so, a hash table can't be used efficiently without an arbitrary naming scheme. It makes sense for a component's key to be "PhysicsComponent," but less sense for one to be "PhysicsComponent1238." In our instance there were so few components per object ( < 10) that using a vector or even list wasn't terrible, but there were many issues like that to resolve. I much preferred these architectural challenges to that of the physics system, which deals primarily with real-time collision detection. There are many great texts out there dealing with that topic (such as Christer Ericson's Real-Time Collision Detection, which I heavily referenced) and it didn't present as many architectural intrigues for me.

The final windmill design from the uncompleted project, Towers of Mountainfall. Property of Wizante Studios

Towers of Mountainfall

Towers of Mountainfall was an iOS game from Wizante Studios and I was pleased to work as the creative director of the project. Due to the non-disclosure and current status of the game I cannot discuss details of the project, but will say that it was an invaluable Project Management learning experience. I oversaw the art direction of the game, in addition to heading the web layout and personally did all the writing for the game. The website as since been taken down, but can still be viewed here. I invite you to read the journal entries, look at the website and browse some of the concept art.

Galactic Conquest

Currently under development using the Unity (TM) engine, the prototype for this game took second place in a Microsoft Game Jam. You can check out some initial info in the wiki here. Expect more to come!

Signal Lost

This project was my foray into 3D graphics using DirectX 11.2. Though the project was not finished, I was able to create a full 3D pipeline with custom lighting, a hot-swap shader system, 3D model loading and animation system as well as several other common 3D graphics functionalities, such as skyboxes, fog and animation blending. Due to the current status of the project, images are currently unavailable but will be put up as soon as possible.