Я заинтересован в создании игры, в которой в настоящее время у меня есть опыт совместной игры, однако мне любопытно, как лучше всего реализовать это в HTML5.
Я делал игры прежде, чем использовать прямые C-сокеты, а также с сетевой библиотекой для SDL.
Каковы некоторые из моих лучших вариантов сделать это в среде на основе холста?
В настоящее время все, что я могу придумать, - это либо решения AJAX / базы данных (с высокой частотой обновления), либо каким-либо образом реализация сервера PHP, который направляет данные через сокеты.
Общий игровой процесс будет представлять собой игру типа платформер 2.5D, поэтому обоим клиентам необходимо постоянно обновлять позиции игроков, позиции врагов, снаряды, данные об окружающей среде и т. Д.
networking
multiplayer
html5
the_e
источник
источник
Ответы:
Socket.IO предлагает систему, построенную поверх нескольких других слоев (включая веб-сокеты, flash, кометные техники) с изящным выбором.
Node.js - это один из вариантов запуска на стороне сервера.
источник
Смотрите этот ответ :
источник
« Комета », вероятно, является общим термином, который вы могли бы использовать здесь. WebSockets будет более желательным вариантом, хотя (когда они счастливы, что это безопасно).
источник
Node.js является ответом. Я использовал его для разработки многопользовательской стрелялки в реальном времени, и от начала до конца потребовалось около 1 месяца. Он представлял некоторые уникальные проблемы, такие как необходимость минимальной задержки, и все игроки должны синхронизироваться друг с другом, чтобы концепция работала.
Как на стороне клиента, так и на стороне сервера они написаны на javascript и совместно используют классы / логику. Это начинает учитываться при попытке исправить ошибки, так как вам не нужно реализовывать все дважды.
Игра продолжалась около 2 месяцев без перезапуска, и были сыграны тысячи матчей.
Socket.io является частью сокетов и использует node.js, однако в данный момент он слишком раздут для игры. На github есть другие реализации websocket для node.js, а также примеры игр, в которых он используется.
источник
Вы всегда можете просто использовать AJAX и какую-то очередь сообщений. ActiveMQ - хороший пример. Вы запускаете ActiveMQ на сервере, тогда ваш JavaScript может отправлять и получать сообщения. Просто сделайте так, чтобы у каждого игрока было уникальное имя, и отправляйте сообщения другому игроку.
источник
Вы можете попробовать использовать http://easywebsocket.org/ , он прост в реализации и представляет собой решение serverLess, основанное на websocket :)
источник
В настоящее время я использую это: http://code.google.com/p/phpwebsocket/ в качестве сервера сокетов для тестирования. Он делает звонки на C сокеты, которые вы используете. Может быть какой-то службы.
источник
Мы работаем над многопользовательской платформой, которая может показаться вам интересной. Вы можете увидеть наш проект на www.16cubes.com - мы предоставляем простой слой javascript для одноранговой связи. Он в некоторой степени основан на принципе Comet, и у нас есть планы перейти к использованию веб-сокетов, поскольку он станет немного более стандартизированным. С другой стороны, мы предоставляем некоторые функции с полки, такие как автоматическое сопоставление оппонентов, игровой чат, приглашение в Facebook одним щелчком мыши и т. Д.
У нас есть демоверсия, вы, вероятно, получите лучшее представление, если увидите его. И да, вы тоже можете играть анонимно. Регистрация не требуется, если вы не хотите. Существует менее 10 API-интерфейсов javascript, с которыми вам нужно кодировать, и они доступны по адресу www.16cubes.com/documentation.
Мы активно ищем отзывы, поэтому дайте нам знать, как хорошие, так и плохие
источник
Посмотрите на эту платформу, которую я создал специально для создания многопользовательских html5-игр в реальном времени с использованием node.js в подходе клиент / сервер. Где сервер запускает игровую симуляцию, а игроки только отправляют входные данные.
демо: http://vimeo.com/24149718
РЕПО: https://github.com/onedayitwillmake/RealtimeMultiplayerNodeJs
источник