Новый движок Хэллидея, ответственный за моделирование 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 комментариев
В моем примере с бабушкой, которую нужно перевести через дорогу, рассматривалась проблема ограниченного количества потребностей при честной симуляции как раз. Суть в том, что в таких системах количество NPC должно существенно превосходить количество игроков. В десятки и сотни раз. То есть соотношение должно стремиться к такому, которое есть сейчас в одиночных CRPG. Сколько там NPC на одного игрока?
Для меня же честно симулируемая социальная система — шанс получить вполне песочную механику, НПС, которые живут своей жизнью, на которую можно влиять. Моя фантазия не рисует толпы неписей, которые и чихнуть не могут, чтобы не выдать квест на «принести платочек».
Это А-ФИ-ГЕН-НО!!!
На таком серверном ядре реально можно точить игры мечты десятками.
Потенциал операционной системы, которая создана специально для преодоления таких трудностей должен быть весьма внушителен.
Динамически распределенная нагрузка между серверами — это прям то что доктор прописал т.к. в этих местах запнулся не один десяток разработчиков.
Только за 2016 год анонсировали не менее пяти игр, где будет применяться технология. А на всяких крупных собраниях, вроде GDC, всерьез обсуждают реализацию совершенно фантастических глобальных виртуальных миров.
Я так понимаю, что это нечто вроде
— системы, которая автоматически регулирует выделяемые мощности серверов на те или иные игровые зоны
— система симуляции кучи объектов и поведения
— интеграция нескольких игровых движков в одной системе
Так? Или что-то еще в ней есть?
Яркий пример — DirectX. Сегодня сложно представить себе разработку без этого API, верно? Но при этом никто не говорит, что у всех из-за использования DirectX получается одинаковая графика. Ничего подобного. Что делает DirectX? Он посредник между видеокартой и желаниями разработчика изобразить с ее помощью свой виртуальный мир. Успех DirectX настолько мощный, что теперь видеокарты подстраиваются под его свежие спецификации, а не наоборот.
Думаю, примерно тем же будет заниматься SpatialOS — выступать посредником между облачным сервисом и желаниями автора написать некую логику виртуального мира. И если это взлетит, эффект может быть тоже потрясающим. Все зависит от гибкости, разнообразия инструментов и простоты взаимодействия.
Интеграция графических движков — приятное дополнение, упрощающее весь комплекс разработки виртуального мира, но не ключевая функция.