7. Оптимизация – Оптимизации

7.1 Группировка способностей – Группировка способностей

GameplayAbilitiesАктивация, отправка на сервер (по желанию) и завершение всего этого, два-три RPCTargetData можно объединить в один, если все это сделать в одном кадре . Эти типы навыков обычно используются для борьбы с дробовиками.

7.2 Пакетная обработка обратной связи игры — пакетная обработка сигналов игрового процесса

Если вы хотите отправить много RPC одновременно GameplayCues, рассмотрите возможность объединения их в один RPC . Это может эффективно сократить количество RPC ( GameplayCuesда unreliable, многоадресной рассылки NetMulticasts), чтобы отправлять как можно меньше данных.

7.3 Режим репликации компонентов системы способностей — Режим репликации компонентов системы способностей

По умолчанию ASCон находится в Full Replication Modeрежиме. GameplayEffectsПо умолчанию все будет скопировано в каждый клиент (нет проблем для одиночной игры). В многопользовательской игре установите для персонажей, принадлежащих игроку ASCsи Mixed Replication Modeуправляемых ИИ, значение Minimal Replication Mode. При этом то, что применяется к персонажу игрока, будет скопировано GEsтолько владельцу персонажа; персонажи, управляемые ИИ, никогда не будут копировать это GEsв клиент. GameplayTagsбудет реплицироваться и GameplayCuesпо-прежнему ненадежно транслироваться всем клиентам, независимо от того, Replication Modeчто это такое. GEsЭто может эффективно сократить объем реплицируемых данных, когда ни один из клиентов не должен их видеть .

7.4 Прокси-репликация атрибута — Прокси-репликация атрибута

Большая игра, такая как Fortnite Battle Royale (FNBR) с большим количеством игроков, будет иметь множество ASCsсуществующих аналогов PlayerStates, и многие из них придется копировать Attributes. Чтобы устранить это узкое место, Fortnite отключает и его репликацию в моделируемой консоли игрока . Хост-агент и управляемые ИИ по-прежнему будут выполнять собственную репликацию в соответствии со своими конкретными настройками. Вместо этого вместо дублирования на соответствующем файле , FNBR использует реплицирующуюся прокси-структуру на файле . При изменениях на сервере соответственно изменится и его структура прокси. Клиент получает копию из структуры прокси и отправляет содержащиеся в ней изменения свойств в локальный файл . Это позволит вашей репликации также воспользоваться преимуществами связанных с вами механизмов . Эта прокси-структура также может реплицировать небольшой набор белых списков с использованием битовой маски. Такой подход уменьшает объем данных, передаваемых по сети, и позволяет нам использовать соответствующий контент. Позиция управляемого ИИ находится на , который уже использует этот механизм, поэтому нет необходимости делать для них эту оптимизацию отдельно.PlayerState::ReplicateSubobjects()ASCAttributeSetsPawnsReplication ModePlayerStatesASCAttributesPawnASCAttributesAttributesASCAttributePawnNetUpdateFrequencyGameplayTagspawnPawnsASCPawn

Я не уверен, что это все еще необходимо с другими оптимизациями на стороне сервера, которые были выполнены с тех пор (график репликации и т. д.), и это не самый удобный в обслуживании шаблон.

Ответ Дэйва Ратти из Epic на вопросы сообщества №3

7.5 Отложенная загрузка компонентов системы навыков — ASC Lazy Loading

В мире Fortnite Battle Royale (FNBR) есть множество вещей, которые можно повредить AActors(деревья, здания и т. д.), и на них будет висеть ASC. Это увеличит потребление памяти. Стратегия FNBR состоит в том, чтобы лениво загружать их ASCsи загружать только тогда, когда они необходимы (когда игрок наносит этим объектам урон). В целом это может немного снизить потребление памяти, поскольку некоторые из них могут AActorsне трогаться на протяжении всей игры.

おすすめ

転載: blog.csdn.net/xcinkey/article/details/127563383