A downloadable tool for Windows

The goal for this project was to create a damage system that is modular, flexible, reusable, and scalable. With the intention of gaining essential coding experience, good habits and practices, and C++ functionality on a deeper level.

To achieve that goal, I've chosen these 3 core building blocks:

- An actor component to be attached to any object you wish to use the damage system on that has all the default properties, the functionality responsible for the damage outcome, and the delegate definitions.

- An interface to be implemented on any object you wish to take, or any other kind of damage-related functionality. 

- Delegates to send call-back information to the object being hit.

Overview

The weapon has specified damage info that can be set in the editor individually for any object we wish to be a damage causer. On event hit, the damageable object call it's own interface function, taking the damage info from the causer, passing it to the damage system component, the component calculates the result and calls the corresponding delegate, and then the damageable object listens for that call and executes the corresponding function.

All the damage-causing object needs is a hit scan function and a damage info structure. The interface's main purpose is to eliminate the worry about what type of object is being hit. All we need to know is that the damageable object is implementing the interface. A good way to avoid unnecessary casting and tight coupling. The main purpose of the damage system component is to put any damage-related functionality in one place and just reuse it where needed. There is no tight bound on what type of object is the damageable.

To summarize:

- A flexible damage info structure that can be unique for each damage-causing object.

- A unique scalable functionality can be added to each damageable object before and after damage is applied.

- A modular damage system component.

- As a whole, a reusable system that can be used in other projects.


This project was made with Unreal Engine 5.5.4, using mainly C++ with a very small usage of blueprint scripting. 

GitHub: https://github.com/En7r0/FlexibleDamageSystem

Supported systems: Windows 10, 11.

Updated 2 days ago
Published 4 days ago
StatusReleased
CategoryTool
PlatformsWindows
AuthorEncho Popov

Download

Download
FlexibleDamageSystem Downloadable Link 11 kB

Leave a comment

Log in with itch.io to leave a comment.