Варианты флеш-коммуникации для игр на двоих - PullRequest
0 голосов
/ 12 февраля 2010

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

Поскольку я не флэш-парень, а программист на ruby, мне стало любопытно: какие варианты коммуникации предлагает flash для такого типа обмена данными, чувствительного ко времени? Я думал о создании коммуникационного сервера на основе ruby-eventmachine, чтобы минимизировать зависимости от внешних программ. Будет ли это вообще возможно?

Ответы [ 2 ]

1 голос
/ 12 февраля 2010

Вы можете создать сервер на (почти?) Любом языке, который поддерживает сокеты, и управлять своими клиентами с этим.

С точки зрения флэш-памяти вы можете использовать ruby, но я не знаю, насколько подходящим будет ruby ​​для этой задачи ... Я имею в виду, вы можете сделать сервер сокетов PHP , но он не справится много стресса.

Альтернативой SmartFoxServer может быть открытый исходный код Red5 , написанный на Java.

Если вы хотите узнать о встроенных возможностях flash в обработке p2p: Flash p2p: Эвереттская церковь В Flash Player 10 Adobe добавлена ​​поддержка Live Media (RTMFP). Медиа всегда получалась от издателя. В бета-версии Flash Player 10.1 были представлены группы и многоадресная рассылка на уровне приложений.

Однако вам все равно понадобится сервер ( Stratus ) для обработки представлений и управления активными соединениями. (Кроме того, я считаю, что он ориентирован на флеш-видео, Stratus не поддерживает общие объекты или сценарии. Поэтому в Stratus ваши приложения будут клиентами, обменивающимися данными напрямую друг с другом.)

Edit: Перечитав ваш вопрос и ответ, предоставленный Бэнишем, я думаю, что в первый раз я понял ваш вопрос неправильно. Поэтому я просто переписал свой ответ ...

1 голос
/ 12 февраля 2010

Хотя у меня нет полного ответа для вас, потому что я не закончил сам, я оказался почти в том же положении, что и вы.

Мой текущий подход заключается в том, чтобы мой ruby-сервер по сути был просто сокет-сервером, который обрабатывает все взаимодействие между клиентами, однако я лично намерен сохранить любую логику вне сервера (если я не наткнулся на причину изменения эта идея).

Если вы еще не программировали сокеты в ruby, я рекомендую следующее в качестве отправной точки. Это документ IBM по программированию на Ruby Socket, в котором обсуждается подход к асинхронным данным: Ruby Sockets - IBM

Я думаю, что в конечном итоге это будет производительность. В настоящее время я использую версию моего сервера ruby ​​в своей повседневной работе, но данные не должны обновляться с учетом времени.

...