Некоторое время назад я начал плотно изучать Unreal Engine и его сетевые возможности. Как выяснилось - функционал из коробки позволяет создать сетевое взаимодействие буквально парой кликов. А условности сетевого взаимодействия устанавливаются в BP несколькими нодами и чекбоксами.
Но из за удобства возникают и некоторые проблемы с безопасностью. Так как сетевой код у всех игр сделанных на основе сети UE одинаковый - существует большое число способов его взломать и использовать в злых целях. В частности можно ожидать появления читеров игрового баланса.
Чтобы не допустить влияния на сам игровой баланс - можно отделить его логику в отдельный авторитарный сервер, чей код не расположен в исходниках игры и чьи правила работы определяет только он сам. Ранее мне было сложно совладать с созданием такого модуля в UE, но благодаря появившемуся TCP плагину, стало немного легче. У меня уже существуют наработки по своему серверу, осталось только собрать модуль подключения к нему в UE.
Немного запутанно, но у меня получилось сделать свой парсер и сборщик данных. Как итог, можно поддерживать два типа сети в UE - внутренний сетевой код и внешний авторитарный сервер логики. Внутренний сетевой код можно оставить для репликации физики, что довольно удобно.
То есть, валюту и квесты считать на кастомном сервере, а летающий мячик на встроенном сервере UE.
На видео показана репликация данных уже с моего кастомного сервера.