From Light

The original banner used at PAX


Game trailer:

From Light is a student game that has been in development from early 2015 to the present. I joined the project in Summer 2015, soon before it was accepted into the PAX 10 (a group of “the ten best indie games in regard to gameplay and overall fun-factor” curated by a panel of 50 industry experts) at PAX 2015. The game is a 2D puzzle platformer that revolves around creating new platforms through the use of long-exposure photography.

Lights can create platforms inside photographs.

Objects can also be frozen inside photographs.

Originally a class project, after PAX the two original creators decided to develop the game further, ultimately aiming for a release on PC platforms and potentially the WiiU (after Nintendo representatives expressed interest in the game at PAX). The game evolved technically, narratively, and artistically in the next few months. In early 2016, the game was pitched and accepted to USC’s Advanced Game Development capstone course (beating out 20 other candidates for 1 of the 5 project slots). From then until September 2016, the development team grew to over 20 students and external volunteers. I became the Lead Engineer on the project, responsible for managing the 3 other engineers on the project. Besides programming large parts of the game, my responsibilities included week-to-week sprint task planning and personnel management, facilitating technical communication with and among other disciplines on the team, defining technical requirements for game systems, and ensuring tech debt was minimized.

Excerpt of gameplay:

Some major features that I implemented included two overhauls of the locomotion system (a from-scratch system based on raycasts, later replaced with the Corgi Engine package), a level-streaming system, a system for arbitrarily slicing collision geometry, a dialogue system for NPCs and an accompanying tool for creating in-game cinematics (“scripted sequences”), tools for procedural terrain creation, and shaders for normal mapped sprites and a 2D lighting system. The system I am most proud of was an architecture that allowed level data to be edited in the Unity Editor while remaining separate from the core game code. This meant that level creation tools could ultimately be exported to a package file and distributed to players, allowing users to create their own levels in Unity without sharing the game’s code.

An example of a “scripted sequence” set up in the editor.


The experience of being Lead Engineer especially gave me experience talking with artists and designers. One of my favorite activities was watching artists work with the tools available to them and finding new features or workflow tweaks that would reduce friction for them. Coaxing requirements from non-technical team members and condensing it into technical requirements for an engineer to work with was incredibly rewarding. It was also my first experience working with tool and project architectures during development with a large team. I learned a lot about balancing between more abstracted, future-proof systems and quick-and-dirty code that had the potential to snowball into a quagmire of technical debt. I started off the project with an affinity for future-proofing, but eventually learned that there are a number of situations that call for less in-depth responses. It also takes time and mental energy for other engineers to work with abstracted systems, and unless it yields a lot of value, that effort may not be worth it. Making these cost-benefit analyses for project architecture is a crucial activity. I finally left the team (to work on my own capstone project) after the completion of the capstone course in 2017. A portion of the development team has graduated from USC and is still working on the game, aiming to release it on PC platforms.

An early version of the dialogue system .

A screenshot of an early grey-boxed level.