Полезное

Мы Вконтакте

Discord канал

#
Модератор: Di-Crash
Аватара пользователя
Пользователь
Сообщения: 10
Добрый день!
Входные данные:
Тип игры : пошаговая online (TBS).
Движок: Unreal Engine 4.
Карта: меш размером 504x504 метра, поделенная на ячейки 1x1 метр.

Есть сгенерированный ландшафт и портированный в Unreal Engine 4 (504x504 метра).
Персонаж может находиться только в центре квадратного метра (ячейка).
Из ячейки он может переместиться в 8 направлениях в близ лежащие ячейки.

Проблема:
Ландшафт состоит из меша и естественно квадратный метр ландшафта может быть как гладкой поверхностью, так и ямой, горкой, штырем и т.п.
Сам сервер у меня не умеет работать с мешем (сервер самописный) и ему надо дать структуру сетки (карту проходимости) с параметрами куда может ходить персонаж а куда нет.
Т.е. надо сделать своего рода конвертор меш -> сетка для сервера. В сетке должна быть учтена высота (средняя) этого квадратного метра +
в каждой ячейке должна быть какая-то инфа, о том может в эту ячейку перейти персонаж или нет.

Задача:
Сделать такой конвертер, с учетом того, что персонаж помимо ходьбы может ещё и залазить на ровные ячейки.

Как вариант решения брать персонажа и из каждой ячейки пускать в другую (и так по всем направлениям), если он дошел туда по прямой то значит в эту сторону пройти можно и ставить флажок в ячейке.
Так как комбинаций (ячейки*направления) много то вероятно придется одновременно много персонажей двигать. Однако не все так просто и есть над чем ещё подумать.

Так вот на эту задачу хотел найти себе помощника (сам сейчас занят базой данных в сервере), который сделает такой конвертер - разумеется оплачу как договоримся. Буду рад сотрудничеству!
Последний раз редактировалось xorix 24 апр 2015, 01:28, всего редактировалось 3 раз(а).
Аватара пользователя
Пользователь
Сообщения: 10
Спасибо, исправил :)
Аватара пользователя
Тех. администратор
Сообщения: 367
А зачем отдельный сервер?
Аватара пользователя
Пользователь
Сообщения: 10
игру делаю сетевую, http://88.198.226.55:20080/terial

Каждую локацию обслуживает свой сервер. Сервер не основан на движке ue4, просто самописный на c++. Только клиент использует ue4 для отрисовки графики.
Аватара пользователя
Тех. администратор
Сообщения: 367
Это я понял. Но зачем?
Аватара пользователя
Пользователь
Сообщения: 10
А есть другие варианты? :)
Аватара пользователя
Тех. администратор
Сообщения: 367
Конечно, просто написать всё, что нужно на самом анриале. Сетевая подсистема там довольно гибкая, архитектуру в целом можно и поменять...
Аватара пользователя
Пользователь
Сообщения: 10
Мне показалось что такую кучу кода тянуть в сервер является не осмысленным занятием, у которого есть некоторые минусы:
1) Сетевая система у меня сделана на комплишен портах, что является оптимальным решением для серверов под windows (а сервер у меня на этой системе будет стоять)
2) В сервере у меня организованна своя система сообщений + шифрование трафика + своя система сериализации сообщений.
4) в будущем планируется что один сервер локации должен будет тянуть около 3 тыс. клиентов (если они будут конечно), переделывать потом не хочется.
5) Да и вообще по опыту лучше не нагружать сервер лишним кодом если он не требуется.

Но я почти уверен, что серверная часть в UE очень подходит для шутеров, где обычно в одной игре участвуют не так много клиентов.
Аватара пользователя
Тех. администратор
Сообщения: 367
Windows, даже с их completion ports, - не лучший выбор ОС для сервера. Это, конечно, дело вкуса, но я бы не рекомендовал. Или хотя-бы объясните, почему именно windows? Если только из-за completion ports - очень советую посмотреть на другие варианты.

Ну а в остальном...
UE4 можно переписать так, чтобы он использовал другую систему сообщений, протокол, сериализацию итп, даже можно работу через completion ports добавить. Шифрование трафика, кстати, вопрос интересный - как вы собираетесь это делать? В любом случае, вы можете сделать это внутри фреймворка, который предоставляет unreal. А 3к клиентов для пошаговой игры... Ну, не думаю, что с этим возникнут проблемы даже у стандартной сетевой подсистемы. Вот у остальных систем анриала - возможно.

Однако, это что касается движка в целом. А если говорить про конкретную задачу - зачем вам вообще такой конвертер, и зачем нужно устраивать мир таким образом - в виде импортированного ландшафта? Не проще ли серверу иметь схему проходимости, а клиенту уже процедурно генерить карту под неё?
Аватара пользователя
Пользователь
Сообщения: 10
>>Или хотя-бы объясните, почему именно windows?
Тут все просто, я практически пол жизни писал под эту OS, и под другую надо будет разбираться.

>>Шифрование трафика, кстати, вопрос интересный - как вы собираетесь это делать?
Ну я уже это делаю - у меня генерируется случайный ключ между сервером и клиентом на известном им обоим хеше пароля, а потом blowfish-ом на основе случайного ключа шифруется данные которые я гоняю по TCP.

>>А если говорить про конкретную задачу - зачем вам вообще такой конвертер, и зачем нужно устраивать мир таким образом - в виде импортированного ландшафта? Не проще ли серверу иметь схему проходимости, а клиенту уже процедурно генерить карту под неё?

Ну так тогда весь мир квадратным получится (или я не верно понял то что Вы сказали?). Хочется сгенерировать красивый ландшафт (например в GeoControl) и уже по этому ландшафту сделать карту проходимости.


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

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