Docs  /  Project  /  Tech Stack

Tech Stack

Unreal Engine 5.7 C++ project, source-controlled in Perforce. Combat and abilities use TInstancedStruct-based composition rather than the Gameplay Ability System. Networking is server-authoritative with fog-gated replication.

At a Glance

Engine
Unreal Engine 5.7 (C++)
Language
C++ for runtime systems; Blueprint for content tuning and prototyping
Source control
Perforce, stream depot //AxonRush/mainline
Networking
Server-authoritative; fog-gated replication; dedicated vs. host-server TBD
Ability framework
Not GAS. TInstancedStruct<FAbility>, TInstancedStruct<FBuff>, etc.
AI authoring
Behavior Trees / State Trees / utility AI TBD
Platform
PC-first
Renderer
UE 5.7 default (Lumen / Nanite — usage TBD per art direction)

Why No GAS?

Unreal's Gameplay Ability System is the standard answer for this kind of game and we're explicitly not using it. Reasons:

Combat resolution, leader abilities, tile rules, buffs, DoTs, and shields all live under typed TInstancedStruct<T> wrappers — never raw FInstancedStruct. This is a hard rule across the codebase.

Networking Architecture

Server-authoritative state

Fog-gated replication

Tick rates

LoopCadenceNotes
Tile spawn3-second cycles1 unit per tile-level per cycle
Unit movement2 seconds per hexDiscrete hex steps, not continuous translation
Combat resolution3 rounds per secondFixed round granularity for replay determinism
Server tick rateTBDLikely higher than combat tick to allow client smoothing

Source Control

Code Conventions

Build

"C:\Program Files\Epic Games\UE_5.7\Engine\Build\BatchFiles\Build.bat"
  AxonRushEditor Win64 Development
  -Project="C:\Perforce\AxonRush\AxonRush.uproject"
  -WaitMutex -FromMsBuild

Future Tech Decisions

DecisionLocked at
AI authoring frameworkM15
Dedicated server vs. host-as-serverM12
Reconnect routing protocolM17
Backend for leaderboards / match historyM18
Cosmetic asset pipelineM20
Telemetry / analyticsM24