ПроектыФорумОцените

HTML5 Mass Multiplayer Bombermine (350 players под хабраэффектом) (4 стр)

Страницы: 1 2 3 4 5 Следующая »
#45
14:54, 22 мая 2012

MoKa
> Прикольно, тоже пишу свой сервер с WebSockets на C# .Net / Mono.
> Вот только в первом посте, исправь "Java" на "JavaScript" т.к. это разные вещи.
Проект действительно написан на Java , но клиент собирается в Javascript :)

#46
23:28, 26 мая 2012
ИзображениеИзображениеБольше пони в игру!
#47
23:49, 26 мая 2012

vanek-ridal
> Больше пони в игру!
Да ааа больше пони больше розовых фрагов!!!!!


это так чтобы понимали что там происходит...
Безымянный | HTML5 Mass Multiplayer Bombermine (350 players под хабраэффектом)

#48
12:11, 4 июня 2012

Ап! Серьёзно ускорил прорисовку на html5 canvas, собираюсь переходить на webgl.

#49
10:57, 5 июня 2012

Jedi_Knight,
хороший вывод про html5 canvas:)
скоро чувствую дойдешь до dx или opengl.

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

#50
0:56, 6 июня 2012

AlexeiK
> хороший вывод про html5 canvas:)
> скоро чувствую дойдешь до dx или opengl.
Она у меня сразу была на canvas-е, просто я стал гораздо меньше drawImage-ей вызывать, и иногда даже использую fillRect-ы.
Дойду, правда через webgl и нативные мобильные версии.

AlexeiK
> как кстати удалось, пофиксить лаги?
> каковы причины их возникновения?
Клавиатурный лаг не пофиксил, времени на это не было. Для него мне надо создать рассинхронизованного персонажа игрока, который будет использоваться на клиенте для отображения.
Вот что пофиксил - это баг в клиентском цикле игры, из-за которого анимация иногда начинала дёргаться.
Ну и просто серьёзно соптимизировал клиент и сервер.

AlexeiK
> я просто тоже делаю сейчас сетевую версию и у меня рассинхрон возникает.
> не понимаю где я лажаю.
Я с этого начал - с движка синхронизации игровых состояний клиента и сервера. У меня под это есть один хороший тест, проверяющий синхронность при 100 случайно действующих ботах. Этим тестом я вообще много проблем снимаю, запуская его после любого изменения в структурах данных, в сериализации или в модели игры. Тебе надо сделать что-то подобное, ведь баги desync-а труднее всего отловить.

#51
11:11, 6 июня 2012

я делаю синхронизацию игрового поля на клиентах, с помощью броадкаста к ним команды клиента.

а у тебя сервер расчитывает координаты или ты тоже команды между всеми клиентами через сервер броадкастишь?

#52
12:23, 6 июня 2012

susageP
> это так чтобы понимали что там происходит..
Как этот скрин пробил ностальгию по mine bombers...
Изображение

#53
12:58, 6 июня 2012

quasist представляешь :)
именно ее я и довел до сетевой версии на silverlight.
да похоже анонс будет тут.

#54
13:28, 6 июня 2012

AlexeiK
> я делаю синхронизацию игрового поля на клиентах, с помощью броадкаста к ним
> команды клиента.
> а у тебя сервер расчитывает координаты или ты тоже команды между всеми
> клиентами через сервер броадкастишь?
Всё на сервере. Только сервер отправляет не только их, но и изменение состояния.
Да, броадкасты команд сделать легче всего, но клиенты должны уметь договариваться в какой тик они будут выполнять ту или иную команду. В этом случае рассинхрон ещё и от лага будет зависеть, я тебе не завидую :)


AlexeiK
> именно ее я и довел до сетевой версии на silverlight.
> да похоже анонс будет тут.
Ну, здорово :) Выбор не трендовой технологии радует.

#55
13:39, 6 июня 2012

Jedi_Knight
так у тебя же тоже от лага зависит рассинхрон.
только у тебя больше визуальный рассинхрон.
кстати поиграть так и не удалось в твою игру изза html5 или хз чего. запускал на firefox 10. сча 13 поставил, попробую как сча.

попробовал 13, не завелась . такое же состояние разрушенности ui :)

а может подскажешь, про механизм : в какой тик выполнять какую команду?
я полагаю у меня типа warcraft технологии. у них тоже самое только через p2p.

#56
14:15, 6 июня 2012

AlexeiK
> попробовал 13, не завелась . такое же состояние разрушенности ui :)
Ты не через http-прокси сидишь случайно? Антивирь ещё можно отрубить, некоторые блокируют websocket-ы. Не должно быть такого.
> только у тебя больше визуальный рассинхрон.
Это не визуальный рассинхрон, это лаг. Рассинхрон это когда состояние игры различается в одно и то же игровое время. Например на сервере нет бомбы, а на клиенте она есть.
> а может подскажешь, про механизм : в какой тик выполнять какую команду?
> я полагаю у меня типа warcraft технологии. у них тоже самое только через p2p.
Для выполнения тика каждый клиент должен прислать список команд, либо пустой список. Сервер это собирает и когда все отрапортовали - рассылает всем сразу. Чтобы не было ожиданий, клиенты отсылают информацию о будущих тиках а не о текущих. AlexeiK

#57
14:26, 6 июня 2012

Jedi_Knight , а кстати да) похоже блокировка websocket вернее портов, которые ты юзаешь. есть файрволл. но не мною администрируемый.


То есть мне надо вычислять следующий шаг, отправлять его на сервер, послушать сервер, обработать чьи то будущии тики , опять вычислить следующий шаг на начало цикла?

#58
15:21, 6 июня 2012

Вообще то вспомнил, что из дома тоже пробовал и получил такой же результат.

#59
16:28, 6 июня 2012

AlexeiK
> Jedi_Knight , а кстати да) похоже блокировка websocket вернее портов, которые
> ты юзаешь. есть файрволл. но не мною администрируемый.
Я юзаю 80-ый порт. Это значит что траффик по этому порту не блокируют а меняют проксёй.

> Вообще то вспомнил, что из дома тоже пробовал и получил такой же результат.
Значит дома у тебя тоже что-то этот траффик режет.

> То есть мне надо вычислять следующий шаг, отправлять его на сервер, послушать
> сервер, обработать чьи то будущии тики , опять вычислить следующий шаг на
> начало цикла?
Да, только отправляешь ты например команды для tick+5 а получаешь с сервера в это время команды всех пользователей на tick+1

UPD. И ещё кроме команд с сервера отправляй кеш игрового состояния, если где-то не совпадёт то всё, рассинхрон.

Страницы: 1 2 3 4 5 Следующая »
ПроектыФорумОцените

Тема в архиве.