2015-11-05 1 views
1

В настоящее время я делаю html5 игру с node.js и socket.io. Основы игры - это 4 человека, которые перемещаются по кругу, пытаясь ударить друг друга ...следует использовать websockets или webRTC для игры 4player

Мой вопрос: следует ли использовать Websockets или WebRTC? Что лучше всего подходит для такого рода общения? peer to peer с 4 игроками или над сервером?

Не стесняйтесь поделиться своими мыслями, я довольно новый для этой вещи ..

+1

Основная вещь, которую вы хотите спросить: кто владеет государством и данными? Если состояние и данные хранятся на клиентах и ​​отправляются/получаются напрямую и друг от друга, что происходит, если клиент отключается? Часть игры уходит? Что, если они обманывают, обманывая данными? Вы предпочли бы, чтобы сервер владел данными (или, по крайней мере, проверял их) по этим причинам? – xdumaine

ответ

3

WebRTC может быть использован не только для потокового аудио/видео, но и для передачи данных. И P2P полезен при отправке огромного количества данных.

В вашем случае движение очень мало. И я вижу много преимуществ использования сервера - синхронизации или в будущем таких функций, как аутентификация или история.

Существует также часть реализации. С WebRTC вам все равно нужен сервер сигнализации. И websockets гораздо проще реализовать, так как у вас нет части согласования сеанса. Также соединение происходит быстрее.

Лично в вашем случае я бы не стал беспокоиться о WebRTC.

Позднее обновление: Там также проблема поддержки браузеров: websockets против WebRTC как @Myst упоминается в комментариях.

+1

Я бы также упомянул, что поддержка браузера WebRTC в настоящее время ограничена. Websockets будет работать на более широком спектре браузеров и клиентов. – Myst

+1

Если вы используете новейший socket.io, вы можете использовать socket.io p2p, чтобы настроить каналы данных webrtc между клиентами без каких-либо дополнительных накладных расходов. http://socket.io/blog/socket-io-p2p/ – xdumaine

+0

спасибо за ответ, поддержка браузеров не так важна, как я делаю это для школьного задания, направленного на новые технологии. Возможно ли использовать этот p2p socket.io в среде 4player, хотя, поскольку он говорит о двунаправленном канале событий между двумя одноранговыми узлами? думаю, что я попробую сначала с сокетами и посмотрю, как все будет развиваться. –

0

Используйте оба варианта.

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

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

В то же время я отправлял данные с веб-сокетами на сервер, как хранитель правды в игре, чтобы проверить, что никто не обманывает.

Четыре игрока не должны быть проблемой. Попросите каждого клиента открыть одноранговое соединение со всеми другими клиентами в «сетке».