Ленин, Сталин, Тетрис!











Категории

Создание игр [51]
Анонсы, прогресс, релизы компьютерных и консольных игр, разрабатываемых теми или иными игроделами, студиями или компаниями.
Средства разработки [137]
Обновления игровых 2D и 3D движков, конструкторов игр, сред разработки, систем программирования и т.д.
Разработчики игр [52]
Информация о событиях в тех или иных компаниях игровой индустрии, новости от студий разработчиков игр.
Мероприятия [217]
Объявления и информация о проведении конференций разработчиков игр, конкурсов и соревнований по созданию игр.
Программы [21]
Обновление софта, программного обеспечения, утилит и различных инструментов в помощь разработчикам игр.
Наш сайт [5]
Новости об обновлениях сайта GameDev.su, события среди сообщества и др.
Остальное [95]
Все прочие темы, которые не вошли в специально указанные разделы.

Поиск по сайту

Опрос

Что вы предпочитаете?
Всего ответов: 206

Архив

Рекомендуем

Всё для разработки игр Перевод консольных игр Игровые новости Скачать софт, игры и кино
Главная » 2011 » Июнь » 25 » Сервер CrystalEngine для онлайн-игр
00:13
Сервер CrystalEngine для онлайн-игр
Серверное решение, на основе CrystalEngine, легко создается и быстро масштабируется. Все действия по построению выполняются с помощью визуальных редакторов, и администрирует через Admin Control Panel.

Структурная схема серверов проекта

Обычно реализуется минимум 3 подсети для разработки проекта
1) Подсеть разработчика (в ней происходит разработка структуры и модулей логики)
2) Подсеть тестирования - происходит тестирование проекта клиент-сервер
3) Рабочая подсеть с реальными клиентами

Состав пакета

В полной версии в состав пакета входят приложения:

SuperAdminServer.exe- предназначен для администрирования подсетей, работы с редактором серверной части (ProjectBuilder), администрирования серверов

AdminServer.exe-служитдля администрирования свой подсети

StarterServer.exe- для запуска и остановки рабочих приложений (серверов)

PeerServer.exe- основной, рабочий сервер, запускает и останавливает модули логики, предоставляет транспортные протоколы и сокеты (TCP UDP), в нем происходит работа логики проекта

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

AdminCP.exe - визуальный редактор для администрирования серверов всего решения, создание рабочих серверов (PeerServer), подключение модулей логики, назначение нужной версии серверной библиотеки для подсетей, работа с архивом.
Все приложения могут запускаться как windows сервисы так и как обычные приложения. Для понимания серверной иерархии обратите внимание на схему ниже

На самом верху находится Супер админ сервер, который производит администрирование всей серверной части и работает с редакторами. Он дает указания Админ серверам а те в свою очередь администрируют своими рабочими серверами. Рабочие сервера управляют своими модулями логики. Такая структура позволяет очень быстро масштабировать серверную часть вне зависимости, где находятся сервера физически. Например, при большом наплыве пользователей админ-сервер дает указания и его стартер-сервера запустят дополнительное количество рабочих серверов для обработки клиентов. Либо система может находиться в "облаке" например, Amazon и в этом случает - Админ сервер напрямую взаимодействуете АПИ Amazon и запускает дополнительные мощности. Точно также и при оттоке пользователей.

Порядок разработки

1) Разработчик устанавливает SuperAdminServer и редактор ProjectBuilder.

2) С помощью редактора ProjectBuilder создает структуру объектов и команды (все структуры и исходные коды хранятся в месте где установлен SuperAdminServer).

3) Нажатием на одну кнопку "Build" происходит компиляция объектов и команд в библиотеку "ServerEngine.dll" при этом библиотека автоматически подгружается на ПК разработчика. Разработчик подключает библиотеку в Microsoft Visual Studio и с помощью этого лучшего на сегодняшний день отладчика пишет скрипты логики проекта.

4) После создания модулей логики ".dll" разработчик опять же с помощью визуального редактора (AdminCP) подгружает созданные модули на свой сервер и запускает их в работу
Цепочка создания серверного кода
Использованием визуальных редакторов, генераторов кода (код на выходе уже отлажен и стабилен) и применение мощного инструмента Visual Studio для написания скриптов логики достигается высокая надежность серверного кода и снижаются риски проекта со стороны серверной части.

Редактор объектов "Project Builder". При наличии множества настроек, создание объекта происходит очень быстро благодаря уже приготовленным шаблонам и "мастера" создания объектов (Wizard). При этом создание объекта сводится лишь к написанию его имени и выбора его типа, все остальные параметры генерируются автоматически. В дальнейшем при необходимости можно изменить любой параметр. Все редакторы сведены в одно окно и переключаются кнопками сверху. Все редакторы модульные и написаны с учетом структуры движка.

Редактор "AdminCP" с открытой закладкой Монитор сервера Реег55 слева находится дерево серверов, где сразу можно видеть все сервера системы и определить работает в данный момент сервер (подсвечен) или нет (затенен). Путем простого нажатия на кнопки старт и стоп можно запустить или остановить любой сервер. Также можно запустить в работу или перегрузить любой модуль логики на сервер, при этом не останавливая сервер - "горячий рестарт", что особенно важно, когда необходимо обновить модуль и при этом не сбрасывая в офлайн всех подключённых клиентов. Также в каждом модуле показаны все команды, которые он обрабатывает.

Структура модулей логики

Все модули логики представляют собой библиотеки dll (сборки .NET) Каждый модуль логики реализует функции обработки данных, которые доставляются сгенерированной ProjectBuilder библиотекой "ServerEngine.dll". Вызов в работу каждой функции происходит через команды, приходящие от клиента либо от других модулей логики. Если говорить по-простому,то модуль логики подключается к нужным командам и ждет их срабатывания.

При старте -модуль подключается к нужным командам и ждет сигнала кобработке. При остановке -отключается. Через статический класс Root (виден отовсюду) можно получить любые данные:

Из кэша
Из SQL
Из файлового хранилища

Всего одной строкой кода
Можно отправить любую команду любому клиенту или другому модулю, любому объекту данных.

Перечень основных достоинств движка

Очень гибкая структура, позволяющая создавать самые различные решения. Например, легко можно сделать оптимальный сервер, как для локационных игр, так и для больших бесшовных игровых миров.
Любая клиентская часть. Возможность использования в качестве клиентской части любого игрового движка Unity3D, Flash, UDK, и др. На любой платформе Windows, MacOS, Linux.

Нет ограничений в создании логики проекта. Разработчик может использовать любые инструменты среды .NET либо других компиляторов (C++, Delphi).

Транспортная система, система хранения данных отделены от логики, поэтому можно легко менять логику проекта, не изменяю структуру транспорта и хранения данных

Использование быстрой, распределенной базы IS'oSQL в RAM как оперативное хранилище данных (с которыми непосредственно работает логика проекта), позволяет достигнуть высокой скорости работы с данными. Данные просто хранятся в памяти, непосредственно в сервере. База данных SQL используется только как постоянное хранилище объектов

Лекальная транспортная система (связь между серверами) построена на динамических пулах подключений, которые при увеличении нагрузки автоматически добавляют новые подключения, а при уменьшении закрывают. Подключения являются полностью дуплексными, то есть могут одновременно передавать и принимать данные. Отдельно на прием и на передачу.

Сайт - CrystalEngine.ru

Категория: Программы | Просмотров: 1700 | Добавил: GC-Vic | Рейтинг: 5.0/1
Если вас интересуют материалы, схожие с этой заметкой "Сервер CrystalEngine для онлайн-игр", то вам, возможно, будут интересны и полезны следующие новостные записи:
Теги: CrystalEngine, Онлайн сервер, AstarCode, Crystal Engine, ММО, Сервак, MMOG, СЕРВЕР, Клиент-сервер, Для MMO
Также вы можете посоветовать новость "Сервер CrystalEngine для онлайн-игр" своим знакомым, либо обсудить её с другими разработчиками игр, интересующимися такой темой как Программы для игроделов, оставив своё мнение в комментариях ниже.
Всего комментариев: 0
Добавлять комментарии на GameDev.Su могут только зарегистрированные пользователи.
[ Регистрация | Вход ]