Personal Work

Shard Engine / Dead By Destiny (C++ / HLSL / Direct3D / Newton / Getic)

Shard Engine is an ongoing educational pet project - an attempt to create a fully-functioning engine based on techniques I read or hear about, when I get the urge to program something outside the boundaries of whatever I'm working on professionally.

Primary features include:

  • HDR rendering and fullscreen postprocessing
  • BSP environments loaded from Zalsoft Getic
  • Newton-based physics simulation
  • Basic Lua scripting support
  • Custom shader/material system
  • XML-based game object declaration

Shard Engine Map PreProcess (C++ / HLSL / Direct3D / Getic)

One of the ongoing problems with the Shard Engine after allowing it to load Getic BSP was that the lightmaps Getic generates are low dynamic range and generated according to an unknown lighting algorithm, causing non-lightmapped objects to stand out starkly. The solution was to create an intermediate tool to replace the lightmaps.


Relief Mapping for Half Life 2 (C++ / HLSL / Source Engine)

A derivative of Half Life 2's standard object shader which performs Relief Mapping based on Policarpo and Oliveira's paper, originally intended for a university team project. Though initial results were positive, the original shader was very close to the instruction limit under some of the required shader profiles, and the feature was too large to fit in.


2D Physics Engine / Starship Sumo ( Java )

Out of a desire to try out a language other than C++ and a growing interest in physics simulation due to working with the Newton API, I decided to attempt to make a small game using realistic physics behaviour that could be embedded into a web page. The engine uses simple Euler integration and treats each object as a collection of convex polygon hulls, except for point objects which are treated as a special case.