Giang’s Portfolio

My favourites:

I have been enjoying my journey in game development so far. I did some work with a team, along with those I did as a pet project. I learned a

  • Arena of Survivors, with Hiker Games, 2018: This 1.5-year project was where I grew a lot, both as a programmer and a man, by tackling many cool problems, from networking to development tools. The team was lovely, passionate and awesome. It would be way better if the game turned out to be a financial success, but optimistically, I still learned about how to deal with failures and come back stronger.
  • Line of Sight implementation in UE4, 2017: I received many stars on GitHub for this. It’s not much by any standard, but it feels good to have your work recognised by people.
  • Object Pool solution in Unity 3D: I did this as a specific optimization task at Hiker Games, then gradually people use it anywhere. It’s now a part of the company’s bootstrap project.

Professional work

Arena of Survivors (Android, iOS)

with Hiker Games, 2018

  • The development process used Unity 2017, Photon Unity SDK, Photon Quantum SDK.
  • Take the main responsibility for input handler, core mechanics, network replication algorithms and data structures.
  • Lead the learning and adapting process of Exit Games’ Photon Unity Network SDK, and later, Quantum Deterministic SDK for the team.
  • Build a successful workflow based on git branching and Jenkins automated builds.
  • Get myself familiar with a wide range of concepts along the way, including (notably) the Entity-Component-System (ECS) programming model, C# unsafe code, network optimization, and CI/CD environment.
  • Perform network and gameplay optimization.

FZ9: Timeshift (Android, iOS)

with Hiker Games, 2018


  • The development process used Unity 5.6.
  • Fix legacy bugs and do refactoring occasionally.
  • Work closely with game designers to deliver new features and content.
  • Design and develop data structures to store configurations of new PvP mode, where players build their base to store their gold and get more of that by invading others’ bases.
  • Expand the replay feature for the new PvP mode, where players can check how did other ones solve their formation.
  • Design and program new features with code cleanness in mind.
  • Using FSM and State pattern to create the boss of the story mode’s chapter 7.

Galaxy Gunner: Adventure (Android)

with Tofu Games, 2017

  • The development process used Unity 5.6.
  • Refactor legacy code to reduce technical debts.
  • Develop gameplay systems: player combat system, enemy system and weapon system.
  • Develop a simple 2D timeline system to play 2D cutscenes that can be triggered by various conditions.
  • Create a data-oriented behaviour tree system for NPCs.
  • Design and program data structures for storing player progress and inventories.
  • Apply the git-branching model and train other teammates to use that.
  • Assist other programmers when they need technical advice or a solution.
  • Perform game optimizations

Personal work

Occasionally, I do pet projects for fun. These projects can be anything. Some of them are pieces that I find interesting at work. Some of them are just learning, research and experiment. Some of them are improvements to existing solutions, both mine and others. Some of them are tutorials for things that I made mistakes before and I want to share that painful experience.

[WIP] Putting ECS into a UE4 project using EntityX, a C++ ECS library

I suddenly grew fond of ECS practices and really want to try it in UE4. The project is in a really early process though – more details to come!

DOTS Experiment with Unity

Find it on my blog!

  • Use Unity 2019.3.
  • Write two demos: one in traditional Mono and the other one in ECS and throw many agents to the scene.
  • Performance comparison.
  • Learn the uniform grid spatial partitioning technique and implement it in ECS using multi hash maps.

Line of Sight Implementation in UE4

Find it on my blog!

  • Use Unreal Engine 4.18.
  • Playing around with UE4’s procedural mesh generation.

An Object Pool solution for Unity 3D

Find it on my blog!

  • A common optimization practice.
  • Data-driven workflow friendly allowing quick setup.
  • Should be applicable on most Unity versions.

A C#-inspired event and delegate implementation in C++

Find it on my blog!

  • Built on the foundation of the Observer pattern.
  • Featuring function pointers encapsulated in a class.
  • … and a colourful output window just for fun.