![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2009
Сообщений: 75
|
Здравствуйте.
Всегда меня радовала игра Warcraft III - особенно как идеально она работает по сети. Каждый юнит имеет свой круг со своим радиусом, т.е. часто юниты толпятся и всё это передаётся другим игрокам. У каждого есть скорость поворота перед ударом, скорость полёта снаряда, анимация персонажа в миллисекундах перед ударом (имеет значение в механике игры) и всё это работает без рывков и задержек между 2-12 игроками. Вопрос, как? С одной стороны я думаю что используется p2p, но нет ниодного чита чтобы менять координаты юнитов или по-другому подменять пакеты. Но я не представляю как можно все эти толпы грамотно синхронизировать через сервер. Может кто-то подскажет в чём секрет? Последний раз редактировалось Vilya21; 16.11.2011 в 08:42. |
|
|||||
|
MVC, я думаю. Через p2p передаётся только модель юнита - со всеми её координатами и прочими статсами. То есть по сути набор числовых переменных (в том числе ключи. Ник статичен - его можно передать единажды при ините). А отрисовывается это всё уже на клиенте. Т.к. клиенты идентичны - отрисовка идентичной модели идентична
__________________
Дебаггер не предлагать |
|
|||||
|
Цитата:
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
Помню где-то ещё читал что для большей синхронности некоторые передают не координаты каждого юнита и его действия, а только действия пользователя. В случае стратегии надо передавать координаты карты над которым находится пользовательский фокус и собственно его действия. Остальное просчитывает машина клиента, а так как алгоритмы у всех одинаковые, то достигается полная синхронность и игры и не большой трафик.
Последний раз редактировалось willis83; 16.11.2011 в 11:56. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 461
|
|
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
На счет синхронизации, особой разницы нет 2 там или 12 игроков. Сообщение шлется в комнату на сервере, а оттуда одновременно рассылается всем подключенным клиентам. При наличии хорошего протокола, оно будет достаточно коротким, чтобы улететь практически мгновенно. Но синхронизировать многих игроков совсем идеально невозможно. Рассинхронизация все равно будет. Для этого просто нужно через определенные промежутки времени корректировать данные |
|
|||||
|
Цитата:
Хотя может именно поэтому я и не пишу быстрых p2p.
__________________
Дебаггер не предлагать |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
|
|
|||||
|
Регистрация: Aug 2009
Сообщений: 75
|
Tr1te, спасибо за ссылку! Как раз то что хотел узнать и не мог найти!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|