Skip to content

Unity Gameplay Ability System Framework

License

Notifications You must be signed in to change notification settings

PhysaliaStudio/Flexi

Repository files navigation

Flexi - Unity Gameplay Ability System Framework

GitHub tag (latest SemVer) GitHub Discord

Discord

  • This project is still work-in-progress
  • Though still in development, it's usable and already worked on a real project. Feel free to pick a tag version and try a small project, and join the Discord to discuss if any problem.
  • Progress
    🟩🟩🟩🟩🟩🟩🟩🟩🟩⬜ 90%

What is Flexi?

Flexi is an ability system framework for Unity.

The basic concept is:

  • Flexi has done some general low-level logic.
  • Programmers can directly jump into extend with Flexi, and create your gameplay ability system.
  • Then designers can use the graph view editor to create/edit ability.
  • At runtime, load these abilities and run with built-in runner.

P.S. Flexi is inspired from Unreal GAS (Gameplay Ability System), but not the same concept.

Flexi Scope

Features

  • Customizable: Flexi only do low-level things. So you have space to implement your own gameplay.
  • Stat & Modifier: With stat refresh process, modify unit stats with abilities.
  • Built-in ability runners: Start from easy and not make your hands dirty.
  • Node-based ability editor: Built with GraphView and UIToolkit.
  • OOP approach: Not rely on Unity. Not singleton approach.
  • Macro: Reuse your partial graphs (Failed to find GC free approach. Suspend until main feature finished.)

Flexi EditorCard Game Sample 1

Recast SampleReal-Time Sample 1

Installation

Download repository and Export unitypackage

  1. Donwload and unzip. Choose the latest tag for stable state.
  2. Open this Unity project. (Dev in 2021.3)
  3. Export the package with Tools/Export UnityPackage. This excludes unnecessary assets.
  4. It will show you the result package, then you can import this to your project.

Resources

Limitations

  • Not support DOTS. (This is full OOP approach.)
  • It's a tool for programmers. Recommend to have experienced programming skill.

TODO List

  • Finish Macro
  • UX Optimize
  • Better Samples
  • ListView for blackboard might easily broken. (Layout update is struggling to process current layout)