5 сокет-серверов для мультиплеерных флеш-проектов. Краткий обзор

В последнее время погуглил тему флеш и мультиплеерность, установил нагугленное на рабочие машины (домашние версии XP и win7), а также самое интересное —  порылся в примерах и документации.
Задачи написать ММО и поддерживать одновременно тысячи пользователей  в онлайне не стоят, поэтому расширяемость, кластеризацию и другие страшные слова не рассматриваю.
В обзор попали: ElectroServer 4.0.6, SmartFoxServer 1.6.6, Player.IO, Photon и UnionPlatform 1.0 Alpha7
Делюсь результатом:





ElectroServer 4.0.6

Клиентская часть на AS3.
Адрес сайта: http://electro-server.com/
  • Триал-версия: 25 игроков одновременно в онлайне  (далее ccu) — бесплатно.  Следующая версия от $700 за 500 ccu.
  • Документация: примеры (мало), описание технологии — ок,  описание API есть, без примеров вызовов
  • Серверные скрипты:  java
  • Протокол: бинарный (меньше трафика чем xml или json, соответственно работает быстрее и с претензией на realtime). В версии ES5 протокол еще ужат и улучшен. К сожалению 5-ю версию для ознакомления не скачать. Ее выдают купившим 4-ю.
  • Контроль игровой зоны и комнат. Полный доступ со стороны сервера.
  • Админка : через веб

SmartFoxServer 1.6.6

Клиентская часть на AS2, AS3. Наверное самый популярный сервер. Две версии: Бейсик и Про. Основное отличие в серверных скриптах: Бейсик работает только как ретранслятор сообщений в игровой комнате, что является дырой в безопасности логики игры. Далее рассматривается версия Про.
Адрес сайта: http://smartfoxserver.com/
  • Триал-версия: 20 ccu — бесплатно.  Следующая версия от 500 Евро за 100 ccu, 1000 Евро за 500 ccu, 2000 Евро за анлим.
  • Документация: примеры, описание технологии — ок,  туториалы, описание API.  Много устаревших примеров с кодом  в кадрах и даже на кнопках вроде on(Release).
  • Серверные скрипты:  java, as1, python
  • Протокол: текстовый xml или  json. В следующей версии обещают бинарный.
  • Контроль игровой зоны и комнат. Полный доступ со стороны сервера.
  • Админка : swf

Player.IO

Клиентская часть на AS3. Наверное самый “быстростартуемый” сервис для тех, кто хочет попробовать создать мультиплеерную игру. Не случайно написал сервис — эти ребята предлагают услуги хостинга своего сервера в производительном датацентре. Разработчику дается локальная версия, отрабатывающая только серверную логику, но не коннект пользователя к серверу. Таким образом игра привязана к ихнему серверу. Это одновременно и плюс и минус.
Адрес сайта: http://playerio.com/
  • Триал-версия: 500 ccu — бесплатно в рамках 20 Гигабайт трафика (в обе стороны).  $25/месяц за 5000 ccu и 100Гбайт трафика (с последующими $0.6 за Гигабайт) .
  • Документация: примеры, описание технологии,  туториал, описание API с примерами вызовов функций.
  • Серверные скрипты:  C#
  • Протокол: бинарный
  • Контроль только игровой комнаты. Комнаты создаются клиентом (на сервере при этом создается instance серверного скрипта). Серверная часть игры ничего не знает о других комнатах и игроках в них. Взаимодействие комнат возможно только через базу данных (встроенную в сервис или внешнюю на вашем ресурсе).
  • Админка : встроенная в сервис. Хороший “дебаг” комнат у девелоп-сервера.

Photon

Мощное мультиплатформенное решение для ММО и FPS с поддержкой не только TCP, но и “рилтаймого” UDP протокола. Единственный в обзоре сервер написанный на C++ и очевидно самый быстрый в работе. Серверные примеры снабжены Unit-тестами. В комплекте идет остов MMO-проекта для Unity3d и .NET. Однако нас интересует флеш. А с ним не все так весело. Итак, клиентская часть на AS3.
Адрес сайта: http://photon.exitgames.com/
  • Триал-версия: 50 ccu — бесплатно.  Для инди-разработчиков предлагаются дешевые лицензии $100 за 100 ccu, $450 за 500 ccu. Для крупных компаний цены другие.
  • Документация: два примера (чат и рисовалка), описание технологии,  описание API.  Базовая комплектация сервера минимальна: только обмен сообщениями и контроль клиентов и комнат. В Примерах серверной части есть расширения Lite и Lobby представляющие более функциональные остовы для игр.
  • Серверные скрипты:  C#
  • Протокол: бинарный
  • Контроль игровой зоны и комнат. Полный доступ со стороны сервера. Возможность задавать видимость клиентами-игроками друг друга, таким образом ограничивая  рассылку ненужных конкретному клиенту сообщений.
  • Админка: расширение системного счетчика ресурсов, dashboard (что там показывается увидеть не удалось, для запуска требует установки MS Message Queues)
  • Сервис Neutron MMO Server, это расширенная редакция Фотона на ихнем хостинге с плюшками, поддержкой, админкой. Начинается от $100  за 50 ccu per application.

UnionPlatform 1.0  Alpha 7 версия

Пока бесплатная альфа, с вытекающим отсюда следствием: вы не платите потому что тестируете :) Будущее также не ясно: очень мало упоминаний в интернете, нет примеров, что понятно. Клиентская часть на AS3.
Адрес сайта: http://www.unionplatform.com/
  • Триал-версия: пока никаких ограничений нет, в будущем обещают конкурентные цены.
  • Документация: примеры, описание технологии,  описание API с  примерами вызовов функций. Туториалы. Все достаточно понятно. Видимо их писал один из авторов сервера, знакомый нам по книжкам, — Колин Мук.
  • Серверные скрипты:  java либо любой  из списка https://scripting.dev.java.net/
  • Протокол: xml упакованный  в собственный формат Procedure Call (UPC) protocol
  • Контроль игровой зоны и комнат. Полный доступ со стороны сервера.
  • Админка : swf, похожа на SmartFoxServer

Бонус трек:

Blossom Server
Увидел сегодня, пока не смотрел. Судя по всему это ретранслятор сообщений между клиентами. Fast, free, and easy. Последние новости от прошлого года, документация только на клиентскую часть.
Адрес сайта: http://blossom-server.com/
Выводы:
  1. Есть из чего выбрать :)
  2. Закрытость платформы  отпугивает (в обзор не попал к примеру сервер Альтернативы)
  3. SmartFoxServer знают все, забавны упоминания этого сервера на форумах поддержки разработчиков других серверов.
  4. E-S конкурирует с SFS на равных.
  5. Union очень интересный и понятный, жаль альфа.
  6. Player.IO хорош для старта, а опытным разработчикам скорее всего понравится полный контроль всего и вся, что дает Photon.
Пояснения:
Комната (Room) — объединение игроков. Игроки получают сообщения от других игроков комнаты.
Игровая зона (Zone) — объединение комнат, по сути вся игра.
Контроль игровой зоны и комнат со стороны сервера означает возможность создания на решении не только игр-комнат, но и ММО-игры, где есть NPC и монстры, игровые события, список друзей, зоны видимости игроков и т.п.

Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями. Для этого воспользуйтесь предлагаемыми ниже кнопками:



Блог: http://romanlovetext.blogspot.com/