top of page
  • Writer's pictureJayden Zhang

Tex-Mechs - Unreal Engine 4

Updated: Feb 11, 2020


Details Breakdown

Engine: Unreal Engine 4.22

Development Time: 2019/7 - 2019/12 (5 Months)

Approx. Working Hours: ~240 hrs per person

Developers: 17

Responsibilities & Roles


Technical Designer/Gameplay Programmer


Communicate with GD and Lead Programmer

Design architecture and responsible for Weapon System, Bullet System, Tag System

Responsible for Steam OSS, Controller Support, Multiplatform Support, and implementation

Design interface for system communication to be used by other programmers

Solve critical technical-related issues for Designers, Artists, and other programmers

Create tools for Level Designers and Artists

Combat System

Feature Showcase:

Architecture and Logic Flow:

Audio System

Architecture and Logic Flow:

Brief Technical Breakdown Notes:

There's not really a very efficient way to restrict where the audios being played since they are so not in common with each other.

  • E.g: Ambient sound can either being played by class, script, or drag & drop directly to the world.

  • Animation Sound Cue in Animation Assets won't be able to benefit from full blueprint support, and mostly need to follow specific keyframe in anim asset as an anim notify.

  • Most sound effects can be played anywhere, and are mostly one-shot (play once and GC self.) and can have overlapped.

  • However, BGM usually shouldn't overlap with another BGM.

With, instead of control the source, we control the actual playing sound.

  • Because we only care about which sound is currently playing, not so much about where it came from. (We still care where it came from, but not as much as the sound itself, and this info. is easy to gather)

So, we restrict the class type to be used first, that only a sound cue can be used to play, instead of a raw audio asset.

  • Audio assets are the raw wav file data, but the sound cue is an abstract layer ahead of that, we can do a lot of logics to control how the actual sound will be played.

  • A Sound Cue also contains a sound class, which we can assign one for each sound cue. It's like an "identity" of each sound, e.g, pickup SFX? interactive SFX? combat SFX? ambient? etc.

  • Once any sound cue is being played, no matter where they came from, there's always a sound class that can determine the "identity" of the sound.

Finally, all sound classes are part of a Master sound class, which can inspect all classes that are currently being played. And dynamically control and balance them.

  • This is done by using a passive duck down specific sound class while other certain sound classes was activated.

Tag System

Architecture and Logic Flow:

System Breakdown:

What Is Tag System

In general, the tag system provides an efficient, elegant and robust way to communicate between different classes. 

What can Tag System Do

It performs as a barebone framework to unlock the ability to implement a large number of other systems, such as ability system, buff/debuff system, even shooting/reloading or RPG elements.

This is a customized tag system specifically for Tex-Mechs, meaning it does not focus on Network Replicates/Predictions, and is a more lightweight framework. However, it should be a good start for expanding in the future.

What is in a Tag

A "Tag" refers to a child class of BPO_Tag class, which contains TagName, Duration, Payload, Stack (Detailed explanation is in below)


BPO_Tag class was inherited from a C++ class: UTagObject, which was basically a UObject, except for it overrides GetWorld() just like any other AActor (To be able to communicate through Function Library, because UObject does not guarantee to exist in current world)

69 views0 comments

Recent Posts

See All


bottom of page