C++

6 years' experience with C++

Physics Engine

I made a simple 2D physics engine with C++, and I used DirectX 2D to render the graphics on the screen.

In order to optimise collision detection performance, I used Quadtree to manage scene objects. As a result, it can handle collision tests for thousands of objects.

Game Programming

In 2018, I made a Pokémon battle game as my assignment of a cource only with C++. And, I used DirectX 2D to render the graphics on the screen.

※ The sprite assets are downloaded from the Internet and only used for learning and exercise.

Not only did I implement the code for the battle system, but I also created a framework for displaying the UI.

C#

4 years' experience with C#

Game Programming

In 2022, I made a text-based game as my assignment of a cource only with C#.

Not only did I implement the code for dialogue system, but I also created a framework for displaying the UI.

Network Programming

I have some knowledge of network programming, protocols, etc.

This is a Windows application of an internet chatroom that I wrote in C#.

Unreal Engine

4 years' experience with Unreal Engine

Game Programming

I have worked on many game projects as a programmer using Unreal Engine.
As a result, I have a good understanding of UE's C++, blueprint, UI, shaders, AI, physics, animation, networking and more.

In the summer of 2020, I spent a week working independently on a third-person shooter prototype, which enabled me to successfully pass the written exam at Ubisoft Chengdu.

UI Programming

By modifying and extending Unreal Engine's source code, I created an advanced rich text block. UI designers can easily use this widget in UMG.

Not only does it support displaying text with a typewriter effect, it also supports configurable print speed, intervals and pauses. Also, I added annotation (Chinese or Japanese pronunciation symbols) function to it, which is a very common need in Japanese language games.

Here is the demonstration video.

Demonstration video

I've also integrated these code features into the Unreal plugin for reuse between different projects and Unreal Engine versions.

Unity

4 years' experience with Unity

Game Programming

I have worked on many game projects as a programmer using Unity.
As a result, I have a good understanding of Unity's C# scripting, design patterns, physics, character animation, networking, shaders and more.

UI Programming

I extended Unity's TextMeshPro component to implement a dialogue system with its UI effects. It can output text in typewriter style and supports rich text effects. Also, I added annotation (Chinese or Japanese pronunciation symbols) function to it.

Here is the demonstration video.

Demonstration video

Editor Programming

In the project Disco Dispute, I made an editor tool in Unity by Unity UI Toolkit, so that designers can visually modify the effects of player skills.

Technical Art

4 years' experience with Computer Graphics

Maya & MEL Script

I understand the basic use of Maya and the MEL scripting language of Maya. I am able to write scripts using MEL to do some automated, or batch processing in Maya.

Cel Shading

I implemented a cel shading effect that imitates The Legend of Zelda: Breath of the Wild / Tears of the Kingdom, by modifying Unreal Engine's source code to create a custom shading model. It can be affected by all the light sources and global illumination.

Here is the demonstration video.

Demonstration video

※ The model assets in this video are downloaded from the Internet and only used for learning and exercise.

Grass Shader

I made a stylized grass shader in Unreal Engine that can interact with the player, the NPCs and the objects. I also made a rain effects (particle system and screen post-processing) in this demo. Click here to download the demo.

Here is the demonstration video.

Demonstration video