Какие технологии использовать для браузерной игры?

Самый примитивный причер: несколько игроков(2+) на своих компах запускают в браузере приложение, в котором каждый управляет шариком. Управлять могут стрелочками. Т.е. когда кто-то шарик двигает, другие игроки тоже этот процесс наблюдают.

Вот думаю как это реализовать. Пока на ум приходит только Flash и RTFMP? Есть ли еще адекватные варианты?

Так же попутно идеологички-технический вопрос касательно передачи передвижения шарика? Если я двигаю свой шарик, что передавать другим игрокам? новые координаты шарика? позиция + направление? что делать если нужно чтобы шарики у каждого игрока имели разную скорость? и т.д.
  • Вопрос задан
  • 2569 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Maccimo
Так же попутно идеологички-технический вопрос касательно передачи передвижения шарика? Если я двигаю свой шарик, что передавать другим игрокам? новые координаты шарика? позиция + направление? что делать если нужно чтобы шарики у каждого игрока имели разную скорость? и т.д.
С клиента на сервер передавать направление движения и скорость.
С сервера клиентам рассылать новые координаты объектов, направления движения всех (!) подвижных объектов и их скорости.

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

Стоит учесть, что в ряде случаев это может приводить к резким «скачкам» подвижных объектов на карте
т.к. в передаче данных по сети возможны задержки.

Плюсы этого подхода:
  • усложнение жизни недобросовестным игрокам, пытающимся изменить игровую ситуацию в обход правил. Например, перенестись в противоположный угол игрового поля послав на сервер специально сформированную команду. Довольно частое явление, кстати.
  • борьба с рассинхронизацией отображения игрового поля у различных игроков.

Минусы:
  • задержки в сети могут приводить к не красивым визуальным эффектам
  • алгоритм рассчёта движения прийдётся реализовывать и на клиенте и на сервере. Причём они должны возвращать идентичные результаты при одинаковых входных данных.
Ответ написан
Комментировать
Фронтенд на Flash, который подключается к серверу, написанному, к примеру на Java, который осуществляет обмен информацией между игроками.

За отсутствием информации о правилах игры и игровом процессе скажу примерно.

Передавать старые и новые координаты шарика, чтоб клиенту не помнить о старых координатах шарика каждого игрока.

Передавать скорость передвижения шарика, если это необходимо.
Ответ написан
Комментировать
WebSocket — Вам поможет. А реализация, хоть флеш, хоть джава-скрипт.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы