Orb
Custom C++ engine · 2017
A first-person puzzle game on our first engine. I wrote its physics engine and serialization, and turned
Unity into its level editor.
More info
C# vs. Wren
Research · scripting for a C++ engine
Which scripting language should a C++ engine embed? I measured runtime speed, compile time and the cost of
calling into C++.
More info
Ghostebash
VR Amsterdam · free-roaming VR · 2021 — 2022
A multiplayer ghost-hunting game for a VR arcade where groups share one real room. Sole programmer:
local multiplayer with Mirror, full-body IK and physics interactions.
Abyss
2D Metroidvania · sole programmer · 2018 — 2019
A hand-drawn Metroidvania about a demon sealed at the bottom of an abyss. As its only programmer I built
combat, enemies, healing, parallax layers, floor-material footsteps and a depth-layer editor for the artists.
Back to Bed!
VR · 3 weeks · 2 programmers · 2016
My first VR game, made when consumer VR had just launched. VR player controller, menus, an event system and
a node-based dialogue editor for the designers.
Smaller assignments from Saxion's game engineering programme, each built on the course's own framework.
Game physics
C# · GXPEngine
Ball physics from first principles: velocities, circular motion, and collisions and reflections against line segments.
SAT collision detection
C# · Unity
A small physics manager with custom rigidbodies and separating-axis collision tests, outside Unity's own physics.
Octree broad phase
C++ · our first engine
An octree that limits collision checks to nearby objects in our engine's physics, with a stress-test scene of random moving colliders.
Game AI
C#
Agents driven by finite state machines, pathfinding on node graphs, and minimax players for Connect Four and Domineering.
Networking
C# · Unity
A TCP chat server that handles several clients at once, with a Unity client and its own packet serialization.
Audio programming
C#
Synthesizers with polyphony, effects such as a bit crusher, low-pass filter and delay, and MIDI playback.
3D rendering
C++ · OpenGL
Materials, textures, lights and GLSL shaders on a small OpenGL framework.
Lua scripting
C++ · Lua
Embedding Lua in C++, ending with Lua bindings for our first engine.
Procedural meshes
C# · Unity
Meshes generated in code: a mesh builder, rooms, and a spline editor that turns a curve into a lathed mesh.
Tiled level loading
C# · GXPEngine
Loading levels made in Tiled (TMX) into a game, structured with model-view-controller.
Game architecture
C#
A component-based engine core with separate graphics, input and physics managers.
Editor research
C++ · ImGui
How engine editors are built: immediate versus retained mode UI, plus an asset browser and JSON scene prototypes that fed into Tristeon's editor.