Overview
Oniro Brawl is a 1–4 player local multiplayer 3D brawler set in the Oniro universe, taking direct inspiration from Def Jam: Fight for NY — weighty strikes, grabs, throws, and per-character finishers. Version one is strictly couch co-op: no networking, just people on one screen.
The architecture decision
The interesting part of this project is not the local scope — it is that the local codebase is built as though it will go online, without shipping any netcode yet. All game logic lives in C++; Blueprints are thin wrappers only, and asset files are never edited from code.
Every input produces an FCombatCommand struct that is pushed onto a queue, and a single resolver — UCombatResolver::ConsumeCommand() — is the only thing allowed to mutate combat state. Combat runs on a fixed tick. That command-queue-plus-single-authority pattern is exactly what you need for deterministic, network-friendly combat, so the v1 local game can later be extended to online play without a rewrite.
Data-driven combat
Fighting styles, individual moves, and finishers are defined as Unreal DataAsset subclasses rather than hardcoded values. Tuning a move, adding a style, or creating a new finisher is a data change, not a code change. I deliberately skipped the Gameplay Ability System for v1 in favour of a custom, fully-understood combat state machine — GAS is noted as a future consideration once the design settles.
Status
The deterministic combat core, data-driven styles, and local 1–4 player flow are the current focus. Online multiplayer is a planned future phase — the architecture is already proofed for it, which was the whole point.