JKT - Ultra Rogue
Ultra Rogue is a single player space-themed 2D top-down rogue-lite game.
Ultra Rogue is built by team Just Keep Typing on a modified version of DigiPen's 2D game engine: Alpha Engine.
This project was completed in my first year at DigiPen Singapore.
My role as the Technical Director involved planning, creating, and enforcing JKT engine's software architecture.
Contributors
WEERER - Black Dungeon
Black Dungeon is a top-down puzzle adventure game. Players control Jerome who goes on a quest up the mountain to revive his deceased grandfather.
Black Dungeon is built on the OKP Engine, a custom 2D game engine created by team WEERER.
This project was completed in my second year at DigiPen Singapore.
The entire team worked admirably to produce a polished product well within the given timeline.
My role as the Technical Lead on this project involved planning, creating, and enforcing OKP engine's software architecture.
Some notable contributions I have made to the project include:
- Multi threaded loading queue for OpenGL.
- Domain Specific Language extending LUA for OKP's scripting system
- Compile time hash to unify compiled code, interpreted scripts, and data.
Liminal Digital - Luna and the Evil Cloud
Luna and the Evil Cloud is a third person 3D platformer.
Luna and the Evil Cloud is built on the Dare engine, a custom 3D engine created by team Liminal Digital.
This project was completed in my third year at DigiPen Singapore.
My role as the Graphics Lead on this project involved building the renderer from the ground up, abstracting the Graphics API of choice, Vulkan, for use with Dare engine's Entity Component System.
I am proud of the graphics team for working tirelessly to ensure that the graphics engine will work flawlessly even on integrated graphics. I worked extensively on host-device synchronization, swapchain, pipeline, batching, and instancing implementations.
Introduction to Real-Time Rendering - MTDemo
Created as part of CSD2150 Introduction to Real-Time Rendering in my second year.
This project is my first time using the Vulkan API, and is the starting point of Dare engine's Vulkan implementation.
The MT stands for mid-term as this was built for the mid-term submission of CSD2150, however the name stuck through multiple iterations since I liked it.
The program is meant to be run as a portable executable, straight from unzip.
Advanced Computer Graphics II / Spatial Data Structures - CS350Demo
Created as part of CS350 Advanced Computer Graphics, also known as Spatial Data Structure, in my second year during exchange in the United States.
This project makes use of MTEngine's foundation to visualize the mathematics behind spatial partitioning.
The program is meant to be run as a portable executable, straight from unzip.
Android NDK - Hurdles
Quick and simple demo game app made in Android Studio.
This project made use of the Android NDK to develop in native C++.
The graphics implementation makes use of OpenGL ES 2.0.
The game is a simple Game State driven Object Oriented program.
The app may be tagged as unsafe, you will need to enable install unkown apps to install.
Contributors
Compile Time Name Reflector (CTNR)
A simple header-only library for template typename reflection in C++11.
Example:
$ CTNR::GetName<classy>();
$ CTNR::GetName<structy<classy>>();
The above snippet will produce the results “
classy
” and “
structy<classy>
” respectively in g++ and clang.
Whereas the same snipped will produce “
class classy
” and “
struct structy<class classy>
” respectively in MSVC.
OWS
Just like this site, OWS is short for owenwensong.
This repository is a work in progress and aims to provide C++17 STL features to prior versions of C++.