Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.01.2013, 22:51
ASDAlien вне форума Посмотреть профиль Отправить личное сообщение для ASDAlien Найти все сообщения от ASDAlien
  № 1  
Ответить с цитированием
ASDAlien

Регистрация: Dec 2010
Сообщений: 10
По умолчанию FPS / Таймеры / box2d синхронизация

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

Старый 27.01.2013, 23:26
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 2  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Никогда не делал многопользовательских игр с физикой, но вполне ожидаемо. Ошибки погрешности чисел с плавающей точкой у разных процессоров; пересчет физики, зависящий от фпс; рассинхронизация по времени (ну, это если у вас там динамика есть, типа раскачивающейся башни, что-нибудь такое). Да, вполне ожидаемо.
Я бы пожертвовал трафиком пользователей и считал физику только на сервере(если п2п, то пусть один из игроков будет ведущим), посылая клиенту. 100% синхронизации ну очень тяжело добиться на мой взгляд.
__________________
мой пустой блог

Старый 28.01.2013, 07:20
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 3  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Я бы пожертвовал трафиком пользователей и считал физику только на сервере
Это ж какой сервер надо, чтобы, скажем несколько сотен клиентов просчитывать да еще и рассылать им все параметры. Прийдется в таком случае раскошелиться на приличный сервак.
Но так да, это единственный вариант при котором можно синхронизировать отображение результатов. И то будет полная лажа, так как даже после собственных действий игрок будет видеть обновления с задержкой.

Старый 28.01.2013, 13:29
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 4  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Ну, если п2п - то задержки будут не такими уж масштабными, и процессоры будут у клиентов греться.
Вообще, мне представляется, что наибольшие рассинхроны вызывает "пересчет физики, зависящий от фпс". Там, в box2d, помнится пытались стабилизировать фпс, ну, не фпс, а пересчет физики по таймеру, не знаю как сказать. В общем, там в событиях таймера чёрти-че понаписано, но все бестолку. Так вот можно попытаться синхронизировать эти события, отключив персчет физики по таймеру у "ведомого" и передавая ему некий "синхроимпульс" в котором бы передавался dt = current_time - t_prev; ведущего, чтобы синхронизировать пересчет физики.

А тут что-то такое заумное сказал =) Не уверен, что меня поймут =)))
__________________
мой пустой блог

Старый 28.01.2013, 13:44
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 5  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
И тут остаются проблемы:
Как решать кто ведущий, а кто ведомый?
Можно предположить что, они поочередно менются ролями. Но как быть в случае, если игра не пошаговая?
Получится фигня.
Цитата:
Ну, если п2п - то задержки будут не такими уж масштабными, и процессоры будут у клиентов греться.
С чего бы это? Задержки будут так же зависить от расстояния между клиентами. Пинг никуда не денешь. Лад

Старый 28.01.2013, 14:00
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 6  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Ну, как правило в р2р играх народ старается подобрать себе партнера поближе, подбирая по минимальному пингу; никому не хочется играть со слоупоками. Так что p2p - это намного лучше, чем клиент-сервер, когда два пользователя, физически находятся, скажем, в Киеве, а пакеты летают на сервер, арендованный в Москве.

А насчет ведущий-ведомый... я сторонник простых решений и "не создавай проблемы, пока ее нет". Пусть кто создает комнату, тот пусть и будет "ведущим", что-нибудь в этом роде.
__________________
мой пустой блог

Старый 28.01.2013, 16:11
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 7  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Сколько я не тестировал, п2п работало хуже, чем клиент-сервер с сокет-соединением.
__________________
hauts.ru

Старый 28.01.2013, 16:38
ASDAlien вне форума Посмотреть профиль Отправить личное сообщение для ASDAlien Найти все сообщения от ASDAlien
  № 8  
Ответить с цитированием
ASDAlien

Регистрация: Dec 2010
Сообщений: 10
ага, спасибо,буду пробовать с таймерами разбираться

Старый 28.01.2013, 17:15
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 9  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
буду пробовать с таймерами разбираться
Это тоже не поможет. Все равно физика будет по-разному счиаться на разных клиентах.
Я это уже делал, и ничего путного из этого не вышло

Старый 28.01.2013, 17:30
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 10  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Цитата:
Сколько я не тестировал, п2п работало хуже, чем клиент-сервер с сокет-соединением.
А какие тесты были? Мне вот интересно, да все никак руки не дойдут. В rtmfp , я так понимаю, udp используется, какая там логическая обертка сверху? Нужно ли заботиться о склеивании, потерях, о пакетах, приходящих в неправильном порядке?
__________________
мой пустой блог

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
box2d , fps , timer
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.