Разработчики игр нередко сталкиваются с необходимостью или желанием реализовать систему способностей в своих проектах. Механика эта достаточно популярна, особенно в мидкор+ сегменте. Однако, несмотря на наличие готового фреймворка Gameplay Ability System (GAS) в Unreal Engine, на других движках часто приходится использовать "самодельные" решения.
У меня система похожа на gas. Абилка это абстракция, которая принимает решение что какой эффект будет повешен. Эффекты меняют параметры обобщеные. Сама абилка, это кондишен обощеный, прожектайл, который решает как будут найдены цели. Обощеное время абилки. Типа по времени, разовое либо пока абиока работает. Ну это прям очень коротко.