Полезное

Мы Вконтакте

Discord канал

#
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 42
Prytaleks писал(а):
Snake писал(а):
По этой же причине нет и репликации физики.

если играет 8 игроков по сети между собой, то для сервера это 64 сущности, никакой сервер не осилит считать физику для этого, или это уже будет не физика как таковая. Но ведь не проблема дать команду клиентам симулировать и считать физику для своих сущнойстей у себя.
Да, это будет отличаться, но в целом будет очень близко, если остальные параметры качественно реплецированы, положение в пространстве и т.д.

Для сервера дедика 8 игроков это 8 сущностей , для листнера я могу согласиться на 16 (хотя не уверен), откуда же так много, 64 ?

Он же мультикастит параметры , а не адресует каждому клиенту.



Для репликации объектов (бочек и деревьев), я бы менял им физику как только они активируются, а после того как они упали, делал бы статичными.
Аватара пользователя
Пользователь
Сообщения: 67
val_il писал(а):
Для репликации объектов (бочек и деревьев), я бы менял им физику как только они активируются, а после того как они упали, делал бы статичными.


Изначально в PAWN есть такая галочка REPLICATE MOVEMENT она вообще рабочая? Возникает ощущение что нет:) Поскольку пробовал просто на кубик (без физики) поставить галочку и при толкании его по сети другими он "дергано" двигается (как будто обрывы), если бы не было этих "дерганий" то всё идеально просто.

Мне то нужно просто чтобы любое изменение хоть малейшее сразу было актуально для всех, делать это раз в 10 сек неудобно так как за эти 10 секунд что угодно произойдёт, спрогнозировать что в голове у игрока который толкает это тонны расчётов, привязывать репликацию положения к HIT_EVENT можно... но! если этот ХИТ будет постоянный (упрётся в стену например) сеть вешается...

Мультикаст с минимальным таймером переменной сеть не вешает но дёргает и получается каша:) интерполяция чтобы не дёргало на клиентах (тиковая естественно) вешает клиент....

Речь идёт об объектах в которых нет игроков, но их местоположение критично для процесса. Неужели нет встроенной репликации местоположения? REPLICATE MOVEMENT (ставится галочка) ведь по сути она? Может как то она по хитрому работает? Версия 4.18
Аватара пользователя
Пользователь
Сообщения: 42
Scanarri писал(а):
val_il писал(а):
Для репликации объектов (бочек и деревьев), я бы менял им физику как только они активируются, а после того как они упали, делал бы статичными.


Изначально в PAWN есть такая галочка REPLICATE MOVEMENT она вообще рабочая? Поскольку пробовал просто на кубик (без физики) поставить галочку и при толкании его по сети другими он "дергано" двигается (как будто обрывы), если бы не было этих "дерганий" то всё идеально просто.

Мне то нужно просто чтобы любое изменение хоть малейшее сразу было актуально для всех, делать это раз в 10 сек неудобно так как за эти 10 секунд что угодно произойдёт, привязывать репликацию положения к HIT_EVENT можно... но! если этот ХИТ будет постоянный (упрётся в стену например) сеть вешается...

Речь идёт об объектах в которых нет игроков, но их местоположение критично для процесса.


Здесь надо понять что если один игрок колапсит объект у себя ,то должен сообщать серверу об этом , а дальше начинаются вопросы.
Т.к. физика срабатывает у клиента , отправляется серверу, а потом этот же клиент получает те же координаты ,но с задержкой которые отправил некоторым временем ранее и получается "трясучка".
Значит надо чтоб физика срабатывала только у овнера, но координаты получал сервер и другие клиенты, но не овнер. -Этот вариант не очень подходит с точки зрения читерства.
Аватара пользователя
Пользователь
Сообщения: 2319
трансформация одного обьекта - 16 байт - матрица 4*4 флоата по 4 байта каждый, из которых при скейеле 1 можно сократить чутка размер, вот минимальная цена репликации трансформа обьекта.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 67
Snake писал(а):
трансформация одного обьекта - 16 байт - матрица 4*4 флоата по 4 байта каждый, из которых при скейеле 1 можно сократить чутка размер, вот минимальная цена репликации трансформа обьекта.

Спасибо буду знать:)
Я пробую так что клиент сам интерполируется к трансофрму, http://s1.uploadpics.ru/images/bJ9cJB4P_4.png
а переменную для трансформа задаёт сервер исходя где на сервере павн http://s1.uploadpics.ru/images/ZkXqJSEP_E.png (серверная его копия поскольку клиент двигает павном на серваке).
Клиент делает эту операцию и сервер обновляет переменную оба с delay 0.02 (чем больше delay тем больше разсинронизацию позиции но нагрузка на сеть меньше) http://s1.uploadpics.ru/images/W1Ij1SVP_4.png

Если таких павнов больше 32 то сеть начинает тупить.Причём не важно реплицирую я переменную трансформ или отдельно вектор и ротатор

Если бы опция replicate movement работала http://s1.uploadpics.ru/images/-y-oyH4P_E.png правильно и без дёрганья то не нужны бы были такие мучения. Конечно если шутер и все "чарактеры" то там репликация супер:) сам мовемент реплицирует и всё отлично. Но если павны то проблемы вылазят.

Обидно что всё остальное налажено как часы, и выстрелы и работа ракет с системой наведения и АИ а тут такая вроде простая штука как позиция и ротация какой геморрой вызывала:)) я уже предвкушаю как это движок вынесет мне мозг при репликации положения корабля по волнам.
Аватара пользователя
Пользователь
Сообщения: 4069
val_il писал(а):
Для сервера дедика 8 игроков это 8 сущностей , для листнера я могу согласиться на 16 (хотя не уверен), откуда же так много, 64 ?



я тоже так думал пока не посмотрел коечто из уроков Флаки и не протестировал сам. Это особенно заметно при симуляции физики. Ты можешь проверить это сам, открой файл блюпринта, запусти три игрока + выделенный сервер и посмотри сколько будет анимблюпринов в этом списке.
Изображение

Тоесть здесь фактически работает теория параллельных миров, каждая сущность на отдельном компьютере отдельная сущность. Персонаж Снэйка на
конкретно твоем и моем клиенте, при симуляции физики упадет немного по разному.
И то только если так будет настроен сервер.
Если сервер не передаст данные об этом нашим клиентам, и наши клиенты не будут об этом знать, и не симулируют физику для перснажа Снэйка, на наших компьютерах два Снэйка будут стоять как не в чем нибывало.
При подключении еще одного клиента к серверу, у каждого клиента добавится этот персонаж-сущность на клиенте.
Синхронизировать данные между всеми этими сущностями и клиентами задача сервера.
Аватара пользователя
Пользователь
Сообщения: 42
Prytaleks писал(а):
val_il писал(а):
Для сервера дедика 8 игроков это 8 сущностей , для листнера я могу согласиться на 16 (хотя не уверен), откуда же так много, 64 ?



я тоже так думал пока не посмотрел коечто из уроков Флаки и не протестировал сам. Это особенно заметно при симуляции физики. Ты можешь проверить это сам, открой файл блюпринта, запусти три игрока + выделенный сервер и посмотри сколько будет анимблюпринов в этом списке.
Изображение

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


Вот не поленился и проверил.

Изображение

Изображение

Кстати заодно и листнера проверил:
Всё равно восемь получилось, и это логично.

Изображение
Аватара пользователя
Пользователь
Сообщения: 4069
я до тебя пытаюсь донести, что При подключении еще одного клиента к серверу, у каждого клиента добавится этот персонаж-сущность на клиенте. - и серверу всеравно нужно передать даные этой сущности, нужно выбрать список AllWorlds, что бы отобразить реальное количество сущностей.
Аватара пользователя
Пользователь
Сообщения: 42
Prytaleks писал(а):
я до тебя пытаюсь донести, что При подключении еще одного клиента к серверу, у каждого клиента добавится этот персонаж-сущность на клиенте. - и серверу всеравно нужно передать даные этой сущности, нужно выбрать список AllWorlds, что бы отобразить реальное количество сущностей.


Ну конечно ,так ты запускаешь всех клиентов и сервер на одной машине, он тебе и покажет всех запущенных на твоей машине в режиме "дебага", кто ж спорит?!

Но в реале у каждого клиента и сервера будет лишь по одной копии каждого подключенного клиента, а не по восемь. И сервер будет обрабатывать 8 клиентов, а не 64 !
Аватара пользователя
Пользователь
Сообщения: 4069
val_il писал(а):
Но в реале у каждого клиента и сервера будет лишь по одной копии каждого подключенного клиента, а не по восемь.

я не про клиенты, а ссылки сущностей на каждом клиенте, которые должны быть синхроны на всех клиентах. Если канешно предполагается что все игроки должны видеть одно и тоже.
Я думаю сетевая настройка мультикаст, отправляет даные клиентам, для каждой сущности.
Особенно это становится понятным, когда реплецируешь доступным способом физическую симуляцию.
Здесь синхронизировать данные между всеми этими сущностями просто нет возможности, каждый клиент увидет свой результат.
Если это канешно не совсем примитивная физика типа падение куба с пол метровой высоты, а например симуляция физики персонажа при инерции. Здесь результат очень сильно будет привязан к фпс и если играет 8 игроков и сервер дал им всем команду симулировать физику, после симуляции, сущности всех игроков примут относительно рандомный вид. 8 игроков и сервер это 72 сущности, но серверу не нужно симулировать физику для 8 ми сущностей у себя, это не его задача, также как и считать физику вместо клиентов для каждой сущности, но положение капсулы в пространстве и анимацию, эту синхронизацию получить не сложно.
Все сказанное мной изначально было в контексте - почему физика не реплецируется.

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


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

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