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

Тип статьи:
Авторская
Источник:

Введение

За последние двадцать лет, последовательно появились три различных класса распределенных интерактивных приложений реального времени:

  1. Военные симуляции
  2. Сетевые виртуальные среды (СВС)
  3. Многопользовательские компьютерные игры (МКИ)

Центр внимания научных исследований сместился с военных симуляций (1980), через СВС (1990) к МКИ в настоящее время (см. рис.1). Кроме того индустрия развлечений сделала серьезные инвестиции в МКИ, мобильные и онлайн-игры в целом.

Рисунок 1. История распределенных интерактивных приложений.

В литературе встречается различная терминология. Например, до недавнего времени сетевые виртуальные среды называлась, как правило, Распределенной Виртуальной Средой (РВС), которая потом была заменена на Совместную Виртуальную Среду (СВС). Мы приняли термин СВС, так как он включает в себя как РВС, так и СВС. Для военных разработок предпочитается слово «симуляция», потому как оно означает нечто большее, чем СВС (например, логистическая симуляция). Отношения между играми и симуляциями не такие однозначные, как кажется на первый взгляд. Конечно, есть игры являющееся симуляциями (например, такие игры как Football Manager) и есть игры, действия которых происходят в виртуальных средах (например, авиационные тренажеры и шутеры от первого лица). Тем не менее, чем более абстрактными становятся игры, тем меньше и меньше они становятся симуляциями (см. рис.2).

Рисунок 2. Связь между симуляциями, виртуальными средами (ВС) и компьютерными играми. В то время как ВС, моделируют (возможно реальные) среды, компьютерные игры на обязательно являются симуляциями или виртуальными средами.

Сеть является главным понятием, когда мы рассматриваем играбельность МКИ. Физическая платформа налагает ограничения по ресурсам (например, пропускная способность и задержки), отражающие базовую инфраструктуру (например, кабели и «железо»). Как правило, существует не так много возможностей повлиять на физическую платформу, за исключением, возможно, инвестировать средства в новое оборудование. Логическая платформа основывается на физической, и ее выбор, играет ключевую роль в дизайне МКИ. Она обеспечивает архитектуру коммуникаций, обмена данными и контроля. Архитектура коммуникаций определяет логические связи между узлами сети. К примеру, в архитектуре P2P (peer-to-peer, одноранговая сеть) в сети объединены множество равных узлов, тогда как в архитектуре клиент/сервер – один узел работает как сервер и вся связь между узлами осуществляется через него. Архитектура контроля и данных определяет, как именно информация хранится и обновляется в узлах. Например в централизованной архитектуре, только один узел содержит данные, в то время как в реплицируемой архитектуре каждый узел имеет свои копии.
В этой статье рассматриваются особенности логической платформы. Мы оглянемся назад и представим обзор научно-исследовательских работ проведенных в последние двадцать лет.

Методы

Давайте для начала вспомним наиболее распространенные методы по уменьшению требований к пропускной способности для интерактивных приложений реального времени.

Объединение и сжатие пакетов

Целью сжатия информации является уменьшение количества битов для представления конкретной информации. Таким образом, сжатие сетевых пактов предлагает интуитивный подход к минимизации сетевого трафика. Методы сжатия могут быть классифицированы в соответствии с их способностью сохранять информационное содержание. Методы сжатия без потерь сохраняют всю информацию, и, следовательно, реконструированные данные точно такие же, как и перед сжатием. Как правило, методы сжатия без потерь, могут уменьшить размер данных, примерно наполовину. Для достижения более высокой степени сжатия, могут быть использованы методы сжатия с потерями. Идея состоит в том, чтобы отбросить менее релевантную информацию, но так, чтобы искажения в реконструированной информации оставались незаметными. Этот метод широко используется, например, при сжатии аудио и графической информации.

Потому как мы сжимаем сетевые пакеты, стоить, так же, обратить внимание на различные методы сжатия, соотносящиеся к данным в пакете. Внутреннее сжатие применяется к информации, содержащейся в одном пакете без ссылок на другие, ранее переданные. Таким образом, оно подходит при использовании не очень надежных протоколов, таких как UDP (User Datagram Protocol). С другой стороны, внешнее сжатие может использовать информацию, которая уже была передана и, следовательно, принята и доступна в приемнике. К примеру, мы можем передавать разницу или информацию о переходе, которая, вероятно, потребует меньше бит чем, собственно, полная информация. Мы можем так же передать ссылочные указатели на ранее переданные данные, если эти данные возникнут снова. Внешнее сжатие рассматривает большее количество данных в каждый момент времени, таким образом, оно может лучше учитывать избыточность потока информации. Следовательно, оно может дать лучшую степень сжатия, нежели внутреннее сжатие. Однако из-за ссылок на предыдущие пакеты, внешнее сжатие требует более надежного протокола передачи.

Объединение пакетов, снижает требование к пропускной способности, путем слияния и передачи нескольких пакетов в одном большом. Таким образом, накладные расходы на заголовки пакетов уменьшаются. Экономия пропускной способности может быть значительной и зависит от размеров данных в исходных пакетах, размеров заголовков пакетов и количества объединенных пакетов. Например, размеры заголовков UDP/IP и TCP/IP, соответственно – 28 и 40 байт.

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

Управление интересами

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

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

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

Аппроксимация ауры — фактически прямоугольная рамка. Вычисление проще чем с применением формул, и фильтрация лучше чем при использовании клеток.

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

Управление интересами с аурой всегда симметричны: если ауры пересекаются, обе стороны получают сообщения друг о друге. Тем не менее аура может разделятся на фокус и нимб, которые являются представлением наблюдателя об объекте и его перспективе. Таким образом осведомленность требует чтобы внимание игрока пересекалась с нимбом другого игрока. При использовании фокусов и нимбов возможно построить более тонкий класс фильтрации сообщений, при этом можно дать возможность не быть симметричным (см. рис. 4). Ауры, фокусы и нимбы могут быть модифицированы адаптерами, для настройки взаимодействия игроков. Например в ВС могут быть введены инфракрасные бинокли и инструменты камуфляжа.

Рисунок 4. Игра в прятки. Нимб прячущегося человека меньше чем у ищущего. Ищущий человек не знает о прячущемся. Вместо этого ищущий видит убежище прячущегося так как нимб ищущего не пересекается с фокусом прячущегося.

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

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

В стратегии регионального размещения групп, виртуальная среда делится на регионы, которые имеют свои группы многоадресной рассылки. Все объекты в регионе передают обновления в соответствующий групповой адрес. Как правило, объекты при этом приписаны к группам соответствующим их собственному и соседним регионам. При пересечении объектом границы области он должен получать информацию о текущем состоянии многоадресной группы, от каталог-серверов. Кроме классификации объектов основанной на их расположении в Виртуальной Среде, возможны и другие их атрибуты (например, тип объекта или команды).

Счисление координат

Один их подходов к снижению использования сети для отправки пакетов обновления. Для обеспечения согласованности (или, по крайней мере, некого его разумного подобия) мы должны как-то компенсировать отсутствие обмена информации между пакетами обновления. Особенно в случае информации о местоположении, методы счисления координат оказались весьма успешными. В счислении координат отсутствующая информация вычисляется с применением апроксимационных методов (методов приближения). На основе ранее полученной информации узел предсказывает движение конкретного объекта. Вычисленное состояние объекта используется в приложении до тех пор, пока от исходного узла не будет получена новая информация. В зависимости от точности вычислительных методов, приближенное местоположение может находиться на некотором расстоянии от фактического. Чтобы избежать рывков при движении, при получении новой информации о местоположении применяются сходимость алгоритма для сглаживания передачи. Таким образом счисление координат состоит из двух частей: метода прогнозирования и метода сходимости.

Наиболее распространенным методом прогнозирования является использование производных многочленов. В случае с позиционированием они более естественно интерпретируют скорость, ускорение и толчок (рывок). Если мы используем нулевую производную полиномов, мы получаем информацию только о позиции и, следовательно, не получаем никакой выгоды. В случае использования первой производной многочленов, в дополнении к позиции объекта передается и скорость. Скорость – заметно повышает точность предсказаний. Для дальнейшего повышения точности, мы можем добавить в передаваемые условия значение ускорения. Этот прогнозирование с помощью многочлена второго порядка является наиболее популярной методикой. Тем не менее, высшие производные повышают риск появления неточных прогнозов, так как погрешность прогнозирования повышается с повышением порядка: небольшая неточность в вычислениях может привести к существенным ошибкам. Кроме того производные многочленов высшего порядка приводят к увеличению вычислительных нагрузок при прогнозировании. Передаваемые при этом дополнительные условия, так же потребляют наши ограниченные ресурсы полосы пропускания.

Для достижения баланса между требованиями к пропускной способности и риском неточных вычислений, гибридные системы могут динамически выбирать использование порядка уравнений в предсказаниях. Например, если ускорение объекта часто меняется, это увеличивает вероятность появления неправильного значения в определенной точке предсказания. Таким образом, при прогнозировании, в этот момент времени, безопаснее будет довольствоваться уравнениями первого порядка.

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

Когда узел получает сообщение об обновлении, предсказанная позиция объекта, скорее всего будет отличаться от позиции основанной на последней информации. Объект при этом, должен быть перемещен на новую позицию и метод приближения определяет как эта коррекция будет произведена. Хороший метод сходимости корректирует ошибки быстро и незаметно (см. рис.5). Простейшим методом является метод нулевой конвергенции, когда объект переводится на новую, предсказанную позицию. Тем не менее это может привести к раздражающим рывкам движения. Лучшим методом является использование линейной сходимости, где будущие точки сходимости определяются предсказанием нового пути. В этом случае объект перемещается вдоль прямого пути от текущей точки схождения, в течении периода конвергенции.

Рисунок 5. Иллюстрация счисления координат. Закрашенные кружки, это полученная информация о положении объекта p и скорости V, при заданном времени t. Не закрашенные кружки это предсказанное положение объекта на данный момент времени. В момент времени T=2, когда прогнозируемое положение объекта будет (4, 4), поступает новая информация, что в момент времени T=1 (из-за задержки) фактическое положение объекта было (3, 1) и скорость была (4, 2). Вместо того чтобы перемещать объект в новую предсказанную позицию (7, 3), сразу, точка схождения рассчитывается исходя из нового предсказанного пути на 0,5 секунд позже. В течении этого периода конвергенции объект движется вдоль гладкого линейного сходящегося пути, к новому, следующему далее, предсказанному пути.

Хотя линейная сходимость явно лучше метода нулевой конвергенции, все же он может привести к появлению неестественных поворотов при переходе от предыдущего предсказанного пути к новому, предсказанному. Для сглаживания этой проблемы могут быть применены более сложные методы построения кривой движения. Идея состоит в том, чтобы выбрать в дополнении к текущей позиции и точке схождения, ряд точек из предыдущего предсказания пути и заново вычислять траекторию движения. Кривая подгоняется так, чтобы она прошла через все выбранные точки. И она используется в качестве пути для перемещения объекта в новый предсказанный путь. Например, в случае кривой третьего порядка, кубического сплайна, мы выбираем одну дополнительную точку на предыдущем пути, и другие дополнительные точки, чтобы через них прошел новый предсказанный путь до точки схождения. Кривые высокого порядка могут обеспечить плавный переход от старого к новому пути, но они могут увеличить вычислительную нагрузку для некоторых приложений.

При включении информации об объекте в методы счисления координат, мы сможем достичь более точных и естественных движений. Таким образом этот метод может быть использован для разработки специализированных методов счисления координат для каждого типа объектов. Тем не менее, это может быть очень трудоемким процессом и в работе эти алгоритмы требуют особого внимания. Счисление координат могут вызвать и другие побочные эффекты, на которые следует обратить особое внимание. Для примера, так как не все узлы должны иметь доступа к некоторым состояниям объекта, то алгоритмы обнаружения столкновений могут быть сложны в разработке.

Связанные работы

Мы разделили литературу о интерактивных приложениях реального времени на три раздела, по классификации приведенной во введении.

Военные симуляции

Министерство обороны США занимается разработкой сетевых военных симуляций с 1980-го года. Первым разработанным протоколом был SimNet, которая предоставляла возможность интерактивной работы в сети в режиме реального времени, human-in-the-loop (HITL) боевые симуляции и военные игры. Для достижения этой цели SimNet обеспечивает функциональную реалистичность, в ущерб реалистичности физической. В сети использована распределенная архитектура, без центрального сервера, что позволяет участниками присоединяться к симуляции или покидать ее в любое время. Объекты передают информацию о событиях на всю сеть и приемники отвечают за расчет эффектов (естественно, все от всех ожидают «честной игры»). Информация о разнице между позициями объекта экстраполируются с помощью счисления координат.

Распределенная интерактивная симуляция (РИС. DIS — Distributed Interactive Simulation), которая была опубликована в качестве стандарта IEEE 1278 в 1992-ом году, является попыткой формального обобщения и расширения протокола SimNet. Цель была в том чтобы позволить любому типу игроков на любом типе машины принять участие в симуляции. РИС (DIS), позволяет моделировать различные виды транспортных средств (например, самолеты и корабли), и, следовательно, она используется во многих специализированных системах, таких как NPSNET или STOW.

В настоящее время усилия военных исследований, сосредоточены на разработке систем базирующихся на Архитектуре Высокого Уровня (АВУ. HLA – High Level Architecture). Она была опубликована в качестве стандарта IEEE 1516 в 2000-ом году. Целью АВУ (HLA) является обеспечение общей архитектуры и сервисов для распределенного обмена данными. Она не предписывает каких-либо конкретных реализаций или технологий. Хотя протокол РИС (DIS) тесно связан со свойствами военных юнитов или транспортных средств, обоснованностью введения АВУ (HLA) является то, что она может быть использована в различных симуляциях, даже в невоенных приложениях, и это является целевым направлением разработки новых симуляций.

Сетевые виртуальные среды

В то время как военные исследования фокусируются на различных крупномасштабных системах, СВС, в основном предназначены для локального использования с поддержкой ограниченного числа участников. Как правило в СВС, обращается более пристальное внимание на виртуальное представление участников (то есть, аватары) и на взаимодействия участников (например одновременная работа с общим объектом).

Одной из первых СВС это Reality Built for Two. Она использует центральный сервер для управления устройствами и передачи данных, а так же дополнительные рабочие станции для рендера. Из названия понятно, что она позволяет двум пользователям использовать одну и ту же виртуальную среду.

MR Toolkit разделяет ВС на четыре компоненты: представление, взаимодействия, геометрические модели и вычисления. Эти компоненты могут быть распределены между узлами сети. Мастер процессов различных экземпляров приложения могут взаимодействовать друг с другом, что позволяет нескольким пользователям находиться в одной и той же ВС.

BrickNet – система использующая архитектуру клиент/сервер. Каждый клиент подключен к серверу для получения доступа к объектам представляющим для них интерес и для связи с другими клиентами. Клиент может загрузить свои собственные объекты на сервер и таким образом делится ими с другими клиентами. Клиенты работают асинхронно, а сервер обеспечивает отправку обновленных сообщений только тем клиентам, которые подписаны на объект. Кроме того, абоненты могут выбрать уровень согласованности – от абсолютной до отсутствующей. Это так же влияет на задержку обновлений.

Ring – система клиент/сервер, где каждый объект ВС, управляется только одним клиентом. Пространственно, эта ВС разделена на клетки, и другие клиенты могут иметь копию объекта, в случае нахождения в одной клетке с собственником объекта. Это фильтрация основанная на предварительно вычисленной прямой видимости информации. Оно осуществляется сервером, который может изменить способ общения с клиентами.

В DIVE используются копии баз данных виртуальной среды и одноранговая сеть. Когда объект обновляется в одной локальной реплике, то сообщение передается всем партнерам, чтобы они могли соответственно обновить свои копии. Естественно что эти субъективные репликации объектов, приводят к противоречиям из-за задержек в сети. DIVE компенсирует это, за счет использования счисления координат и периодически отправляя синхронизирующую информацию. Чтобы уменьшить сетевой трафик DIVE позволяет разделить ВС на субиерархии (например, на основе географии), которые реплицируются в меньшем количестве узлов выразивших заинтересованность в них. Субиерархия может быть связана с многоадресной группой, что еще больше снижает сетевой трафик.

MASSIVE поддерживает различные компьютерные платформы и позволяет пользователям взаимодействовать друг с другом посредством графических, аудио и текстовых медиа средств. В системе используется фильтрация на основе осознания, где каждому объекту присущи разные направленность и фокус для каждой среды (например, фокус в текстовой среде может быть меньше чем фокус в среде графической). MASSIVE использует архитектуру клиент/сервер и многоадресные рассылки. Сервер обеспечивает клиенту начальную точку доступа в ВС. Объекты реплицируются по требованию, и они связаны с многоадресными группами.

Возможности DIVE и MASSIVE, на данный момент объединены м скоординированы в проекте COVEN.

В проекте Spline виртуальная среда разделена на локации которые имеют произвольные размер и форму, и связаны групповым адресом. Spline, использует распределенную архитектуру, в которой каждый узел поддерживает частичную копию ВС, находящуюся в фокусе его внимания. Пользователь может видеть несколько локация. Но каждый объект может находится только в одной локации в данный момент времени.

В GreenSpace, каждый объект использует многоадресную рассылку для передачи своего состояния, и «легкий» сервер связывает многоадресные рассылки и информирует об изменении объектов в ВС. Система использует VRML для ренедера ВС.

В Community Place каждый объект передает информацию о своем положении в сервер. Для того чтобы решить, какие другие субъекты должны знать об этих изменениях, сервер использует пространственную фильтрацию на основе ауры. Кроме того, сервер поддерживает обновления локальных сцен и событий. Статические элементы сцены загружаются как VRML, в то время как динамическое управление данными осуществляется через локальные сценарии и рассылкой сообщений. Если сервер перегружается, то он может быть реплицирован.

AGORA, система базирующаяся на VRML. Использует архитектуру клиент/сервер и общую централизованную базу данных. Сервер поддерживает обновления сообщений помещая их либо в последовательные (сохраняющие порядок), либо в непоследовательные (то есть, возможно ненадежные) очереди передачи, в соответствии с их типом.

SmallTool использует VRML и DWTP (Distributed Worlds Transfer and communication Protocol), обеспечивающие «демонов» для передачи содержимого ВС, определяющие сбои передачи и восстановление потерянных пакетов. Дополнительно, будучи скопированными, каждый объект может указать нужность определенного события для надежного распределения и максимальную частоту обновления.

Living Worlds система базирующаяся на VRML, которая позволяет анонимные взаимодействия между слабо связанными частями. ВС разделена на зоны связанные с сервером. Каждый объект принадлежит одному клиенту и сервер назначает нового его владельца, когда предыдущий покидает зону. Система подвержена непредсказуемым задержкам, которая может быть проанализирована «Расширенной Нотацией Действий Пользователя» (eXtended User Action Notation — XUAN). Для разрешения проблем системы, требуется более высокий уровень детализации контроля, разделов мира и коммуникационный протокол с поддержкой QoS (Quality of Service – качество обслуживания). Так что даже при росте количества пользователей количество информации остается относительно постоянным.

DEVCOM представляет собой централизованную систему, которая гарантирует полную синхронизацию и согласованность показов. Система поддерживает QoS и прекращает рендер ВС при отсутствии клиентских ресурсов.

Urbi et Orbi (буквально – «к городу и к миру», обозначение Папского документа обращенного к городу Риму и католическому миру) включает в себя скриптовый язык для создания высокоуровневых описаний объектов в ВС. Описание объекта содержит в себе так же его поведение и политику доступа. Если объект детерминированный, то он реплицируется в каждый узел сети, и каждый узел отвечает за обновление локальной копии. Не детерминированный объект доступен с одного узла, откуда идет групповое сообщение обновлений в сети.

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

CIAO использует оптимистичный метод для управления параллелизмом репликации объектов. Обновления происходят непосредственно в локальной реплике и передаются на удаленные узлы. Если возникают конфликтующие операции, символ связанный с управляемым объектом используется для согласования. Первоначально, создатель объекта имеет свой символ. Когда владелец получает символ сообщения обновления, он проверяет текущую операцию и дает знак узлу на начало обновления.

Real-Time Transport Protocol (Транспортный Протокол Реального Времени – RTP/1) создан для поддержки интерактивного медиа. Он содержит три метода, служащие для того чтобы все операции в приложениях выполнялись в том же порядке. Несоответствия вызванные задержками (например, задержками в сети) обрабатываются с сознательной задержкой местного обновления, чтобы соответствовать задержке передачи. В каждом уже содержится история событий и при несоответствии возникает ситуация отката, заново производится конфликтующая операция, и ситуация возвращается в «текущее время». На крайний случай протокол содержит в себе так же и метод явного запроса состояния.

Synchronous Collaboration Transport Protocol (SCTP – Транспортный Протокол Синхронного Сотрудничества). Основное внимание уделяется тесно связанным, высокосинхронизированным задачам. Во время взаимодействия создается поток обновлений сообщений, где наиболее важные сообщения идут последними. В протоколе, одна последовательность сообщений, связанных с взаимодействием пользователей с общим объектом сгруппированы в один поток. Этот поток взаимодействия содержит критические сообщения (особенно последние), которые доставляются гарантированно находясь в транспортном потоке.

Многопользовательские компьютерные игры

До недавнего времени проблемы МКИ и онлайн-игр не были широко представлены в научной литературе. Обычно, в документах, внимание было сосредоточено на обычных играх и поднимались ограниченные проблемы.

Многопользовательские Подземелья (MUD – Multi-User Dungeons, МП) текстовые многопользовательские игры, начавшие появляться в 1980-ых годах. Пользователи подключены к общей базе данных объектов, например, комнатам, выходам и артефактам. Игроки, находясь внутри помещения могут просматривать и управлять базой данных. Игроки могут перемещаться по комнатам через выходы которые их соединяют. Пользователи могут добавлять новые комнаты, и другие объекты в базу данных, прописывая их уникальные свойства с помощью встроенного языка программирования. Пользователи так же могут общаться друг с другом в масштабе реального времени.

В Amaze целью игроков в 2D лабиринте является стрельба ракетами по другим игрокам. Узлы используют связь типа «точка-точка», для передачи раз в секунду обновления своего положения и скорости (это позволяет применение счисления координат). Игроки могут входит в игру или выходить из нее в любое время. Система поддерживает «игроков контролируемых компьютером» (ботов).

XPilot 2D игра, воздушный бой, использующая простую архитектуру клиент/сервер. Так как она не использует счисление координат, чувствителнось эффективно детерминирована с задержкой в сети.

Artery (артерия) система обеспечивающая программный интерфейс для МКИ. Сеть базируется на протоколе DIS (Distibuted Interactive Protocol) и система пытается уменьшить трафик программно-ориентированную семантическую базу знаний. Система также поддерживает счисление координат, объединенные рассылки и управление интересами.

В MiMaze, игроки пытаются расстрелять друг друга в 3D лабиринте. В нем используется распределенная архитектура и сервер требуется только для инициализации. Для того чтобы избежать различные задержки, MiMaze использует группу механизмов синхронизации. Задержка между хостами участниками оценивается с помощью системного таймера. Сообщение выдается по абсолютному времени, при этом учитываются измеренный системные задержки таким образом, чтобы все участники могли его получить в одно и то же время. Если сообщение было пропущено, либо оно пришло слишком поздно, используется счисление координат для экстраполяции информации.

Распределенная среда развлечений (DEE – Distributed Entertainment Environment) представляет собой архитектуру распределенных компьютерных игр. В ней, мир поделен на концептуальные модели (то есть, правила и атрибуты объектов), динамические модели (то есть, взаимодействия на пространственном уровне) и визуальные модели (к примеру, ренедеринг). Чтобы уменьшить сетевой трафик, концептуальные и динамические модели хранятся на сервере, а каждый участвующий клиент имеет собственный экземпляр визуальной модели.

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

30.12.2015

Комментарии

Нет комментариев. Ваш будет первым!