Sealed

In early 2019, I worked in a team of 8 to make a game in a C++ engine I made. In this 4-week project I was the Lead Programmer and focused on rendering, engine-side systems, and tools for designers.


Here are some of the things I did

Code snippet
UI System

I made a resolution-independent UI system that makes it easy to create UI elements and layouts from Lua scripts. The position and size of each element on screen is specified by two anchor positions in normalized coordinates of the parent element and two offsets in pixels. Offsets are scaled up or down based on how different the current resolution is from the design resolution.

Elements can be parented to one another and custom rotation and scaling may be applied to elements around a customizable pivot point.

Behaviors attached to UI Rectangles receive mouse events like "mouse enter", "mouse leave", "mouse button down". This makes it easy to attach click handlers and more complex behavior from Lua scripts.


Unity level exporter
Tools for Unity

To make sure that designers could create levels and experiment with visuals as early as possible, we decided to edit levels in Unity and then generate Lua scene definitions out of Unity scenes using editor scripting.

I wrote editor scripts for Unity that let designers easily configure and export levels into the engine. The system exports gameplay elements, decorations, cameras, lights and lighting settings.

To further reduce iteration times, I made it possible to export all levels in one click, and generate preview images for the level select screen.


Code snippet
Tweening

I implemented a flexible tweening system that enables programmers to easily create smooth motion or interpolate values like light intensity.


Builds of the game may be downloaded following these links. The project files are available in full at the game's GitHub repository