Programming

3D Games, 2D Games, Unity, C#, Unreal Engine, Augmented Reality, Virtual Production, Movement, Animation, Data Structure, Procedual Generation


Space and Motion

  • In order to make a Stealth FPS game, I created a custom moving system in Unreal Engine (with default mannequin) to allow the player to traverse and explore a mountain.

  • In the terrain I made with landscape tool, foliage, and costimzed materials, I programmed a series of watch towers with volumetric lighting to serve as obstacles for the player.

Using spine-animation, I made most objects in the scene including trees, bushes, and plants move slightly to create a windy effect. The player is also spine-animated to create a natrual and versatile movement.

Using Unreal Engine, I build a dessert scene and created a series of environment enimation to use as the background for a virtual production project. Before live action shooting, I also created mannequin character movements to simulate the actor’s performance for creating previz.

A sailing simulator system I made for game “Journey of the Dawn“ using Unity. It places the player in the captains room where they control the boat and monitor statistics including steer, speed, map and location, weather, and special events.

A system I programmed during my current Intern at Tinybop, using their 3D pipeline with Unity’s AR Core, I made a system in which the player could place tracks automatically tailored to the physical space they are surrounded with, and drive a racing car around the track.

A game about the interaction in movement (blocking each other) of a player controlled, spine animated dog, and an AI Roomba cleaning robot. I made a navigation and A* alogrithmn for the AI movement and a tank-like moving scheme for the player.

During my internship at Digital Continue, I programmed in Unreal Engine a system of camera movement and player movement for a multiplayer strategy game. Using Sequencer, C++, and Unreal Blueprint, I created a combination of preset shots and dynamic runtime justification.


Crafting System in Stone Age Boba Shop

A physics simulating puzzle game. Using way-points, each cabin follows the cabin before it to move. The entire train’s movement is affected by the accumulated abilities and pull-force of surrounding NPCs.

System Structures

  • In this crafting system, all the items are represented in Tetris/Lego blocks. I wrote a data storage system in which the shape, edge, sprite, and information of each item are stored in a scriptable object, and assembled into the block-form when they are dragged out of inventory into the crafting table.

  • When item blocks are placed next to each other, they “snap“ together, and I made a recursive algorithmn to search each and every connected blocks, and combine them into a blueprint to see if it matches with any crafting combination.

A boat and resource management system. Using events, inheritance, and interfaces, I made a expandable system in Unity. Rooms in the boat has different yield and are effected by different sailing events. The sailors also interact with the rooms with distinct abilities and stats.

A grid-based building system I made, so that the players could choose furnitures, walls, and buildings from inventory and place them in the world. Using C# interfaces, buildings have different effects according to surrounding buildings, and can interact with player differently.


Procedural Generation

Using a combination of techniques, the Binary Tree Split to first allocate and form the general structure, then Cellular Automata to populate each space into caves.

Using Wave Function Collapse to ensure that all roads are connected, and when clicking and changing any tile, do reverse tracking recursively to rebalance surrounding tiles.

Generate caves-like maps using Digger method. With an adjustable preset rules, we spawn diggers that could move, spawn rooms, spawn other diggers, or die to create caves.

A automated 3D FPS level generator. I first use a Digger to layout the map boundary, and then use Wave Function Collapse to populate the interior space, walls, rooms, obstacles, points of conflicts. I implemented more than 20 parameter to adjust in order to allow potentials for levels of distinct characteristics and difficulties.

Taking player’s text input as noice for rebalancing Wave Function Collapse to create the feeling of imagination a world beyond your vision through words and thoughts.


Jump Into Specific Realms ->