Project Highlights


I had some down time after my bike trip while looking for work, so I decided to clone an old game that I loved as a kid, Diamonds (by Varcon Systems, Inc.) using JavaScript as a way to learn more about the language.

I chose one of the more minimal game libraries, Crafty JS, to build this as I didn't want to "cheat" that much. I'd currently say that it is 90% done, though I know the last 10% would take longer than the rest to finish. I implemented most of the basic functionality and copied over many levels (using a level editor that I built), but really wanted to be able to play this on mobile. It sort of works on phones/tablets, depending on the platform, but I haven't figured out the right balance of slowing the game down, leaving room for thumbs, perfecting touch controls, etc to have it both fun and not completely impossible.

The code and instructions

Play it here

"Lost Marbles" — Advanced Game Development Capstone

My senior project was a game developed in a group of five. Our game was a platformer/puzzler where the player takes the role of an adventurous marble attempting to find someones "lost marbles."

Of all projects that I have been involved with, this is certainly the one I am most proud of. We were under tight deadlines with complete creative control and a team of only coders but wound up succeeding at creating a game that was fun to play.

Game website

Gameplay videos

View the code

Game installer

Campus paper about the class Link is to an image from the wayback machine as the original article is no longer online.

Procedural Valleys and Game Development -- Basic terrain generator

One of the projects for my procedural content class was to procedurally generate a terrain heightmap, add a valley and then allow a player to navigate through this. Obstacles and decorations were placed procedurally to give a more enjoyable game play experience.


Info and code can be found here.

Procedural Valleys and Game Development -- Town map generator

For another class project I attempted to quickly generate procedural towns for RPG or Rogue-like type games. The application is still very rough and could use many improvements.

It is done in Processing so that the world can be shown as it is built. This greatly slows down the actual generation process but is interesting to watch and very helpful for debugging. The technique used is agent based, modeled after the technique discussed in this paper by Thomas Lechner et al.

More info, pictures and code can be found here.

Google AI Challenge

I participated in the Fall 2011 AI Challenge ants game. While my bot was rather unsuccessful, I spent a good bit of time learning about how to optimize Python code trying to keep up with the much more efficient C/C++ bots. Because of this, I think the code I used for searching is more interesting than the actual bot code and it can be found here.

Ray Tracing — CSE 681

The coolest class I took as an undergrad was a ray tracing class. We had one quarter to implement a ray tracer from the ground up in C++ adding new features to our growing project every week. The images below are rendered using only code written by me during the quarter.

Features implemented:

View the code

Project Euler

View the code

Intro to 3D Image Generation — CSE 781

The sequel to the standard OpenGL class that many undergrads take. Using OpenGL and GLSL to produce effects such as renderings of PLY models, shadows, bump mapping, and environment map reflections.