Статья:

Особенности выбора архитектуры для браузерных многопользовательских игр

Конференция: VII Студенческая международная научно-практическая конференция «Технические и математические науки. Студенческий научный форум»

Секция: Технические науки

Выходные данные
Снопкова А.М., Данилова В.В., Бутенко Н.С. [и др.] Особенности выбора архитектуры для браузерных многопользовательских игр // Технические и математические науки. Студенческий научный форум: электр. сб. ст. по мат. VII междунар. студ. науч.-практ. конф. № 7(7). URL: https://nauchforum.ru/archive/SNF_tech/7(7).pdf (дата обращения: 23.12.2024)
Лауреаты определены. Конференция завершена
Эта статья набрала 0 голосов
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

Особенности выбора архитектуры для браузерных многопользовательских игр

Снопкова Алла Михайловна
студент, Кубанский государственный университет, РФ, г. Краснодар
Данилова Виолетта Валерьевна
студент, Кубанский государственный университет, РФ, г. Краснодар
Бутенко Надежда Сергеевна
студент, Кубанский государственный университет, РФ, г. Краснодар
Локтев Евгений Сергеевич
студент, Кубанский государственный университет, РФ, г. Краснодар
Куликова Наталья Николаевна
научный руководитель, канд. биол. наук, доцент, Кубанский государственный университет, РФ, г. Краснодар

 

Высоконагруженными (от англ. Highload) называют системы безостановочного доступа, то есть те структуры, запрос данных из которых позволяет получать информацию без длительной задержки при беспрерывной работе [1]. Иными словами, высоконагруженные системы – это, в основном, те же веб-сайты (либо веб-приложения), только с очень большим количеством пользователей и как следствие с большой нагрузкой, требующей оптимизированной серверной части веб-сайта (либо веб-приложения). Качественной характеристикой для высоконагруженной системы является пропускная способность этой системы, она описывает количество работы, которую должна уметь выполнять система в единицу времени.

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

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

 Браузерные игры разделяют на следующие типы:

- ролевые online-игры – игры, которые представляют собой моделирование событий, происходящих в данный момент времени в определенном пространстве;

- стратегии – игры, которые базируются на стратегическом планировании и тактику для достижения необходимых целей (делятся на два типа: стратегии реального времени и пошаговые стратегии);

- социальные online-игры – многопользовательские игры, которые основаны на взаимодействии реальных игроков в определенный момент времени и на определенной локации;

- квест – игры, представляющий собой приключенческую историю, главный герой которой является сам игрок;

- симуляторы – игры, имитирующие жизнь живых организмов, управление техникой или транспортным средством;

- экшн – игры, в которых победа игрока целиком и полностью зависит от скорости реакции и быстрого принятия решения;

- настольные online-игры – игры, такие как шашки, шахматы, нарды и другие.

Браузерные игры также можно разделить на три категории: однопользовательские, многопользовательские и массово-многопользовательские.

Однопользовательская браузерная игра – это online-игра, в которой принимает участие один пользователь. На данный момент популярность пришлась разработку игр под CANVAS на языке программирования JavaScript. Поэтому, сейчас можно встретить достаточно много однопользовательских игр, написанные на данной платформе.

Многопользовательские браузерные игры – это игры, при котором одновременно играют несколько пользователей [2]. Браузер обеспечивает связь игроков между собой посредством игрового сервера.

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

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

В настоящее время, можно выделить две основных архитектуры, которые используются про разработке многопользовательских браузерных игр. Это клиент-серверная архитектура и «точка-точка».

Подавляющее большинство многопользовательских игр использует классическую архитектуру клиент-сервер. Эта архитектура создает некоторые проблемы. Вся нагрузка виртуального мира ложится на сервер, так как никакая отдельная клиентская машина не может справиться с потоком обрабатываемых данных. Поэтому разрабатываются сложные архитектурные решения для распределения нагрузки на разные серверы. Основное внимание при этом, уделяется тому, как распределять наиболее эффективно нагрузку на разные физические устройства. К задачам, которые должны решать эти устройства относят, например: клонирование виртуального мира, разделение его на зоны, обработка входа и т. д.

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

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

Большинство многопользовательских игр сегодня используют четырехуровневую архитектуру: уровень клиента, уровень прокси, уровень приложения/игры, уровень базы данных.

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

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

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

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

 

Список литературы:
1. Бунин О. Разработка высоконагруженных систем. – М.: Издательство Олега Бунина, 2014. – 414.
2. Глейзер Д., Мадхав С. Многопользовательские игры. Разработка сетевых приложений. – СПб.: Питер, 2017. – 368.