Введение
1.1. Глоссарий
Распределенная система – асинхронная система, части которой взаимодействуют с помощью отправки и получения сообщений.
Организатор игры – лицо, не участвующее в игровом процессе, но контролирующее его.
Главный сервер (MainServer) — приложение, выполняющее управление и координацию других элементов системы.
Игрок (Player) — пользователь распределённой системы.
Игровой мир — имитационная модель обработка, которой является основной целью распределённой системы.
Объект-карта (Map) — определенная часть игрового мира.
Сервер карты (MapServer) — приложение, способное обрабатывать отдельный участок игрового мира, предоставлять игроку функции взаимодействия с игровым миром. Сервер карты способен взаимодействовать с другими компонентами системы.
1.2. Описание предметной области
Всемирная сеть Internet дала толчок к появлению новых проблем в области разработки искусственного интеллекта, экономических моделей и теории игр. Это обусловлено тем, что Internet предоставляет возможность как параллельных, так и последовательных взаимодействий. Примером моделей, построенных по принципу параллельных взаимодействий, являются распределенные игры.
Главной проблемой многопользовательских онлайновых игр (Massively-Multiplayer Online Games, MMOGs) являлось ограничение, накладываемое архитектурой сервер-клиент, пока некоторыми исследователями не было предложено использовать сеть серверов для обработки игрового процесса. При использовании такого подхода встает проблема координации действий серверов и игроков, подключенных к ним, однако данная архитектура позволяет избавиться от огромных производительных затрат, неизбежных при использовании классического сервер-клиентского подхода.
1.2.1. Проект “Пошаговая распределенная игра”
В рамках данного проекта должна быть разработана многопользовательская распределенная игра, позволяющая игроку взаимодействовать с объектами игрового мира и другими игроками. Игру решено было сделать в жанре пошаговой космической стратегии.
1.3. Неформальная постановка задачи
Пошаговая распределенная игра должна состоять из следующих частей:
• Системы, обеспечивающей функционирование игрового мира (серверная часть)
• Системы, обеспечивающей взаимодействие игрока с игровым миром и другими игроками (клиентская часть)
Серверная часть игры должна:
• Распределять вычислительную нагрузку между серверами карт
• Принимать и обрабатывать команды игрока
• Сообщать клиентскому приложению о состоянии игрового мира
Клиентская часть игры должна:
• Обрабатывать сообщения сервера о состоянии игрового мира
• Отправлять команды игрока серверу
1.4. Обзор существующих методов решения
Стандартным подходом к решению проблемы обработки данных и обслуживания клиентов является построение системы с использованием двухуровневой архитектуры «Клиент—Сервер» (см. Ошибка! Источник ссылки не найден.). Однако, учитывая достоинства и недостатки трёхуровневой архитектуры (см. Error! Reference source not found.) по сравнению с двухуровневой архитектурой (см. Error! Reference source not found.) при разработке данного проекта было решено использовать трёхуровневую архитектуру.
Рисунок 1 Двухуровневая архитектура Рисунок 2 Трехуровневая архитектура
Таблица 1 Сравнительная таблица двухуровневой и трехуровневой архитектуры
Двухуровневая архитектура Трёхуровневая архитектура
Достоинства • Простота реализации системы • Меньшая нагрузка на сервер
• Относительно низкие аппаратные требования
• Возможность масштабируемости системы
|