A collection of projects created and contributed to by Oak.
A short NES-style game made as part of Capital Prawn. I served as lead programmer, game designer, artist, and composer. This inluded programming the majority of the game logic, drawing all sprites and animations, UI, a custom font, and a soundtrack. Most of the game was made within the design constraints of the NES console.
Fluent Coroutines is a tool for writing Unity3D Coroutines in a declarative, fluent syntax. The Coroutines are run by a scheduler, allowing users to define and use asynchronous functionality entirely from within synchronous code.
My time spent here has been implementing prototypes for various games in a variety of technologies, including a React/Redux front-end page, an internal library for event-driven behavior in Unity3D, and a pretty ridiculous number of different things for a game made in Godot (take a look at Book of Awakenings in the projects section!).
Led game UI development for PC, VR, and Mobile platforms using Unity3D. This includes having written an internal library for procedurally generating UI meshes; a hexagon tile menu that is generated from data, which allows for high levels of customization by design teams without any programmer assistance; a custom input handler for the Vive controller; another data-driven procedural UI, but this time for radial menus; a strongly-typed wrapper for Unity's WWW API to simplify and standardize communications with REST endpoints... just to name a few. :)
Rearchitected static webpage into dynamic web application running on Linux server in AWS; managed and deployed web application as docker container; managed and configured DNS and iptables; built and administered a login system using MongoDB.
Designed and coded responsive front-end web application and internal data-driven tools in Salesforce; wrote a custom templating language used for referencing database information in automated emails; wrote a data-driven system for dynamically displaying messages on pages (e.g. to display notices about website downtime); used more reflection than I should have because I was so new at things, hah. :D