Games
Dwarrows (PC, Peaceful Adventure/Town-Builder)
Generalist Programmer | Technical Lead
Overview
A charming adventure & town-builder hybrid with a focus on peaceful questing, puzzling, town-building, and exploring. Dwarrows is developed by Lithic Entertainment, a small company I founded with my partner.
The game launched in English on February 28th 2020 for PC|Linux|Mac, and will be available on XboxOne soon. In October 2016, Dwarrows was successfully funded on Kickstarter and it was in a closed Alpha for Kickstarter backers from August 2017 until release in February 2020.
The game is currently available on Steam, GoG, and Humble Store.
I began prototyping the game in 2012 using UDK, and we began production in March 2014, switching Unreal Engine 4 once it became available. My role on this project consists of many hats, but I am primarily the programmer on this project.
My Involvement
- As the sole programmer, I made use of UE4, C++, and Blueprints to create the game.
- UI: Used C++, Slate, and UMG to build dialogue, inventory, townsfolk, and city management UIs.
- Town-building: A grid based system supporting multi-tile structures. Designed to support a high numbers of tiles and structures in a multi-player environment, and to support dynamic AI/Player modifications and interactivity.
- Artificial Intelligence: Built using a combination of Behavior Trees, Environment Query System, Navigation subsystems, and an in-house Utility Theory Decision toolset. Townsfolk aim to fulfill their needs as well as possible with the structures provided by the player, and wild animals roam and flee to safety from dangers.
- Third-Person Adventure: Optimized to support three hot-swappable characters in a large open-world setting. Developed tools designers to build 3D platforming puzzles and branching stories/quests.
- Saving Loading: Built a fast & flexible framework to save the game at any point during gameplay, other than cutscenes. The system supports restoring actor and component properties, including object pointer references, and supports async read/writes.
- Animation Programming: Using UE4's C++ and Blueprint Animation tools, I designed and developed animation behaviors. Example: Ladder climbing, using tools (eg. wood axe, hammer, treasure finder), floppy clothing bits, run/jump/walk, etc...
- Optimization: Using the profiling tools built into UE4 and Visual Studio, Blueprint Nativization, and Level Streaming, I was tasked with optimizing the game to reach optimal framerates on mid-range devices.
- Console: Ported the game to XboxOne (soon to be released)
- Shader Programming: Made use of UE4s Material editor and HLSL to create many post processing, object, and landscape materials.
- Created a Scripting subsystem (using Shunting Yard algorithm) and Dialogue system using Blueprint scripting language for the UE4 marketplace
Horizon (PC, Turn-based Space Strategy)
Associate Game Developer | Technical Lead
Overview
Horizon is a 4x space strategy game for PC, developed by L3O Interactive Inc.. It was placed in Early Access on the Steam platform in July 2013, and finally released in February 2014. Horizon was built with a fully custom C++/DirectX 9 engine.
Between January 2012 and August 2014, I worked as one of two core/generalist programmers on this project.
My Involvement
- Led team of 3 programmers
- Designed, implemented, and revamped core systems with c++ for Horizon
- Ported existing graphic engine from DirectX 7 to DirectX 9
- Developed an AI subsystem for the game's AI behaviours
- Designed and implemented XML based UI, Quest, and Dialogue systems
- Created developer and user tools using C# and XML
- Supported the game for several months during Steam Early Access
- Supported the game for ~6 months post launch
- Built VFX and materials using HLSL
Cosmic Castaway [GAMEJAM] (PC, Point & Click Adventure - TOJam11 - UE4)
Sole Programmer
Overview
A point-and-click adventure game in which a wayward astronaut finds himself stranded on a strange asteroid, developed in Unreal Engine 4.
Our team designed and constructed this game from the during the three day game jam. I was the programmer for this project.
The game can be downloaded here
My Involvement
- Programmed and implemented a dialogue system
- Developed an inventory system
- Developed a 'toast' notification system for game events
- Programmed interactive environment elements for puzzling
- Integrated character animations into the game
- Created shader effects for the game environment and special 'ghost' ability
Game Over [GAMEJAM] (PC, Peaceful Adventure - TOJam9 - UE4)
Sole Programmer
Overview
Game Over is a short 3D Platformer Adventure that was made during TOJam9 using UE4. It follows the brief journey of a ghost child discovering that he is dead. The player has the ability to access the "spirit world" to view paths and portals not visible to the living.
Our team designed and constructed this game from the ground up during the three day game jam. I was the main programmer for this project.
The game can be downloaded here
My Involvement
- Programmed interactive environment for puzzling, adventuring, and cinematic triggers
- Integrated and binded skeletal animations into the game
- Created shader effects for the game environment and special 'ghost' ability
Tools & Engines
Embeded Scripting and Dialogue System (UE4 Marketplace content)
Sole Programmer
Overview
The Blueprint Dialogue System is a versatile dialogue system with an embeded scripting engine, built using UE4' visual scripting tools (Blueprint), and GUI tools (UMG).
The script interpreter was created using a modified Shunting Yard algorithm. It's main purpose is to allow the dialogue writer to execute script from the dialogue spreadsheet inline during a conversation.
My Responsibilities
- Designed and implemented the scripting system in UE4's Blueprint Scripting engine, supporting many of the expected features of a programming language
- Support end users troubleshooting and providing video tutorials and documentation
The Elpis Engine (2007 - Custom C++/DirectX 9.0c Game Engine)
Sole Programmer
Overview
The Elpis Engine has been built in C++ and Lua, using DirectX 9.0c for rendering, and XACT3 for audio. Havok was also used for Physics and Animation.
The engine was never used in any finalized products. It was the basis for my other engine (Eris) which was built with a component based architecture, supporting networking and 2d physics.
Engine Features
- Terrain rendering from a height-map : Related Blog Entry
- 3D physics integration
- Mesh and bone animation
- 2D animation with keyed audio cues : Related Blog Entry
- LUA Scripting systems: Related Blog Entry
Scenario Editor (2006 - C++/DirectX 9.0c Game Editor - College project)
Sole Programmer
Overview
The Scenario Editor was my very first game engine's level editor.
The project had begun in college with a few friends. The engine and much of the scenario editor were designed and developed by myself, while components such as custom resource containers, utilities, some UI elements, and embedded scripting was the work of my peers.
Editor Features Demonstrated in the Video
- Load, position and rotate .x file models from a chipset
- Creating point lights and directional lighting
- Generating terrain
- Adding and editing running water
- Using the mini-map