Projects

A collection of games, tools, and software I've built over the years.

Echoes of Empire

Echoes of Empire

4x multiplayer space strategy game built on a large grid world with time-based upgrades and player interactions.

  • Migrated the entire backend from Elixir to TypeScript on AWS (Cognito, API Gateway, Lambda, DynamoDB, ElastiCache)
  • Implemented a Quad Tree in Redis for fast area queries on a massive 2000×2000 world grid
  • Built a matching Quad Tree in Unity with culling and pooling to stream objects as the player's view moved
  • Created a one-click deploy pipeline via GitHub Actions and the Serverless Framework
UnityC#TypeScriptAWSDynamoDBRedis
Halls of Greed

Halls of Greed

3D looter, perma-death, extraction, fantasy, multiplayer game.

  • Implemented a REST API server in Go hosted on Google Cloud Run
  • Set up Google Spanner for player data with SQL queries for storage and retrieval
  • Integrated Steam Authentication via Steamworks Web API and Auth Tickets
  • Built invite friends and join game functionality for the party system via Steamworks.NET
UnityC#GoGoogle Cloud RunSpannerSteamworks
Chambered Fate

Chambered Fate

A role-reversal puzzle shooter where you control the bullet, not the gun. Placed 14th out of 6,738 entries in GMTK Game Jam 2023.

  • Created a save and replay system that records arbitrary keyframes to replay actions after level completion
  • Implemented a small input abstraction layer for cross-platform controls without Unity's new input system
  • Built systems and prefabs to allow artists to quickly build new levels by placing enemies and checkpoints visually
UnityC#Game Jam
Jigsaw Puzzle Game

Jigsaw Puzzle Game

Production-grade multiplayer jigsaw puzzle game built with raw WebGL 2 and custom GLSL shaders.

  • Implemented instanced rendering for efficient drawing of hundreds of puzzle pieces
  • Built Blinn-Phong lighting with normal mapping for realistic piece surfaces
  • Created snap shockwave animations and multi-touch support for mobile devices
  • Wrote custom shaders for piece rendering with edge detection and adaptive outlines
TypeScriptWebGL 2GLSLMultiplayer
Rundot CLI

Rundot CLI

Native CLI tool used by all Rundot platform users to upload and manage their games.

  • Built with C# using System.CommandLine and Spectre.Console for a rich terminal experience
  • Compiled as Native AOT producing a small, self-contained binary with no runtime dependency
  • Built a GitHub Actions matrix pipeline to cross-compile for all platforms from a private repo to public releases
  • Implemented full self-update support via GitHub Releases
C#System.CommandLineSpectre.ConsoleNative AOTGitHub Actions
Luxdraft Studio

Luxdraft Studio

Browser-based 2D top-down room designer for planning lighting layouts, built with Three.js.

  • Implemented real-time illuminance calculation and heatmap visualization using lux values
  • Supported multiple light fixture types with customizable intensity, color temperature, and beam angle
  • Integrated IES photometric data file support for professional-grade fixture analysis
  • Built import/export of project files so users can save and resume room designs
TypeScriptThree.js
Taito 8080 Space Invaders Emulator

Taito 8080 Space Invaders Emulator

Taito 8080 arcade hardware emulator written in C# that boots Space Invaders, with a Svelte/WebAssembly browser frontend.

  • Implemented the full Intel 8080 instruction set, MMU, and I/O ports as a pure-C# core with no I/O dependencies, validated by CPU instruction tests
  • Modeled Taito-specific hardware quirks including the bit-shift register and interrupt timing required to drive Space Invaders
  • Compiled the core to browser-wasm and exposed the Machine API to JavaScript via [JSExport], publishing it as an npm package consumed by the frontend
  • Built a Svelte 5 + Vite frontend that renders the framebuffer to a canvas, wires audio and keyboard input, and supports drag-and-drop ROM loading
  • Wrote a Vite build plugin that fetches and assembles ROM binaries from a public CDN mirror at build time so ROMs are not committed
C#.NET 10Intel 8080WebAssemblySvelte 5Vite
CHIP-8 Emulator

CHIP-8 Emulator

CHIP-8 interpreter written in C# / .NET 10 with three front-ends (CLI, WebAssembly browser, desktop) sharing a common core.

  • Implemented the full CHIP-8 ISA from the technical reference: memory, registers, fetch/decode/execute loop, 60Hz timers, and stack
  • Split the project into a pure-C# core plus separate front-ends to experiment with architectural seams — CPU vs machine, dependency wiring, and mediator patterns
  • Built a terminal front-end that renders the 64×32 framebuffer to the console using ANSI half-block characters
  • Built a browser front-end running the C# core in WebAssembly, with a Svelte/Vite UI drawing to a canvas
  • Wrote xUnit tests for the core interpreter and used the project as a sandbox before tackling more complex systems
C#.NET 10WebAssemblySvelteVitexUnit
UH-72 Helicopter Simulator

UH-72 Helicopter Simulator

Complete glass cockpit simulator of a UH-72 helicopter built for Integration Innovation Inc.

  • Rebuilt the entirety of the project's UI from the old NGUI systems to UGUI
  • Implemented a snapshot system to replace portions of the old state saving system written in C++
  • Wrote a window management system that can launch external executables as separate standalone windows
  • Utilized a KdTree library to improve geographical-based searches
UnityC#C++UGUINetworking
Tic Tac Toe

Tic Tac Toe

Two-day personal project created to test a custom tweening library.

  • Created and published several Unity packages to GitHub
  • Implemented a basic Min-Max algorithm for the AI
UnityC#UGUITweens
Sig Fig Tutor

Sig Fig Tutor

Educational mobile app for practicing significant figure calculations, published on iOS and Android.

  • Used Google Sheets REST API to fetch quiz questions over the network
  • Followed proper UGUI techniques using custom tweening libraries instead of animators
  • Developed an event system to maintain separation of concerns between components
  • Applied the resource locator pattern as a substitute for dependency injection
UnityC#UGUIGoogle Sheets API
Secret Reef App

Secret Reef App

Interactive kiosk application built for the Tennessee Aquarium in Chattanooga, published on iOS.

  • Built an object pooling system to maintain performance on older generation devices
  • Integrated Google Analytics APIs and utilized scriptable objects for easy data entry
UnityC#UGUI
Morse Code Toolkit

Morse Code Toolkit

Published Unity Asset Store package for transcoding Morse Code into audio signals or custom events.

  • Developed a package that decodes Morse Code strings and generates rising or lowering signals to drive events
  • Created a ToneGenerator component that dynamically generates audio tones at a given frequency
UnityC#
VR Chalkboard

VR Chalkboard

VR drawing system with a custom GPU shader for real-time texture painting, inspired by Half-Life: Alyx.

  • Created a custom shader to perform ultra-fast drawing on a Render Texture
  • Shader emulates Photoshop brush functionality and supports custom brushes defined via textures
UnityC#VRShadersHLSL
Unity OpenCV Face Tracker

Unity OpenCV Face Tracker

Real-time face tracking in Unity by bridging OpenCV through a custom C++ library.

  • Wrote a C++ library exposing OpenCV functionality with a way to pass Unity's RenderTexture to OpenCV
  • Created C# wrappers for easy use of the native library inside Unity
  • Used OpenCV's built-in features to detect facial features and draw tracking markers on a RenderTexture
UnityC#C++OpenCV
Software Renderer

Software Renderer

Software rasterizer built from scratch in Java to study low-level GPU rendering and OpenGL.

  • Built a software rasterizer from scratch to learn how the GPU performs rasterization
  • Experimented with OpenGL and GLFW via the LWJGL library
JavaRenderingOpenGLShaders
JavaFX Pandora Player

JavaFX Pandora Player

Java desktop music player that streams from Pandora via a reverse-engineered undocumented REST API.

  • Wrote a Java REST client that interfaces with the undocumented Pandora REST API through reverse engineering
  • Created a JavaFX GUI to test the REST client and stream music from Pandora
JavaJavaFXREST
TN Lifesavers Conference App

TN Lifesavers Conference App

Flutter conference app for the Tennessee Lifesavers organization with cross-platform image sharing.

  • Worked closely with a UX designer to develop and implement all features using Flutter
  • Extended the flutter_share plugin to add image sharing support on iOS and Android
FlutterDartNodeJSExpressJSGoogle Cloud Services
VR Classroom

VR Classroom

Networked VR classroom simulation with synchronized avatars and interactive student mechanics.

  • Utilized UNET to implement a client/server architecture
  • Used networked animators and transforms to synchronize character animations, head, and hand positions
  • Wrote remote procedure calls allowing students to trigger in-simulation misbehaviors
UnityC#UNET
Tweeting Eel

Tweeting Eel

Automated Twitter bot that reads incoming voltages from external hardware and posts data to social media. Featured on the Raspberry Pi website.

  • Wrote Python scripts interfacing with external hardware to measure incoming voltages
  • Used Google Sheets and Twitter APIs to create an automated tweet bot
  • Created bash scripts and config files to automatically restart scripts after system reboots
  • Utilized Ngrok to create a tunnel for remote SSH access to the device
PythonLinuxBashGit
Tetromino Game

Tetromino Game

Tetris clone made in Unity to explore Dependency Injection via Scriptable Objects.

  • Implemented Dependency Injection using a Scriptable Object as the DI Container
  • Created an [Injectable] Property Attribute used by the DI system to inject properties via reflection
UnityC#Dependency Injection
Operating System

Operating System

Bare-metal operating system written in C and NASM Assembly running in a QEMU/DOS environment.

  • Implemented character printing routines for a VGA emulated graphics card
  • Wrote a basic memory manager for heap allocation and deallocation
  • Utilized the producer/consumer pattern to implement multi-threaded process handling
AssemblyCQEMUMake

© 2026 Evgeny "Zee" Vasilyev. All rights reserved.