An Unreal GAS-like gameplay framework for developing games in C#.
Forge is an engine-agnostic gameplay framework designed for building robust game systems in C#. Inspired by Unreal Engine's Gameplay Ability System (GAS), Forge provides a centralized and controlled approach to managing attributes, effects, tags, abilities, events, and cues in your games. Forge is an engine-agnostic, data-driven system inspired by Unreal Engine’s Gameplay Ability System (GAS), designed to manage attributes, effects, abilities, tags, events, and cues in a structured way.
The framework eliminates the need to rebuild status systems for every game project by offering a flexible, data-driven architecture that works seamlessly with Unity, Godot, and other C#-compatible engines. With Forge, all attribute changes are handled through effects, ensuring organized and maintainable code even in complex gameplay scenarios.
Keywords: gameplay framework, C#, engine-agnostic, data-driven, attributes, gameplay effects, abilities, gameplay tags
New to Forge? Check out the Quick Start Guide to build your first Forge-powered entity in minutes.
Forge is built around core systems that work together to provide comprehensive gameplay functionality:
- Attributes: Centralized attribute management with min/max values, channels, and controlled modifications.
- Effects: Data-driven system for applying temporary or permanent changes to entities.
- Tags: Hierarchical tagging system for entity classification and effect targeting.
- Abilities: Creation, granting, activation, cooldowns, costs, and instancing rules for gameplay abilities.
- Events: Gameplay event handling and propagation used for ability triggers and game logic reactions.
- Cues: Visual and audio feedback system that bridges gameplay with presentation.
Every game object that uses Forge implements the IForgeEntity interface, providing:
EntityAttributes- Manages all attributes and attribute sets.EntityTags- Handles base and modifier tags with automatic inheritance.EffectsManager- Controls effect application, stacking, and lifecycle.EntityAbilities- Grants and activates abilities, handles cooldowns/costs, and manages instancing.EventManager- Dispatches and listens to gameplay events for triggers and reactions.
Forge supports a variety of gameplay mechanics through specialized subsystems:
- Effect Duration: Control how long effects remain active.
- Effect Stacking: Configure how multiple instances of effects combine.
- Periodic Effects: Create effects that execute repeatedly on a schedule.
- Modifiers: Define how effects change attribute values.
- Effect Components: Extend effects with custom behaviors.
- Custom Calculators: Flexible logic execution within the effects pipeline.
- Tags System: Complete hierarchical tag system with inheritance.
- Attributes System: Full attribute management with modifiers and overrides.
- Effects System: Comprehensive effect application with stacking support.
- Cues System: Visual feedback system for effect application/removal.
- Custom Calculators: Flexible logic execution for effects.
- Abilities System: Ability granting, activation, instancing, costs, cooldowns, and tag-based requirements.
- Events System: Gameplay event handling, tagging, and trigger support.
- Multiplayer Support: Network replication for all systems.
- Statescript: Backend support for state-based scripting of Ability behaviors.
Forge targets:
- .NET Standard 2.1 (for broad compatibility)
- .NET 8 (for modern features)
Install via NuGet, reference the Forge project directly, or download the precompiled .dll from the Releases page.
Install the package via .NET CLI:
dotnet add package Gamesmiths.ForgeOr search for Gamesmiths.Forge in the NuGet Package Manager UI in Visual Studio.
If you need to build from source or make local changes:
- Clone this repository.
- Reference the Forge project in your solution.
- Follow the Quick Start Guide.
For comprehensive documentation, explore the docs directory, starting with the documentation overview.
This project is not currently accepting contributions as it's still in early development. However, if you're interested in contributing or have suggestions, feel free to reach out via GitHub issues or discussions.
Copyright © Gamesmiths Guild. See LICENSE for details.