Services I Offer

- Pixel Art & Animation
- Programming in Unity/Godot

Games I've Worked On

Star Apprentice (Series)

Will-o-Works Studios

Dazzling Danmaku Detective
Roles: Artist, Programmer, Writer

Magical Murder Mystery
Roles: Artist, Programmer*
*(v2.x) Rebuilt the game in Godot.

Vain Ascendance

Team Scarlet

Roles: Artist, Gameplay Programmer

Game Jams

Star Apprentice
page under construction

Programming Highlights

These are solutions I've created for games I've worked on. If you'd like me to solve similar problems for your game, please contact me!

Text Shatter Effect

for Star Apprentice: Dazzling Danmaku Detective

Problem - Have text shatter when it is shot
Goals:
- Generate for arbitrary input text
- Pre-generate shatter pattern
- Allow regenerating the pattern in response to gameplay

Render Text to Texture
Use a render target texture to capture various text. In Godot, accomplished using the SubViewport node.
Generating Shatter Pattern
We generate a simple shatter pattern using polar coordinates. (The results are good enough that we do not need to use a more complex shatter algorithm.)
We expand from the origin point (usually the position it is shot) and create a strip of quads until a quad would be outside the bounding box of the texture. Noise is applied to the vertex positions to make it look random.
When generating quads, each one generates a velocity direction (outwards from center), and rotational velocity/axes/center point. These also have noise applied.
These are cached for drawing the mesh.
Drawing the Mesh
The shatter animation is defined mathematically, using a t value as its progress. We calculate the transformation of each vertex using the cached values for each quad.

Dialogue Editor and Markdown Importer

for Star Apprentice: Dazzling Danmaku Detective

Problem - Streamline import and management of dialogue sequence data
Goals:
- Graphical editor to minimize human error from memorizing syntax
- Easily preview sequences in multiple languages
- Import dialogue from a writing software
- Manage strings table/CSV keys

Writing and Exporting From Google Docs
Dialogue is first written in Google Docs. Headings define the scene, with each heading level defining part of a "folder" structure. Also features event commands and comments. When ready, the script is exported as a markdown (.md) file.
Importing Markdown Files
The importer reads the markdown file and extracts information from lines using Regex queries for each type of line it can read. It can write to a strings table CSV based on the scene's heading. It can also prefill a DialogueSequence resource with the data in the script, which saves time in creating these sequences.

Dialogue Node Editor

for uAlberta Game Design Microcredential

Problem - A node based dialogue editor usable by beginners/students in a lab exercise environment
Goals:
- Graphical editor that shows the flow of dialogue branches

Dialogue Nodes
Each node is a continuous sequence of dialogue lines. When finishing, the node can move to new nodes based on transition conditions and multiple choice questions.
The editor scans the currently opened scene to find interactable objects, and inserts these into the graph data.
Constructing Scene Nodes
The system instantiates an object structure based on the dialogue graph data, and connects them by event callbacks.