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.

Download Win64 installer

Contributors

Ernest Chua
Ernest ChuaProducer
Owen Huang
Owen HuangTechnical Director
Simson Ong
Simson OngLead Designer
Huang Xin Xiang
Huang Xin Xiang

Product Manager

Test Manager

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.

Download Win64 installerGame Website

Contributors

Wei Chang Lee
Wei Chang Lee

Product Manager

Physics Programmer

Owen Huang
Owen HuangTechnical Lead
Keith Wong Jun Xiang
Keith Wong Jun XiangDesign Lead
Sim Zheng Han Bryan
Sim Zheng Han BryanSystem Designer
Derwin Yan Hong Rui
Derwin Yan Hong RuiGraphics Programmer
Ernest Chua
Ernest ChuaObject Programmer

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.

Download Win64 zip

Contributors

Wilfred Ng
Wilfred Ng

programmer

Product Manager

Muhammad Syafiq
Muhammad Syafiq

Software Architect

Tech Lead

Owen Huang
Owen Huang

Programmer

Graphics Lead

Poh Chun Ren
Poh Chun Ren

Programmer

Scripting Lead

Jeremy Er
Jeremy Er

Programmer

Audio Lead

Wong Wei Hao
Wong Wei Hao

Programmer

Animation Lead

Hui Yang
Hui Yang

Programmer

Physics Champion

Cedric Cheong
Cedric Cheong

Programmer

Editor Champion

Jer
Jerlyn Low

Designer

Design Lead

Mav
Mavis Wong

Designer

Art Lead

Dar
Darence Kwok

Designer

Level Champion

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.

Download Win64 zipView on GitHub

Contributors

Owen Huang
Owen HuangSole Contributor

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.

Download Win64 zipView on GitHub

Contributors

Owen Huang
Owen HuangSole Contributor

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.

Download Android APK

The app may be tagged as unsafe, you will need to enable install unkown apps to install.

Contributors

Owen Huang
Owen HuangSole Contributor

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.

View on GitHub

Contributors

Owen Huang
Owen HuangSole Contributor

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++.

View on GitHub

Contributors

Owen Huang
Owen HuangSole Contributor