Предложения по серверу Flash-игр (Node.js, Red5 и т. Д.)

Краткое описание:

У нас есть завершенная флеш-игра, похожая на Tetris, которая готова к "подключению" для многопользовательской игры . Проведя небольшое исследование и спросив здесь: Flash Sockets, Peer-to-Peer Capabilities , мы пришли к выводу, что P2P-сеть, реализованная так же, как игры для xbox / ps3 и онлайн-игры, невозможна без дорогих / сомнительное программное обеспечение / услуги Adobe (FMS / Cirrus) на платформе flash на данный момент. По сути, флэш-клиенту не разрешается становиться "хостом", прослушивающим сокеты без протокола RTMFP.

Вопрос, требующий предложений:

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

1.) Fat Server с игровой логикой, Light Clients обновляют отображение / интерполяцию на основе обновлений сервера (Ala Quake)

2 .) Легкий сервер, обеспечивающий обмен данными между толстыми клиентами (параллельное моделирование, например, RTS-игры)

Проблема в том, что мы неопытны, когда дело касается сетевых игр, и поэтому очень хотели бы получить совет о плюсах и минусах этих решений (или даже другие решения). Наша игра в тетрис не так тривиальна, как отправка «атакующих линий», когда клиент очищает линии, чтобы добавить их к другим игрокам, сражающимся в данный момент. Нам нужно немного больше синхронизации в реальном времени, чем это. Например, список следующих тетримино - это единый общий источник, где все «борются» за желаемые фигуры.

Наконец, в зависимости от выбранной реализации, мне интересно, есть ли у кого-нибудь опыт работы с Node.js на игровых серверах. Я бы предположил, что если бы сервер был легким сервером, обрабатывающим только передачу данных между клиентами, Node идеально подошел бы. Однако, если бы игровая логика была размещена на сервере node.js, я бы предположил, что блокирующий характер вычислений сделает излишним подход Node.js к безблокирующему вводу-выводу? В любом случае, мы будем благодарны за любые советы по этому вопросу.

8
задан Community 23 May 2017 в 12:04
поделиться