Comic Thing

ASP.NET Core Web Application

2020 – Independent Project

Comic Thing is a small web application that serves a web comic, allowing comics to be uploaded and posted through a web interface. It uses ASP.NET Core and Entity Framework Core, with a mix of MVC and Razor Pages and an SQL Server database. This was my first experience with ASP.NET in years, and it’s been a generally pleasant experience though it had changed a lot since I last worked with it. I made many beginner mistakes, but have learned a lot since, and am planning to come back and rework this with what I’ve learned.

Ascension III

Desktop Game Built with Unity

2016-2021 – Independent Project

Ascension III was my flagship project for years. The elevator pitch was science fantasy RPG featuring gunfights against dragons. It was a huge project, although I managed to bring the scope down to something doable and had overcome many showstopping hurdles, releasing two limited but coherent demos. Ultimately, I moved on from the project- I had somewhat lost interest and realized I much preferred smaller projects in general. Nonetheless, the reusable framework I started for Ascension III powered and continues to power many of my other projects.

Demo: on | Source: on GitHub


Multi-engine game

2020 – So Bad It’s Good Jam *4th place*

RiftBreak was my entry to So Bad It’s Good Jam 2020, where the goal is to make a game that is bad, yet good. While presented as a simple first-person shooter, RiftBreak actually has several gameplay sections on different engines coordinated through a launcher. I used a variety of technologies, including .NET Core, Windows Forms, HTML5/JavaScript, and Unity. It was a technically complex, overkill for a silly game jam project, and I went in figuring I had about a 90% chance of it actually working.

Download: on

Bang Ouch

Multi-platform Game Built with Unity

2020 – BC Game Jam

I hacked together Bang Ouch in an hour as a backup game when my original concept didn’t work out. Its gameplay is simplistic to put it politely, and its art very crude, but it was an interesting and useful experience. I used my homegrown framework, developed for Ascension III and other projects, and found it had finally matured to the point where a working game could be made very quickly. After the jam, I ported Bang Ouch to Xbox One via UWP as an experiment. This required a few changes but was a surprisingly smooth process overall.

Download: from the web page | Source: on GitHub

Beach Defend 2000

Desktop Game Built with Unity

2019 – So Bad It’s Good Jam *Third Place Winner*

So Bad It’s Good Jam is a one-week, online game jam where the goal is to make a game that embodies the idea of so bad it’s good. It’s a difficult balance to get right, and there’s also a modifier, which was retro in 2019. I made a turret gunner game with the style of late-90s/early-2000s “value” software, plus fake microtransactions. It includes a (fake) store website, (fake) crack, setup utility, and CD audio support. The biggest challenge was building all the components and getting them to work together, while also building the game with limited time.

Download: on


AR Game/Demonstrator Using ARCore and OpenCV

2018 – BCIT Final Project

ARPets was my final practicum project for the Bachelor of Technology – Games Development Option program at BCIT. The intent of the project was to explore the possibilities of highly integrated AR by building a demonstrator game. Most AR games have a superficial understanding of the world, and ARPets goes beyond by recognizing and responding to real-world objects and building an understanding of real-world areas during gameplay. Technologies used include Unity, ARCore, Android, and OpenCV. This was a true capstone project in that it required me to apply just about everything I’d learned and then go beyond, building novel functionality and solving difficult problems in computing.

Garlic Gang

Desktop Game built with Unity

2018 – BCIT Game Dev Club
with Ryan Dieno

In spring 2018, some members of the BCIT Game Dev club decided to make a game about gangsters and garlic. I’m not sure how we came up with this concept. I ended up building the dialogue, inventory, and menu systems while Ryan built the twin-stick shooter gameplay. I also did some of the art, which was a refreshing change for me. This was a busy term where many team members left and we had limited time to work on the project, but we were able to create a complete and mostly coherent game.

Download: on

((subversion)) Propaganda War

Web/Desktop Game built with Unity

2018 – Global Game Jam

I went solo for Global Game Jam 2018. The theme was Transmission, which led me to the idea of propaganda towers and a sort of puzzle-strategy game. With the limited time I had, I decided to play it safe and work with technology I knew well. I also carefully limited scope, abandoning network play and AI in the early stages in favour of hot-seat multiplayer. I’m happy with the concept and the polish of the result, which also received a positive response from other attendees of the event.

Play: WebGL
Download: on

Firefighter VR+Touch

Mobile VR Game built with Unity

2017 – Independent Project

Firefighter VR+Touch is a rather silly game that parodies simulator games. It was my first serious solo project with Unity, my first commercial project and my first VR project. I targeted Google Daydream because of its affordability, but had considered bringing it to SteamVR as well. Total development was about six months alongside school and other minor projects. I learned a lot about Unity, VR, gameplay design, cross-platform, and marketing, and did manage to sell a few copies (though it didn’t make me rich).


Advanced Racing Genesis

Cross-Platform C++/OpenGL Game

2017 – BCIT Group Project
with Erick Fernandez de Arteaga, John Janzen, Spencer Pollock, Raj Singh

My third group game project involved building an engine and game from scratch using more advanced techniques. I was largely responsible for the OpenGL renderer, which features deferred shading, shadow mapping, postprocessing effects, and runs on its own thread. Although we ran into several technical issues and fell short of our design goals, it was an excellent opportunity to explore and learn about various technologies and techniques.

Source: GitHub

Mini Battle Quest

Native iOS Game for Kids

2017 – BCIT Group Project
with Erick Fernandez de Arteaga, Kevin Han, Michael Nation, Denis Turitsa

In our second term, we dove deep into the inner workings of games and programmed a native iOS game using Objective-C and OpenGL ES. Our game is a casual scrolling shooter targeted at tweens and young teenagers. This was a challenging project both from a game design and technical standpoint and we had to learn a lot of new techniques and paradigms. We redesigned the game several times before coming up with the final concept.

Greenhouse Invaders

Web Game built with Unity

2017 – BC Game Jam *CALP challenge winner*
with Kevin Han, Michael Nation, Denis Turitsa

I partnered with other students in the BCIT Games Development program for this jam, and overĀ  the course of 48 hours we put together a simple but fun game. The theme of the jam was Dimension, and we were building for the CALP climate change challenge. In Greenhouse Invaders, you must shoot light rays out between molecules that are added based on decisions you make between levels, modeling the effect of greenhouse gases at a visible scale.

Play: WebGL
Download: Windows


Mobile Game built with Unity

2016 – BCIT Group Project
with John Janzen and Robert Moffat

For our first project in the BCIT Game Development program, we chose to build a somewhat ambitious RPG-lite. Several ideas were thrown about before we settled on a combat-focused RPG with a free roaming overworld with a touch-oriented semi-realtime combat system. My role was mostly building and scripting the overworld. We were the only group to target mobile platforms, and though we did run into some challenges we were able to put together a fully functional demo and did well on the final presentation.

Ultimate Obstacle Course App

Cross-Platform Mobile App with Cloud Backend

2016 – BCIT Industry Group Project
with Richard Gosse, Liz Kundilivskaya, Joti Lalli

My final project in the Computer Information Technology diploma program at BCIT was a group industry project. Our group built a cross-platform mobile app for an elementary school obstacle course. This app allows students to time themselves, log their times and share them on a leaderboard. We used Xamarin for the app itself and PHP with Codeigniter and MySQL for the backend. My role in this project was primarily building the app itself. After handoff, it was published as the Cliff Drive Obstacle Course app.

Download: Android | iOS


Retro Arcade Shooter built on GZDoom

2016 – BCIT Game Jam

This was both my first game jam and the first BCIT Game Jam. The theme was It seems old and wise, which I somehow morphed into a retro-style shooter set in a cyberspace world. With only 48 hours to develop, I decided to work with what I knew, which at the time was GZDoom. I worked on my own, handling art, maps, and scripting, though Scott Thompson made most of the audio and some resources were taken from OpenGameArt. My challenge to myself was to build something gameplay rather than story focused, and I feel I succeeded in that goal.

Download: on

Ascension 2: Galaxy

Sci-fi Game built with RPG Maker VX Ace

2015 – Independent Project

I had grand ambitions for this early project, intent on creating a new series. With that in mind I started building a sci-fi RPG in a 2D 90s style using RPG Maker VX Ace. Unfortunately, it didn’t turn out that well. I did learn valuable lessons about hubris, project scope, the 90-10 rule, and balancing projects with school on the way, as well as the game development process.

Download: on | Mirror


Side-scrolling Game using libGDX

2015 – BCIT Game Dev Club
with Daniel Amaya, Andre Culjac, Jaymee Tan, Eiko Takeoka

I joined the BCIT Game Dev Club in 2015, joined a team and put together this game. I don’t recall what the theme was, or if we even had one, but we decided to build a side scroller where you guide a messenger parrot through a fantasy WWI. I was largely responsible for writing code, using Java and the libGDX library. I was still new to a lot of it so some of the code is messy and some things are implemented oddly. We had some setbacks but overall were happy with the end product.

Download: on | Source: on GitHub


HTML5 Website with AJAX and Responsive Design

2015 – BCIT Group Project
with Richard Gosse

The first year final project in the Computer Information Technology program was to build a small website using HTML5/JS/CSS3 and a PHP backend, using AJAX to communicate between the two. I partnered with Richard Gosse and we built a website for a (fictional) space launch company that allows users to create accounts and book flights. Although the requirement was to use at least some AJAX, we ended up using it for almost all dynamic content

View: Live Demo

Point Defence

Native Android Game with Retro Style

2014 – NIC Android Project

I took an intense course in Android programming at North Island College, and produced this game as my final project. It is an arcade shooter inspired by Missile Command and other classics, with 1980s-style sounds and graphics. You control a gun turret and shoot down missiles and bombers as they come down. It’s endless, and the goal is to get the highest score possible. Though it is very rough by my current standards, this was the first product that I published to an app store.

Download: Android


Text RPG written in Java

2012 – High School Programming Project

I took my first programming course in the last year of high school. For my final project, I built a text RPG in Java, with levelling, inventory, branching and most of the standard RPG mechanics. You play an amnesiac who wakes up in a fantasy world and try to find out who you are and fulfill your destiny. The code is terrible, the story is mediocre and the graphics are literally nonexistent, but this was the first programming project I finished and the first game I published. I later made a (bad) Android port.

Download: Windows | Android