MMO-индустрия: В чем суть SpatialOS
Новый движок Хэллидея, ответственный за моделирование OASIS Reality Engine, произвёл несколько технологических прорывов. Он сумел преодолеть ограничения, от которых страдали предыдущие симуляторы. Помимо ограничений на размер виртуальной окружающей среды, старые ММО были вынуждены контролировать популяцию, не пуская больше нескольких тысяч людей на один сервер. Если одновременно логинилось слишком большое количество людей, симулятор начинал тормозить, а персонажи застывали на ходу, пока система изо всех сил пыталась не зависнуть. Но ОАЗИС использовал новый вид отказоустойчивых серверных массивов, которые извлекали дополнительные мощности из каждого подключенного к ним компьютера. Во время первого запуска ОАЗИС мог обслуживать до пяти миллионов одновременных соединений без заметных лагов и падений сервера.

Это цитата из книги Эрнеста Клайна “Первый Игрок, приготовьтесь”. Фантастика. Вымысел. Даже для игрока, разбирающегося в реалиях ММО. Разработчики SpatialOS с удовольствием цитируют эту книгу сегодня, чтобы рассказать о том, для чего нужна их платформа. После того, как третья анонсированная MMO объявила об использовании этой “операционной системы”, кажется, пришло время поговорить о том, что же она из себя представляет.

Суть технологии
SpatialOS — технология симуляции действий, потребностей, состояний и взаимодействия заданных сущностей. Эта специализированная оболочка может использоваться как Amazon Web Services и также базируется на облачных технологиях. SpatialOS располагается на самом базовом уровне, где игровые движки и другие инструменты расположены выше, как программы в операционной системе. Собственно, SpatialOS и есть специализированная серверная операционная система для симуляции сложных виртуальных миров.

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

Сущности (Entities) — базовые блоки системы. Например, люди, лисы и кролики в экосистеме.

Каждая сущность наделена набором компонентов (components). Компоненты описывают функциональность сущности через Свойства, События и Команды (Properties, Events, Commands), которые можно задать. В предложенном примере с экосистемой сущность “Лиса” обладает компонентом “Охота”, который зависит от привязанных к нему параметров “Голод” и “Здоровье”.

Логика поведения (behaviour logic) сущности зависит от свойств, которые меняются со временем. Это также задается разработчиками. Так во время охоты лиса может повредить свое здоровье, но начинает охотиться, когда параметр “голод” достигает определенной отметки.

Шестеренки (Workers) отвечают за симуляцию всех компонентов на двух уровнях: логическом и физическом. Логика и Физика конкретного мира задается создателями этого мира. Затем все это обсчитывается под управлением SpatialOS при помощи облачных технологий. SpatialOS берет на себя управление динамическим перераспределением нагрузок. Логические шестеренки приказывают лисе преследовать кролика, но если в азарте преследования лиса подбежит к слишком большому оврагу, физические шестеренки просчитают возможность перепрыгнуть овраг и повреждения в случае неудачи.

По словам авторов концепции, динамическое распределение нагрузки и передача расчетов на уровень SpatialOS позволяет обсчитывать огромные пространства и детализированные симуляции, которые раньше встречались только в книгах.


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

В виртуальном мире на основе SpatialOS все реально. Все, что вы видите, можно пощупать руками. Все, что вы сделаете, навсегда останется в этом мире. Никакого дыма и зеркал. Никаких исчезающих следов. Каждый кусочек мира может рассказать историю, каждое действие здесь имеет последствия.

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

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

Хотите знать еще больше? Вам сюда: improbable.io/docs/6.0.1

16 комментариев

avatar
Это может стать основой для создания социума неписей с которыми можно сосуществовать, взаимодействовать и влиять. А не просто массива бабушек для перевода через дорогу.
  • 0
avatar
После такой формулировки… Точно, можно же сделать не пошаговый большой и красивый Дварф-фортресс! (там тоже большие популяции НПЦ обсчитываются уже сейчас, но вся игра пошаговая и текстовая)
  • 0
avatar
А не просто массива бабушек для перевода через дорогу.

В моем примере с бабушкой, которую нужно перевести через дорогу, рассматривалась проблема ограниченного количества потребностей при честной симуляции как раз. Суть в том, что в таких системах количество NPC должно существенно превосходить количество игроков. В десятки и сотни раз. То есть соотношение должно стремиться к такому, которое есть сейчас в одиночных CRPG. Сколько там NPC на одного игрока?
  • 0
avatar
Подозреваю что вы видите честно симулируемую систему как поставщика квестов, злосчастных актов перевода бабушки. Если смотреть так, то выглядит не очень, и не отличается от стандартной системы болвана квестодателя, в обоих случаях НПС — ненасытный потребитель геройских услуг.
Для меня же честно симулируемая социальная система — шанс получить вполне песочную механику, НПС, которые живут своей жизнью, на которую можно влиять. Моя фантазия не рисует толпы неписей, которые и чихнуть не могут, чтобы не выдать квест на «принести платочек».
  • +3
avatar
Суть в том, что в таких системах количество NPC должно существенно превосходить количество игроков.
Если мы говорим о ММО, а не абстрактном промежуточном состоянии, то в ММО должно быть взаимодействие. Как посредством совместного использования бабушек, так и посредством взаимообеспечения игроков Соответственно, и бабушек надо будет намного меньше.
  • 0
avatar
Multiplayer by default — так описывает впечатления от SpatialOS автор заметки "How to prototype an online multiplayer game with Unity and SpatialOS" на Gamasutra. По моему это очень важное изменение видения на виртуальные миры будущего.
  • +1
avatar
Ну что я могу сказать.
Это А-ФИ-ГЕН-НО!!!
На таком серверном ядре реально можно точить игры мечты десятками.
Потенциал операционной системы, которая создана специально для преодоления таких трудностей должен быть весьма внушителен.
Динамически распределенная нагрузка между серверами — это прям то что доктор прописал т.к. в этих местах запнулся не один десяток разработчиков.
  • 0
avatar
Я считаю, что миру невероятно повезло, что SpatialOS первым делом решили тестировать на играх. На сколько я знаю изначально об этом не думали вовсе — наука, оборона и проектирование были в приоритете.
Только за 2016 год анонсировали не менее пяти игр, где будет применяться технология. А на всяких крупных собраниях, вроде GDC, всерьез обсуждают реализацию совершенно фантастических глобальных виртуальных миров.
  • 0
avatar
С другой стороны, у нас есть Haven and Hearth, где любое твое действие остается в мире навсегда. И есть он в том или ином виде довольно давно. Что с этим делать и как на основе этого создать по-настоящему большую интересную вселенную, пока не выяснили. Это небольшая ложка дегтя. Собственно, что-то подобное можно сказать об Archeage — с заявленными технологиями все хорошо: леса растут, домики появляются/исчезают, корабли бороздят просторы под коллективным управлением… первые несколько месяцев, а потом открывают новый сервер. То есть основной проблемой все так же остается геймдизайн.
Комментарий отредактирован 2016-06-02 19:36:26 пользователем Atron
  • 0
avatar
Через две недели, по слухам, Дин Холл представит свое решение этих вопросов. Помню, он рассказывал и о свободной торговле, политике, и освоении бесконечной вселенной.
  • +1
avatar
Я только за. :)
  • 0
avatar
Ну это же инструмент, который позволит во многом низкобюджетным командам не изобретать велосипед, нанимаяведущих инжинеров в области колесоверчения и педалекручения, которые есть во многих проектах ААА класса.
  • 0
avatar
Ух ты, она на Scala написана. Это уже интересно. Правда, там ещё есть Unity с C#, что уже не так интересно
  • 0
avatar
там ещё есть Unity
Там есть поддержка Unity, как и UE, судя по всему.
Комментарий отредактирован 2016-06-07 22:36:51 пользователем Atron
  • 0
avatar
Не совсем понятно что это)

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

Так? Или что-то еще в ней есть?
  • 0
avatar
Сегодня любая облачная технология может регулировать нагрузку, на то она и облачная. Тут важно не сама возможность регулирования, а логика движка и узкие места в нем. Если изначально эта логика пишется с учетом облачных технологий, это значительно увеличивает эффект от использования ставших уже привычными технологий. Собственно, что такое SDK? Это Software Development Kit — набор инструкций и компонентов, к которым разработчик может обращаться с просьбой «сделай мне это вот так вот» и быстро получать результат. Это система, которая уже умеет делать, просто скажи, как ты хочешь, чтобы это было сделано.

Яркий пример — DirectX. Сегодня сложно представить себе разработку без этого API, верно? Но при этом никто не говорит, что у всех из-за использования DirectX получается одинаковая графика. Ничего подобного. Что делает DirectX? Он посредник между видеокартой и желаниями разработчика изобразить с ее помощью свой виртуальный мир. Успех DirectX настолько мощный, что теперь видеокарты подстраиваются под его свежие спецификации, а не наоборот.

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

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