Физика на сервере и отдельные локации в UNet

Сеть в Unity3D

Физика на сервере и отдельные локации в UNet

Сообщение siriusspark 05 июн 2017, 12:22

Привет всем.

В процессе написания авторитарного сервера на UNet LLAPI (низкоуровневой UNet-архитектуре) возникла пара вопросов.

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

И теперь одно но! Это для одной локации. А когда локаций несколько? Как тогда просчитывать физику одновременно для всех, точнее где? Сцена ведь на сервере одна загружена, или я чего то не знаю или не понимаю? Объединять на севере все локации в одну? Или запускать отдельную копию сервера для каждой из локаций? Кто знает и может подсказать как оно делается?
Star Wars: Path of lust. 3D-адвенчур 18+ по мотивам Звездных войн | _www.patreon.com/starlordgames
Аватара пользователя
siriusspark
UNIт
 
Сообщения: 106
Зарегистрирован: 10 сен 2015, 09:14

Re: Физика на сервере и отдельные локации в UNet

Сообщение IDoNotExist 05 июн 2017, 16:11

siriusspark писал(а):Или запускать отдельную копию сервера для каждой из локаций? Кто знает и может подсказать как оно делается?

"Оно" обычно на юнити не делается.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Физика на сервере и отдельные локации в UNet

Сообщение siriusspark 05 июн 2017, 23:06

Почему ж нет? Низкоуровневый API UNet'а вполне позволяет написать свой грамотный авторитарный сервер. Ну и собственно, если даже и нет, какие у вас предложения?
Star Wars: Path of lust. 3D-адвенчур 18+ по мотивам Звездных войн | _www.patreon.com/starlordgames
Аватара пользователя
siriusspark
UNIт
 
Сообщения: 106
Зарегистрирован: 10 сен 2015, 09:14

Re: Физика на сервере и отдельные локации в UNet

Сообщение Ert Donuell 06 июн 2017, 00:40

Сцена может подгружать соседние. На этой сцене Вы двигаете коллайдер. Коллайдеры объектов с соседних сцен двигаются вручную, по переданнм пакетам. Так, скажем, ваш игрок не пройдёт сквозь игрока с соседней сцены и наоборот. При пересечении границы, разделяющей сцены, игрок перекидывается на новую сцену, и теперь она им управляет.
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Физика на сервере и отдельные локации в UNet

Сообщение Woolf 06 июн 2017, 05:13

Низкоуровневый API UNet'а вполне позволяет написать свой грамотный авторитарный сервер


На одном потоке? Вы шутите?
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Физика на сервере и отдельные локации в UNet

Сообщение siriusspark 06 июн 2017, 09:44

Ну хорошо, а что вы предлагаете? Были мысли в сторону node.js, но к нему не так то просто прикрутить физику.
Star Wars: Path of lust. 3D-адвенчур 18+ по мотивам Звездных войн | _www.patreon.com/starlordgames
Аватара пользователя
siriusspark
UNIт
 
Сообщения: 106
Зарегистрирован: 10 сен 2015, 09:14

Re: Физика на сервере и отдельные локации в UNet

Сообщение IDoNotExist 06 июн 2017, 09:53

siriusspark писал(а):Ну хорошо, а что вы предлагаете? Были мысли в сторону node.js, но к нему не так то просто прикрутить физику.

Зачем вам физика на сервере?
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Физика на сервере и отдельные локации в UNet

Сообщение maksimov 06 июн 2017, 12:10

siriusspark писал(а):Все верно?

Да.

siriusspark писал(а):И теперь одно но! Это для одной локации. А когда локаций несколько?

Тогда запускайте для каждой локации по процессу, который будет выступать в роли "мастер-клиента", и пишите "лобби-сервер", отвечающий за коннект, авторизацию и матчмэкинг.

siriusspark писал(а):Или запускать отдельную копию сервера для каждой из локаций?


siriusspark писал(а):Кто знает и может подсказать как оно делается?

Unity3d - это инструмент для разработки клиентского приложения. Поэтому, как правило, "серверную физику" просчитывают на одном из клиентов (мастер-клиенте).

siriusspark писал(а):Ну хорошо, а что вы предлагаете?

Всё упирается в вопрос, что вы хотите получить в результате. Для разных целей подходят разные решения.

Вот тут хорошо описаны все возможные подходы по реализации физики на авторитарном сервере:
https://doc.photonengine.com/en/onpremi ... ive-server
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

Re: Физика на сервере и отдельные локации в UNet

Сообщение siriusspark 06 июн 2017, 20:47

IDoNotExist писал(а):Зачем вам физика на сервере?


Затем что у меня онлайн гоночная игра с продвинутой физикой авто. Неохота чтобы из-за возможных различий просчета физики на разных клиентах победа в гонке могла достаться не тому кто на самом деле победил и всякое такое.
Star Wars: Path of lust. 3D-адвенчур 18+ по мотивам Звездных войн | _www.patreon.com/starlordgames
Аватара пользователя
siriusspark
UNIт
 
Сообщения: 106
Зарегистрирован: 10 сен 2015, 09:14


Вернуться в Сеть

Кто сейчас на конференции

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