Refactored Engine

Programmed in C++, uses emscripten to compile to be run in a web browser.

See for live in-browser demonstration.

Flash Renderer using Stage3D

  • Built in Adobe Flash Builder using the AIR framework
  • Used Stage3D API to use GPU rendering available in Flash platform
  • Port of previous project in new language to become better accommodated with ActionScript 3 (AS3)
  • Valuable knowledge gained: negative impact of language’s garbage collection on performance and how to avoid it
    • Good experiment, but wouldn’t pursue making a performant game in AS3 in long-term, especially on mobile
    • Also poor support from Adobe: AGAL mini-assembler isn’t included in Stage3D library, mip-mapping examples from Adobe tutorials are flat-out incorrect, etc.
  • Download AIR executable here (requires Adobe AIR Runtime)
    • Controls:
      • WASDQE move camera position
      • arrow keys move camera orientation
      • F enables/disables frustum culling updates

Rendering Engine

Ambient Occlusion

Screen-space ambient occlusion effect before it’s added to the scene from 3ds Max

Ambient Occlusion

Ambient occlusion on a scene with textures turned off – note the “smoky” areas


A Quake 3 level running in my custom engine

GOAP and A* Demo

  • Based on the 2006 GDC talk from Jeff Orkin
  • NPCs have a certain state (hunger, amount of food, amount of money, etc.)
  • NPCs also have actions they can perform to change their state (eat, bake bread, find money, etc.)
  • In order to reach a desired state (not hungry, rich, etc.), they formulate a plan based on the actions they can perform and execute it
  • Example code can be found here

GOAP A-star AI

Cloth Simulation Demo (two-person collaboration with Alex Welsh)

  • Interactive cloth simulation
  • Physically push cloth, or cut parts of it out, or blow wind on it to make it wave
  • Verlet integration physics
  • Wiimote connected to computer via bluetooth to aim pointer (cooler in theory than in practice)
  • Project folder can be downloaded here


%d bloggers like this: