Abyss

  • Junior Team Project (5 programmers)
  • Languages: C++, HLSL

Abyss is a 3D platformer where the player must extrude objects in the world to create new platforms in order to reach the goal.

My primary responsibility was the development of the graphics engine, which utilized Direct3D 9 and shader model 3. The game features deferred lighting, projective texturing, cascaded variance shadow mapping, bitmap fonts, particle systems, hardware instancing, and edge detection. In addition, the engine supports skinned animation and normal mapping, but we opted not to use either feature. I developed an XML-driven material system which automated passing data to shaders, and also implemented an overlay system used by the HUD and menus to automatically adjust to different aspect ratios and screen resolutions.

I also worked on the content pipeline, developing a model exporter to convert Autodesk's FBX format into our internal binary format which was optimized for fast loading. This enabled us to develop our models using either 3ds Max or Maya and import the asset into our game. The exporter supports rigid and skinned meshes, skeletons, key-frame animations, multi-texturing, generating tangent-space vectors for normal mapping, adjacency lists, and bounding volumes.

Download: Windows (required shader model 3)

Gloaming Hour screenshot showing a block casting a shadow Gloaming Hour title screen Gloaming Hour screenshot showing player jumping on newly formed shadow

Breakin' Loose

  • Sophomore Team Project (4 programmers, 1 artist)
  • Development Tools: C++, Lua, Boost, DirectInput, XInput

Breakin' Loose is a 2D game where you battle for hamburgers against a greedy piñata. I was the Technical Director for Breakin' Loose and responsible for the design of the core engine and communication between engine subsystems.

I implemented a data-driven object composition system, and improved an event-driven messaging system. I was also responsible for the input, supporting both keyboard and Xbox 360 controllers using DirectInput and XInput. I integrated Lua into the engine to allow for scriptable behavior to be attached to game objects, and utilized the system to implement scriptable menu system and game states.

Breakin' Loose screenshot showing burgers flying out of a pinata Breakin' Loose title screen Breakin' Loose gameplay

Robot Rock

  • Freshmen Team Project (4 programmers)
  • Language: C++

Robot Rock is a text-based rogue-like game where you climb a building fighting out-of-control robots in an effort to save your parents. This game was a single-semester project during my freshmen year developed as a four-person team.

For Robot Rock, I wrote the battle system to support both ranged and melee attacks, as well as the AI for the angry coffee-machine mini-boss who launches exploding cups of java. I also integrated a logging system to record information about play-testers to give us more information to make modifications and balance the game.

Robot Rock miniboss Robot Rock boss Robot Rock gameplay