Всем привет! Вопрос к людям, разбирающимся в разработке онлайн игр со стимовским подключением. Поделитесь, пожалуйста, своим опытом: какие плагины, сборки блупринтов, в общем какие ассеты помогают оформить оптимизацию наилучшим образом или экономят время готовыми решениями. Может кто знает наилучшие хитрости, фишки, которые заменяют основной функционал (к пример
у Smooth Sync - )? И кто для себя что-нибудь подметил в ходе разработки важного, что нужно учитывать из очевидного и не очевидного?
Лично я использовал Advanced Sessions Plugin (а именно его дополнение Steam Advanced Sessions) для создания лобби, системы кика и тому подобного.
И GMCv2 (General Movement Component). Для движения, потому что дефолтный анриловский movement component работает в мультиплеере довольно прискорбно, как бы его не настраивать, но в целом для чего-то простого и он приемлем.
Однако стоит отметить, что GMC рассчитывает движение на клиенте. Поэтому он не подойдет для каких-то соревновательных проектов, так как сделать читы для него довольно легко, хотя такие проекты в целом не стоит делать на blueprint. Ещё сейчас надежды подаёт Mover 2.0, встроенный в Unreal, но он пока сырой. По сути, с этими двумя плагинами можно сделать что захочется.
Насчёт того, что я для себя подметил, пройдя 9 кругов ада создания COOP игры на blueprint, могу сказать, что именно в blueprint "оформить оптимизацию наилучшим образом" не помогут никакие плагины, потому что конкретно с мультиплеером почему-то 80% полезных вещей спрятаны в C++. Благо у меня есть товарищ, который хорошо в этом деле разбирается, и он много чего помог мне привести в приемлемый вид. Поэтому лучше, конечно, помимо плагинов ещё хотя бы базового понять, как делать простые вещи на C++ (или хотя бы использовать для этого chat gpt, лично я на данный момент часто прибегаю к его помощи). Потому что даже знание, как просто переопределить функцию из условного GameMode, чтобы она была доступна в blueprint, может сэкономить много времени и в целом сделать так, чтобы всё адекватно отрабатывало. (как пример если не ошибаюсь в blueprint в GameState не доступен эвент Player Connected, хотя сделать чтобы он был доступен в blueprint по сути нечего не стоило). Добавив его получилось удалить часть логики которая подражала ему, и соответственно снять нагрузку на сеть, и сделать саму логику проще. В целом как-то так