![]() |
|
||||||||||
|
|||||
|
Цитата:
![]() "В споре рождается истина!!!" |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Правильно будет в зависимости от особенностей.
|
|
|||||
|
Цитата:
Цитата:
__________________
...вселенская грусть |
|
|||||
|
стервочка (я мужик)
|
gloomyBrain, минимальная нагрузка в оффлайн играх =)
Добавлено через 18 минут gloomyBrain, и ещё Вы в своих расчётах трафика забыли про TCP-заголовки. |
|
|||||
|
Продолжаем разговор
![]() Написал сервер на Delphi(пока на том, что знаю...так что не надо говорить, что это не есть хорошо). Сделал как мне показалась по самому простому варианту: 1.Данные (нажатие клавиш управления) от всех клиентов поступают на сервер 2.Сервер расчитывает новое местоположение игроков и состояние анимации 3.По таймеру отправляет данные всем клиентам. 3.Клиент получает новые координаты и состояние игроков и перемещает их в нужное местоположение. В результате получаем тормоза даже по локальной сети...что в принципе я и ожидал. Вопрос: как сгладить скачки анимации? |
|
|||||
|
Цитата:
Цитата:
То есть обновление происходит как только данные получены, а не по таймеру
__________________
...вселенская грусть |
|
|||||
|
Цитата:
У меня персонаж движется так: нажал вправо он идет в право(+10пикс за кадр), отпустил кнопку сразу останавливается. И с датами не особо понятно как привязать дату сервера и дату на клиентах. Мне надо чтобы при столкновении играков один из них погибал. Соответственно все клиенты должны видеть реальную картину, иначе получится так что игрок не толкнул другого, а он помер. Как я понимаю картинка на клиентах всегда должна отставать от времени сервера на какое то время (например пинг*2 самого медленного соединения) |
|
|||||
|
Цитата:
Цитата:
Цитата:
Когда знаем пинг - отправляем на клиент сообщение "сейчас *системное время сервера + пинг клиента* времени". Когда сообщение дойдет до клиента, на сервере будет именно столько времени. Таким образом, на сервере и клиенте одинаковое время. Далее можем пользоваться датами начала и конца каких-либо событий
__________________
...вселенская грусть |
|
|||||
|
Сервер должен просчитывать перемещение за каждый кадр?
Если нет... тогда как на сервере узнать было столкновение с картой или нет в определенный момент времени. Например: игрок стоит на платформе и падает с нее и в падении не нажимает ни каких кнопок т.е. на сервер ничего не передается: Цитата:
или как? Я хочу на клиенте свести к минимуму расчет. Т.е. как я это себе представляю. Я каждый кадр на сервере расчитываю положение игроков и передаю клиентам ,допустим каждые 100мс, новое местоположение. А на клиенте использую экстрополяцию для плавности анимации http://www.gamedev.ru/code/articles/?id=4257 |
|
|||||
|
Цитата:
Я бы все равно отсылал данные реже, чем раз в 100 мс без необходимости.
__________________
...вселенская грусть |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|