forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Сетевая синхронизация движущихся объектов (http://forum.boolean.name/showthread.php?t=5514)

stone_evil 08.01.2008 09:12

Сетевая синхронизация движущихся объектов
 
Делаю сетевую синхронизацию движущихся объектов, на базе кубических сплайнов.
Скудную информацию черпаю отсюда - http://www.gamedev.ru/articles/?id=80102 .
Вопросов больше, чем ответов:
1. Как выглядит оригинальный алгоритм расчета при получении параметров, а не его математические выкладки?
2. Как правильно вычислить дельту времени t?
3. Что делать при достижении конца сплайна, когда не пришли следующие координаты по сети?
И т.д. Если кто занимался уже этим и существуют наработки, буду рад выслушать, а еще лучше поглядеть.

Tadeus 08.01.2008 12:16

Re: Сетевая синхронизация движущихся объектов
 
Вот пример на официальном сайте: http://blitzbasic.com/codearcs/codearcs.php?code=345

stone_evil 08.01.2008 12:19

Re: Сетевая синхронизация движущихся объектов
 
Цитата:

Сообщение от Tadeus (Сообщение 73316)
Вот пример на официальном сайте: http://blitzbasic.com/codearcs/codearcs.php?code=345

Спасибо большое! :ok:

tormoz 08.01.2008 18:06

Ответ: Сетевая синхронизация движущихся объектов
 
Вложений: 1
я занимался 3 года назад
Наработок было много, но толку мало...

вот немножко нашел:

stone_evil 09.01.2008 05:25

Re: Ответ: Сетевая синхронизация движущихся объектов
 
Цитата:

Сообщение от tormoz (Сообщение 73385)
я занимался 3 года назад
Наработок было много, но толку мало...

Класс, спасибо! :super:
spline.bb - это как раз то, что я сейчас собирался сделать для рассмотрения работы этого алгоритма. А теперь буду сидеть исследовать.
Два вопроса только возникло:
1. Почему от этих наработок толку мало - вследствии практической неработоспособности алгоритма или потому что просто он не был нигде применен?
2. Что за алгоритм newsPlain? Я так понимаю, что это самописный простой алгоритм, который мягко преследует объект (ни разу не использовал TranslateEntity, точно не знаю, что за оператор). Вроде движение выглядит не хуже, но почему тогда используют кубические сплайны вместо простого алгоритма, непонятно.

moka 09.01.2008 18:34

Ответ: Сетевая синхронизация движущихся объектов
 
TranslateEntity, аналог MoveEntity без учёта поворота объекта (двигает по глобальным координатам).

tormoz 09.01.2008 20:33

Ответ: Re: Ответ: Сетевая синхронизация движущихся объектов
 
Цитата:

Сообщение от stone_evil (Сообщение 73454)
Класс, спасибо! :super:
spline.bb - это как раз то, что я сейчас собирался сделать для рассмотрения работы этого алгоритма. А теперь буду сидеть исследовать.
Два вопроса только возникло:
1. Почему от этих наработок толку мало - вследствии практической неработоспособности алгоритма или потому что просто он не был нигде применен?.

Я пытался применять в динамичном шуттере-леталке.
Но от дерганий так и не избавился.
Поэкспериментируй с примерами - сам поймешь
Там иммитируется работа реальной сети с запаздыванием и пропаданием пакетов.
Видишь, как запаздывает и дергается ведомый шарик ?

Цитата:

2. Что за алгоритм newsPlain? Я так понимаю, что это самописный простой алгоритм, который мягко преследует объект (ни разу не использовал TranslateEntity, точно не знаю, что за оператор). Вроде движение выглядит не хуже, но почему тогда используют кубические сплайны вместо простого алгоритма, непонятно
Это ноухау :)
Но он тоже не решает проблемы, хотя вроде работает стабильнее сплайнов
По-идее кубсплайны должны решать проблему, но насколько я знаю, на блитце еще никому не удалось сделать реальное предсказание и сглаживание.
Все, что я видел - еще хуже этих примеров.
Если что то найдешь, или доведешь до ума - поделись :)

stone_evil 10.01.2008 05:39

Re: Ответ: Re: Ответ: Сетевая синхронизация движущихся объектов
 
Цитата:

Сообщение от tormoz (Сообщение 73549)
Там иммитируется работа реальной сети с запаздыванием и пропаданием пакетов.
Видишь, как запаздывает и дергается ведомый шарик ?

Да, дергание вижу, но как я понимаю, это происходит из-за того, что шарик проходит расстояние быстрее, чем приходит очередной пакет. У меня есть мысль, как избежать дергания, я ее постараюсь реализовать, но пока надо до конца врубиться в алгоритм: как правильно рассчитать время, почему рассчитываемое предсказание в примерах является 3-им параметром, а не 4-ым, как должно быть по идее, и т.д. По чужим алгоритмам довольно сложно это сделать, придется самому пописать , там же все постараюсь и до ума довести, если получится.
Кстати, насколько я помню, пропадание пакетов можно не иммитировать при TPC\IP, вроде как он сам отвечает за это, и при пропадании пакета повторно высылает его.
У меня аська в профиле есть, постучись если что, можно будет пообщаться на эту тему. Если что-нибудь путнее получится, конечно, поделюсь.

tormoz 10.01.2008 06:04

Ответ: Сетевая синхронизация движущихся объектов
 
Цитата:

Кстати, насколько я помню, пропадание пакетов можно не иммитировать при TPC\IP, вроде как он сам отвечает за это, и при пропадании пакета повторно высылает его
На TPC\IP динамичные игры не делают.
Он очень сильно тормозит
Нужно (и правильно) эзать UDP
А там пакеты пропадают.
Для ответственных пакетов делается подтверждение доставки, а для обычных это не критично.
Нормальное запаздывание для локалки - 10-30 мс
Для инета до 100
Вот контра то работает !
И работает отлично.
И еще сотни других динамичных игр.
Как там сделано это самое предсказание...

Tadeus 11.01.2008 12:19

Re: Сетевая синхронизация движущихся объектов
 
Не знаю как у вас, но у меня на UDP все летает без предсказаний :)


Часовой пояс GMT +4, время: 23:33.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot