Action Time Battle System developed using Blueprints. Started as a group project contribution, the task developed as a standalone system that can be easily integrated into a pre-existing project. Using State Trees for combat flow logic and UMG Widgets for player interaction, this system takes inspiration from titles such as Final Fantasy VII Rebirth.
Gameplay Programmer (solo) Responsibilities: core mechanics, systems integration, prototyping
State Tree-Driven Combat System Active Time Gauge mechanic to queue up Combatants Component-based Combatants Simple extendable AI Opponent logic Data-Driven Abilities and Ability Sets UMG HUB with Dynamic Layout that changes based on Gameplay Triggers
Engine / Framework: Unreal Languages: Blueprints Systems: State Trees, UMG, DataAssets, Gameplay Framework.
- One of the team’s requirements was for this system to be developed entirely using Blueprints as most of the team, including the team lead were not comfortable dealing with C++, some functionalities had to be reworked to address this limitation as some C++ features as well as some of the UE5 C++ APIs and DSAs couldn’t be accessed in Blueprints, which meant that for instance Queues needed to be implementated in Blueprints instead of using UE5 C++’s TQueue data structure.
- While having past experience working in Blueprints, C++ still remains the preferred choice as it can streamline development without having to worry about point and click over UI and Node manipulation.
- Creating a Queue that could be pruned based on Combatants states (e.g. Queued up combatant dies before its turn) was something that needed some extra care.
- Making sure the UI was in sync with the Combatant Manager combat flow.
- Adding UI art was challenging and required some extra time to get up to speed with texture manipulation and UMG Wdigets setup.
GAS is a very interesting system developed by Epic Games that allows developers to add and manage Abilities, Effects, Cues and Attributes, it supports replication and can be easily extended using C++. I'm currently in the process of learning the system, but I'm planning on coming back to this demo to port it into C++ and use GAS to manage this side of the prototype better.
Animations and character models are not currently present in this version of the demo, visual overhaul is planned though. Mixamo and the Epic Game's FAB store can provide the necessary art assets.