Полезное

Мы Вконтакте

Discord канал

#
Пред.
Аватара пользователя
Пользователь
Сообщения: 2
К сожалению при всех преимуществах UE4, целый ряд направлений не имеет вообще никакой документации даже в оригинале, и очень слабо освещается в фанатских примерах. И очень часто обычно несложные вопросы очень трудно реализовать до того как общая концепция архитектуры не будет понята.

Собстно у меня возник подобный вопрос по написанию клиент-серверных приложений. Инфа по этой теме очень скудная и, что самое главное, почти нет реальных примеров разработки. Скорее только демонстрация технологий.

Сразу скажу - это не вопрос по репликации, RPC и передаче данных. С этим как раз проблем нет. Это вопрос с организацией приложений клиент-сервер и их разработки в UE4.

Опишу примерно эволюцию собственной мысли при разработке приложения по этому направлению.

1. Клиент-сервер в редакторе. Создаем приложение, указываем для него 3 игроков (к примеру). Жмакаем Play, запускается 4 окна. 1 сервер, 3 клиента. Очень удобно и демонстративно когда нам нужно потестировать репликации - но к реальной архитектуре игры это имеет мало отношения. Такое приложение мы можем даже упаковать и запускать в нужном режиме через ключи командной строки - но это не то...

2. Усложняем вариант. Делаем приложение с 2 кнопками на стартовой сцене (запуститься как сервер и подцепиться как клиент). По логике при нажатии первой приложение должно сделать "Browse" на игровую сцену. Другое приложение типа "клиент" при нажатии второй должно сделать "ClientTravel" на серверную карту. С логикой написания тут как бы проблем нет - но сразу возникает вопрос - как такую схему тестировать? UE4 не позволяет дважды запустить приложение, ни PIE Standalone, ни Launch не дают второй запуск, а PIE с количеством игроком больше 1 - делают автоконнект без твоей собственной логики. Нипанятна...

3. Идем дальше. У нас есть проект - мы хотим сразу чтобы потом не грузиться сделать Dedicated Server и клиенты. По архитектуре UE4 - и сервер и клиент у нас всегда один и тот же проект, который просто отрабатывает разные участки кода в зависимости от роли. Допустим мы нарисовали всю внутренюю логику проекта, теперь хотим запустить Dedicated Server и, допустим, клиента для того чтобы отдебажить результат. Вот тут мне уже сложно представить решение. Компилить сервер как "Debug GameServer", но что с клиентом? VS не даст нам откомпилить и запустить этот же проект второй раз когда он уже запущен и работает. Создавать 2 отдельных проекта - сервер и клиент? как это может подружиться с логикой репликации UE4?
Или может надо откомпилить сервер как готовое приложение и запускать его отдельно, а к нему цепляться клиентом откомпиленным в debug через другой target?
НУ то есть в этом месте я совсем путаюсь.


Может есть кто-то у кого есть подобный опыт организации проекта. Описание опыта организации буквально в 10 строчек могло бы сильно сдвинуть меня в области понимания с какой стороны нужно кусать все это...
Аватара пользователя
Пользователь
Сообщения: 8
Посмотри тему про MMO Starter Kit на оф.форуме.
Шаблон MMORPG с лаунчером, базами на вэбсервере и игровым миром на выделенном серваке. Я так понял, с отдельными сборками под студией для клиента и сервака.
Правда сам проект платный (~100$), но может что почерпнешь из обсуждений.
Аватара пользователя
Тех. администратор
Сообщения: 367
Для тестов - посмотрите в сторону Automation Toolkit.

Студию, по идее можно использовать только как дебаггер, а собирать и запускать проекты руками (make на винде работает?). Да и в случае сборки студией - ничего, вроде, не мешает запускать руками отдельные экземпляры игры/дедика.
Аватара пользователя
Пользователь
Сообщения: 2
Большое спасибо. Обязательно гляну

upd: И все таки я бы с удовольствием пообщался б на эту тему с человеком который имеет подобный опыт
Аватара пользователя
Пользователь
Сообщения: 71
я свою сеть делал (сервер и блок для UE) на winsock2.h.
в типовых механизмах встроенных в UE даже не пытался разбираться т.к. мне UE нужен для применения в MMO, а тут типовые механизмы бессильны.

если смогу чем то помочь по написанию своей сети то спашивайте.
Аватара пользователя
Пользователь
Сообщения: 8
MHard писал(а):
я свою сеть делал (сервер и блок для UE) на winsock2.h.
в типовых механизмах встроенных в UE даже не пытался разбираться т.к. мне UE нужен для применения в MMO, а тут типовые механизмы бессильны.


А сервер авторитарный?
Аватара пользователя
Пользователь
Сообщения: 71
evgenb2 писал(а):

А сервер авторитарный?


Да . В ммо нельзя доверять клиенту.
Аватара пользователя
Пользователь
Сообщения: 1
и все? инфы и опыта на эту тему нет ни у кого больше?
Аватара пользователя
Пользователь
Сообщения: 32
Времени особо небыло,но для серьезных приложений сервер нужно писать отдельно c использованием ace или boost asio, с своей сетью структурой пакетов и тд, ue4 нужен только для разработки клиента, планирую в ближайшее время заниматься, будет пару видео на youtube, но осенью
Аватара пользователя
Пользователь
Сообщения: 71
видео? улыбнуло.
пару видео о программировании сети на с++ со своей структурой пакетов для выделенного сервера, это сильно.

не обязательно кстати использовать boost asio и прочие фреймворки, можно и свое сделать.


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница