Overview
Able is a C++ Engine Plugin for Unreal Engine 4 that allows content creators to quickly build Abilities using a custom editor without ever needing to touch code, or Blueprints (although both options are available if needed). Able was written by an experienced AAA developer with years of console and PC experience in shipping and optimizing everything from puzzle games to MMOs. Building a 3rd person action game? Able supports that. Building an RPG? Able supports that. FPS? RTS? MMO? Yes, yes, and yes. Able is built around the flexibility of blueprints while keeping all the heavy lifting in C++ and supporting multi-core (Async) processing, speeding up ability execution and preventing blocking the main game thread.Abilities are an essential core gameplay system for most games, so Able was created around a few central concepts:
Ease of Use
Creating an Ability should be fast, easy, and allow for quick iteration. Able uses a simple, yet powerful, custom editor that allows anyone to quickly build an Ability from scratch in seconds. The Ability Editor also includes an expandable suite of Unit/Integration Test to help find common Ability errors quickly.
Performance
An Ability system should perform as quick as possible whether 1 or 1000 Abilities are playing. Powered by UE4's Async framework, Able farms out Ability work to other CPU cores when available while minimizing work on the main game thread.
Flexibility
An Ability system should provide a generic rule set that can be expanded as according to the games need. By leveraging the UE4 Blueprint System, Able provides multiple hooks for you to customize the systems behaviors according to your needs.
Bandwidth
For networked titles, an Ability system should be efficient in all bandwidth usage. Due to structure and stateless nature of Able, Abilities are very light on bandwidth and require only a small amount of information sent across the wire - allowing for more abilities to go play without bogging down your connection.
Security
While especially important in Networked titles, an Ability system should always strive to be as secure as possible and avoid common hack strategies. Able Abilities are compiled into code, so they are much more difficult to hack. For network titles, the Server is always authoritative and uses its own copy of the Ability for all validation.
Interested in learning more? Head over to our Documentation section for an in-depth looking into Abilities, Tasks, and the Editor itself.
While the features in Able are growing with every update, here's a brief overview of some of the features in Able.
Able Core
Fully Network Supported
- Able supports both online and offline games, with no extra work from your team.
Ability Targeting
Support for various shapes of queries including cones, spheres, and boxes.
Dynamic filters - Keep what you want, remove what you don't.
Common Ability Behaviors
- Ability Cooldowns, Stacks, Passive Abilities, Ability Branching, and Channeling to name a few.
- Use simple behaviors called Tasks to build your more complex Abilities; Able comes with a number of predefined Tasks such as Play Animation, Play Sound Effect, Apply Damage. You can view a more complete list of Tasks here.
- You can also write your own Tasks either in Blueprints or C++, Able will pick them up automatically.
- Full AI Support with a number of new Behavior Tree Tasks / Decorators.
- Platform Agnostic, Able works on all platforms.
- Fully Extendable C/C++ API.
- Clean and Well Documented Code helps your engineers ramp up quickly.
Able Editor
- Build an Ability using a Custom Editor that is your one-stop-shop for creating Abilities. Build complex abilities without touching code or blueprints.
- Visually layout the various tasks on a timeline that make up your Ability.
- Shrink/Stretch/Move Tasks into the appropriate position.
- Preview your Ability at any time.
- Change the Preview Actor's mesh at any time to test how the Ability works with various Meshes/Skeletons.
- Override methods in either Blueprints or C++ to achieve the functionality you want.
- Curious about the CPU cost of your Ability? Turn on the "Cost View" to see a simple color coded cost to each of your tasks. Green = Cheap, Red = Expensive.
- Help reduce bugs with the built-in Ability Validator! Checks your Ability for common issues and errors and reports it all in a convenient window.