Обзор сетевых игр



Pdf просмотр
Дата11.02.2017
Размер71.6 Kb.
Просмотров236
Скачиваний0
ТипОбзор

1
Обзор сетевых игр
Идея сетевых многопользовательских игр не была популярна у основных производителей игр дох, впрочем, нет правил без исключений . В этой главе мы сначала познакомимся с краткой историей эволюции многопользовательских игр, от первых сетевых игр х до обширной современной индустрии . А затем будет представлен обзор архитектуры двух популярных сетевых игр из хи. Многие приемы, применявшиеся в этих играх, используются ив наши дни, поэтому данный обзор поможет лучше понять сложности создания сетевой многопользовательской игры Краткая история многопользовательских игр
Первые прародители современных сетевых многопользовательских игр начали появляться еще в хи работали на университетских мейнфреймах. Однако игры этого рода не получили широкого распространения, пока Интернет не превратился из информационного чуда в нечто обыденное, — это произошло во второй половине х. В этом разделе мы поговорим о том, как появились первые сетевые игры ив каких направлениях шло их развитие почти полвека, начиная с появления первых игровых «динозавров».
Локальные многопользовательские игры
Некоторые из ранних видеоигр были локальными многопользовательскими, в том смысле, что допускали возможность участия двух и более игроков в игре на одном компьютере. К числу таких игр относятся самые первые игры, включая «Tennis for Two» (1958) и «Spacewar!» (1962). Локальные многопользовательские игры программируются практически также, как однопользовательские. Единственное отличие заключалось в наличии нескольких изображений игровой сцены на экране и/или поддержке нескольких устройств ввода. Так как программирование

18 Глава 1 Обзор сетевых игр локальных многопользовательских игр очень схоже с программированием одно- пользовательских игр, в этой книге к нему мы больше не вернемся.
Ранние сетевые многопользовательские игры
Первые сетевые многопользовательские игры работали в небольших сетях, состоящих из больших ЭВМ. Главное отличие сетевой многопользовательской игры от локальной многопользовательской состоит в том, что в активный сеанс игры включены два или более компьютера, соединенных друг с другом. Одной из таких сетей больших ЭВМ была система PLATO, разработанная в Иллинойском университете. Именно в системе PLATO была создана одна из первых сетевых игр — пошаговая стратегия «Empire» (1973). Примерно в тоже время увидела свети сетевая игра от первого лица «Maze War», и до сих пор нет единого мнения о том, какая из двух может претендовать на первородство.
С началом распространения персональных компьютеров в конце х разработчики искали способы организации взаимодействия двух компьютеров через
последовательные порты. Последовательный порт позволяет передавать данные по одному биту, и основным его назначением было взаимодействие с внешними устройствами, такими как принтеры или модемы. Однако сего помощью также можно было связать два компьютера и организовать обмен данными между ними. Это позволяло создать игровой сеанс, объединяющий несколько персональных компьютеров, благодаря чему появились первые сетевые игры для PC. В декабрьском номере журнала «BYTE» за 1980 год была опубликована статья Вассермана и Страйкера о том, как программировать так называемые многомашинные игры на Бейсике.
Но большой недостаток использования последовательных портов состоял в том, что компьютеры обычно имели не более двух таких портов (если, конечно, не использовалась карта расширения. Это означало, что для соединения более чем двух компьютеров через последовательные порты необходимо было использовать гирляндную схему соединения, в которой множество компьютеров объединялось в кольцо. Такая организация компьютеров является одним из вариантов топологии сети, о которых подробнее рассказывается в главе 6 Топологии сетей и примеры игр».
Так, несмотря на наличие технологии, доступной уже вначале х, большинство игр, выпущенных в течение десятилетия, не использовало имевшиеся сетевые возможности. Только в е идея объединения нескольких компьютеров в локальную сеть для игры получила дальнейшее развитие, о чем рассказывается ниже в этой главе.
Многопользовательский мир
Многопользовательский мирили МПМ (Multi-User Dungeon, MUD), — это обычная текстовая многопользовательская игра, в которой несколько игроков подключаются к общему виртуальному миру. Игры этого вида впервые появились на больших ЭВМ в крупных университетах, а сама аббревиатура MUD происходит от названия игры «MUD» (1978), созданной Робом Трушоу из Эссекского универси-
Краткая история многопользовательских игр 19
тета. Многопользовательский мир можно считать ранней компьютерной версией ролевой игры «Dungeons and Dragons», хотя не все многопользовательские миры были ролевыми играми.
С ростом мощности персональных компьютеров производители аппаратного обеспечения начали выпускать модемы, позволяющие двум компьютерам обмениваться данными по стандартным телефонным линиям. Несмотря на то что скорости обмена были чрезвычайно низкими по современным меркам, модемы давали возможность играть в многопользовательских мирах уже вне стен университетов. Некоторые запускали игры МПМ в электронных досках объявлений (Bulletin Board
System, BBS), позволявших нескольким пользователям подключаться посредством модемов и выполнять множество действий, в том числе и играть в игры.
Игры в локальных сетях
Термин локальная сеть (Local Area Network, LAN) используется для описания соединения нескольких компьютеров в относительно небольшую сеть. Для создания локальных соединений могли использоваться самые разные механизмы — одним из примеров служит объединение в сеть через последовательные порты, как описывалось выше в этой главе. Однако звездный час локальных сетей пробил с появлением
Ethernet (протокола, который подробнее рассматривается в главе 2 «Интернет»).
Игру «Doom» (1993) во многом можно считать прародителем современных сетевых игр, хотя она и не была первой игрой, обеспечивающей многопользовательский режим в локальной сети. Первая версия шутера от первого лица, выпущенная компанией, поддерживала до четырех игроков водном сеансе игры с возможностью играть вместе против компьютера или каждый сам за себя. Так как «Doom» был активной игрой с быстро изменяющейся игровой ситуацией, он потребовал реализации нескольких важнейших идей, описываемых в этой книге. Конечно, все эти приемы претерпели существенные изменения после 1993 года, но первенство
«Doom» в данной области никем не оспаривается. Подробнее история создания
«Doom» описывается в книге «Masters of Doom» (см. ссылку в конце главы).
Многие игры, предполагавшие использование многопользовательского режима, поддерживали взаимодействия игроков не только в локальных сетях, но также через модемные или телекоммуникационные соединения. Через несколько лет уже подавляющее большинство сетевых игр обеспечило поддержку локальных сетей. Это привело к появлению клубов, оснащенных соединенными в сеть компьютерами, в которых собирались любители сетевых игр. Несмотря на то что некоторые сетевые многопользовательские игры все еще выпускаются с поддержкой локальных сетей, в последние годы на рынке доминируют многопользовательские онлайн­игры.
Онлайн-игры
В онлайн-игре игроки связываются друг с другом посредством некоторой глобальной сети. В настоящее время онлайн-игры часто называют интернет-играми, но термин «онлайн» намного шире и включает также некоторые ранние сети, такие как CompuServe, которые раньше небыли соединены с Интернетом.

20 Глава 1 Обзор сетевых игр
С началом бурного развития Интернета в конце х начался расцвет онлайн- игр. В числе игр, завоевавших популярность в этот период, можно назвать «Quake»
(1996) компании id Software и «Unreal» (1998) компании Epic Game.
Хотя может показаться, что онлайн-игры реализуются также, как игры для локальных сетей, главной проблемой онлайн-игр являются задержки, неизбежно возникающие при передаче данных посети. Первоначальная версия «Quake», например, вообще не предполагала взаимодействия через интернет-соединения, и только с выходом исправлений QuakeWorld появилась возможность игры через Интернет. Методы компенсации сетевых задержек более подробно рассматриваются в главе 7 Задержки, флуктуации и надежность ив главе 8 Улучшенная обработка задержек».
С появлением в х таких служб, как Xbox Live и PlayStation Network, являвшихся прямыми потомками служб для персональных компьютеров типа GameSpy и DWANGO, стала возможной поддержка онлайн-игр на игровых консолях. В часы пик этими службами пользуются миллионы активных пользователей, хотя, с распространением потокового видео и других служб для игровых консолей, не все эти активные игроки действительно играют в игры. В главе 12 Игровые службы рассказывается, как интегрировать одну из таких служб — Steam — в игру для персонального компьютера.
Массовые многопользовательские онлайн-игры
Даже в наши дни большинство многопользовательских онлайн-игр ограничивается поддержкой небольшого числа игроков водном игровом сеансе — обычно от 4 до
32. Однако в массовой многопользовательской онлайн­игре (Massively Multiplayer
Online Game, MMO) водном игровом сеансе могут принимать участие сотни, если не тысячи игроков. Большинство массовых онлайн-игр — это ролевые игры (Role-
Playing Games), и поэтому их обозначают аббревиатурой MMORPG. Но существуют также и другие виды массовых онлайн-игр, например шутеры от первого лица
(First-Person Shooters, Во многих случаях игры MMORPG можно считать графическим развитием многопользовательских миров. Некоторые из ранних игр MMORPG фактически появились до широкого распространения Интернета и функционировали в коммутируемых сетях, таких как Quantum Link (более позднее название — America Online) и CompuServe. Одной из первых таких игр стала «Habitat» (1986), в которой были реализованы некоторые элементы новейшей технологии, описанные в книге Мор- нигстара и Фармера (см. ссылку в конце главы. Однако только с распространением Интернета игры этого жанра стали обретать популярность. Первым настоящим хитом стала «Ultima Online» (Другие игры MMORPG, такие как «EverQuest» (1999), также имели определенный успех, но настоящий взрыв интереса во всем мире произошел с выходом «World of
Warcraft» (2004). В какой-то момент игра от Blizzard собрала более 12 миллионов активных подписчиков по всему миру и стала настолько значительной частью популярной культуры, что в 2006 году легла в основу одного из эпизодов американского мультипликационного сериала Южный парк (South Park).

Starsiege: Tribes 21
Создание массовых онлайн-игр сопряжено с решением сложных технических задач, часть из которых обсуждается в главе 9 «Масштабируемость». Однако большинство приемов, используемых при этом процессе, далеко выходит за рамки нашей книги. Кроме того, прежде чем даже рассматривать саму возможность создания массовой онлайн-игры, следует ознакомиться с основами создания менее масштабных сетевых игр.
Мобильные сетевые игры
С появлением игр для мобильных устройств не остались в стороне и многопользовательские игры. Многие из них на мобильных платформах являются асин­
хронными — обычно со сменой хода — и не требуют передачи данных в реальном времени. В этой модели игроки извещаются о том, что наступает их право сделать ходи имеют довольно много времени, чтобы выполнить его. Асинхронная модель существовала с самого момента появления сетевых многопользовательских игр. Некоторые электронные доски объявлений имели единственную телефонную линию для входящих соединений, а это означало, что в каждый момент времени к таким системам мог быть подключен только один пользователь. То есть игрок должен был подключиться, сделать свой ходи отключиться. Затем в следующий момент второй игрок может подключиться, чтобы сделать ответный ход.
В качестве примера мобильной игры, использующей асинхронную многопользовательскую модель, можно привести «Words with Friends» (2009). С технической точки зрения асинхронная сетевая игра проще в реализации, чем игра, действующая в режиме реального времени, особенно для мобильных устройств, потому что прикладные программные интерфейсы мобильных платформ (Application
Program Interface, API) уже имеют функции для асинхронных взаимодействий. Использование асинхронной модели для мобильных игр на ранней стадии развития мобильных сетей было практически невозможно из-за низкой надежности этих сетей по сравнению с проводными соединениями. Однако с быстрым ростом числа устройств, поддерживающих Wi-Fi, и улучшением качества мобильных сетей стало появляться все больше сетевых игр реального времени для этих устройств. Примером такой игры, использующей преимущества сетевых взаимодействий в реальном масштабе времени, является «Hearthstone: Heroes of Warcraft» (2014).
Starsiege: Tribes
«Starsiege: Tribes» — это научно-фантастический шутер от первого лица, созданный в конце 1998 года. В то время эта игра считалась одной из лучших благодаря возможности вести динамичное сражение относительно большому количеству игроков. Некоторые игровые режимы разрешали одновременное участие до 128 игроков в локальных сетях или Интернете. Чтобы получить представление о степени сложности реализации таких игр, примите во внимание, что в тот период подавляющее большинство игроков подключалось к Интернету через коммутируемые линии. Пользователи коммутируемых соединений в лучшем случае имели модем, под-

22 Глава 1 Обзор сетевых игр держивающий скорость передачи данных до 56,6 кбит/с. Более того, игра «Tribes» поддерживала подключения со скоростью всего 28,8 кбит/с. По современным меркам это чрезвычайно низкая скорость. Еще один фактор коммутируемые соединения страдали относительно большими задержками — задержки в несколько сотен миллисекунд были обычным делом.
Может показаться, что сетевая модель для игр с низкими требованиями к пропускной способности уже устарела. Но несмотря на это модель, использовавшаяся в «Tribes», по-прежнему остается востребованной в наши дни. Этот раздел описывает исходную сетевую модель игры «Tribes» лишь в общих чертах — более подробное ее описание можно найти в статье Фронмайера и Гифта, ссылка на которую приводится в конце главы.
Не пугайтесь, если какие-то идеи, рассматриваемые здесь, останутся для вас непонятными. Цель этого раздела — дать общее представление об архитектуре сетевой многопользовательской игры, чтобы вы могли оценить количество технических проблем, которые необходимо было решить. Темы, затрагиваемые в этом разделе, более подробно будут рассматриваться на протяжении всей книги. Кроме того, игра
«RoboCat Action», создание которой разбирается в этой книге, использует модель, похожую на сетевую модель Первое, что необходимо сделать при проектировании сетевой игры, — выбрать про­
токол взаимодействий, то есть определить соглашения, в соответствии с которыми два компьютера будут обмениваться данными. В главе 2 Интернет рассказывается, как функционирует Интернет, и описываются наиболее широко используемые протоколы. В главе 3 «Сокеты Беркли мы поговорим о библиотеке, используемой для упрощения организации взаимодействий посредством этих протоколов. В рамках материала данной главы скажем только, что ради высокой эффективности
«Tribes» использует ненадежный протокол. То есть протокол, который не гарантирует доставку данных, отправленных в сеть.
Однако использование ненадежного протокола может вызывать проблемы, когда требуется разослать данные, важные для всех игроков в игре. Поэтому инженеры должны были решить проблему сортировки отправляемых данных по степени важности. Разработчики «Tribes» в конечном итоге пришли к схеме деления данных на четыре категории.
Негарантированные данные. Как можно догадаться, эти данные не оказывают существенного влияния на ход игры. Приуменьшении пропускной способности алгоритм игры может решить остановить передачу этих данных.
Гарантированные данные. Для этих данных гарантируется их доставка адресату, причем в определенном порядке следования. К этой категории относятся данные, оказывающие существенное влияние на ход игры, например событие выстрела из оружия.
Данные с самым последним состоянием». К этой категории относятся данные, для которых важно иметь самую последнюю их версию, например число попаданий в определенного игрока. Информация о числе ранений игрока перестает быть актуальной и нуждается в обновлении, когда игрок получает очередное ранение.

Starsiege: Tribes 23
4.
Гарантированно скоростные данные. Этим данным устанавливается самый высокий приоритет, чтобы обеспечить максимально высокую скорость пере- дачи с гарантированной доставкой. Примером такого рода данных является информация о перемещениях игрока, которые обычно происходят очень быстро и потому должны быстро передаваться.
В сетевой модели «Tribes» пришлось реализовать множество практических решений, чтобы обеспечить передачу данных этих четырех типов.
Другим важным архитектурным решением стала реализация модели «клиент­
сервер» вместо модели «точка­точка». В модели «клиент-сервер» все игроки подключаются к центральному серверу, тогда как в модели «точка-точка» каждый игрок связывается с каждым другим игроком. Как обсуждается в главе 6 Топологии сетей и примеры игр, модель «точка-точка» требует пропускной способности
O(n
2
). То есть пропускная способность должна расти в квадратичной прогрессии с увеличением числа пользователей. При значении n, равном 128, полоса пропускания, выделенная для одного игрока, окажется ничтожно малой. Чтобы избежать этой проблемы, в «Tribes» была реализована модель «клиент-сервер». В этой конфигурации требования к пропускной способности для каждого игрока выражаются постоянной величиной, а сервер должен иметь полосу пропускания всего лишь
O(n). Однако это означает, что сервер должен находиться в сети, допускающей существование сразу нескольких входящих подключений, что в те времена было возможно только на предприятиях ив университетах.
Далее, сетевые операции в «Tribes» были разбиты на несколько уровней, образующих сетевую модель «Tribes» в виде своеобразного многослойного пирога. Эта модель изображена в табл. 1.1. Ниже кратко описывается каждый из уровней модели.
Таблица 1 .1 . Основные компоненты сетевой модели Уровень модели игры
Диспетчер фантомов
Диспетчер перемещений
Диспетчер событий
Остальное...
Диспетчер потоков
Диспетчер соединений
Модуль обслуживания пакетов
Модуль обслуживания пакетов
Пакет — это набор данных определенного формата, пересылаемый посети. В модели модуль обслуживания пакетов образует самый нижний уровень. Это единственный уровень, зависящий от особенностей платформы. В сущности, этот уровень служит оберткой для стандартного API сокетов, с помощью которого осуществляется конструирование и передача пакетов различных форматов. Реализация этого уровня похожа на реализацию систем, представленных в главе 3
«Сокеты Беркли».

Каталог: upload -> contents
contents -> 17 Двухпанельные интерфейсы
contents -> Руководство пользователя Внимание: прежде чем начать пользоваться модемом, пожалуйста, ознакомьтесь
contents -> Книга «Ubuntu и Debian Linux для продвинутых: более 1000 незаменимых ко манд. Второе издание» как раз им и является
contents -> 1 Знакомство с Ubuntu Linux Linux
contents -> Закон есть закон 0 4 «Эпоха вареза в России подходит к концу». На вопросы «Системного администратора»
contents -> Что такое Linux в данной главе подробнее ознакомимся с операционной системой Linux, ее идео
contents -> История создания Linux
contents -> Новое в Windows 7 и Windows Server 2008 R2


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал