Система ячеек способностей в многопользовательских играх работает на основе обмена данными между узлами. se7en.ws Когда персонаж хочет активировать способность, он обращается к контроллеру нужной способности. se7en.ws
Внутри контроллера работают несколько модулей, которые решают различные задачи системы способностей: se7en.ws
- Проверка условий использования. se7en.ws Способность может быть заблокирована уровнем, снаряжением, количеством маны, кулдауном, игровой зоной и другими факторами. se7en.ws
- Определение области действия. se7en.ws Если это AoE-способность, то определяется её область: точечное использование, глобальное, по площади разных форм и прочее. se7en.ws
- Поиск целей для применения. se7en.ws Это могут быть другие персонажи, группы персонажей, сам применяющий персонаж, мёртвые или живые, какие-то предметы или даже сам контроллер игрового мира. se7en.ws
- Вычисление таймингов использования. se7en.ws Определяется, когда искать цели, когда активировать эффекты способности и прочее. se7en.ws
- Обработка стоимости использования. se7en.ws Например, снятие маны, золота, здоровья и прочее. se7en.ws
- Передача данных целям. se7en.ws Делает цель носителем эффектов. se7en.ws
В мультиплеере вся работа системы способностей строится на оперировании данными, поэтому для его работы достаточно синхронизировать обычную коллекцию. habr.com