Серверная технология Dual Universe

Jean-Christophe Baillie — идеолог MMO Dual Universe — без труда обещает поддержку не только миллионов игроков, но и миллионов планет. Это смущает слишком многих. Включая меня. В наше время, когда трудности с лагами возникают даже в небольшом фентезийном мире, миллион таких миров рисует скептикам лаги, которых просто в миллион раз больше. Но, кажется, я понял, почему эти обещания давались так легко. Даже если они в какой-то степени дискредитировали проект, потому что такие заявления могли показаться необоснованным шапкозакидательством, для авторов это слишком важная часть их работы, чтобы о ней промолчать.
 
Мечта сделать невероятно амбициозную виртуальную вселенную посещает многих людей. Но Jean-Christophe Baillie перешел от мечты к попытке реализации только тогда, когда увидел, просчитал и опробовал конкретную технологию, при помощи которой это стало возможно.

Как и в случае со SpatialOS, в основе серверной технологии Dual Universe лежит облачный принцип — динамическое перераспределение ресурсов. Но давайте для начала вернемся немного назад во времени.

Самой известной ММО с единым игровым миром остается EVE Online. Она проектировалась в самом начале двухтысячных при совсем других подходах, технологиях и вычислительных мощностях. Без хитрости такую амбициозную задачу невозможно было решить. Поэтому единый мир был разбит на тысячи планетных систем со “звездными вратами”, обеспечивающими связь между, фактически, изолированными локациями. В дополнение к этому сама планетная система была разбита на ячейки (“гриды”), в рамках которых происходил обсчет и отображение объектов так, что информация о большинстве из них в соседний “грид” не передавалась. Несмотря на то, что не так давно в CCP существенно увеличили размер такой ячейки, принцип обсчета, насколько мне известно, остался прежним — за каждую планетарную систему отвечает один сервер. Как вариант — серверный кластер, но, в любом случае, без динамического перераспределения мощностей. Поэтому, когда где-то неожиданно собирается аномальное для конкретной планетарной системы количество игроков, начинаются лаги.

Серверная технология Dual Universe
Примерно в момент празднования десятилетия EVE Online, Jean-Christophe Baillie понял, что технологии доросли до принципиально другого подхода. Прежде чем я расскажу вам о деталях, замечу, что, по словам разработчиков, новый подход уже был протестирован на нескольких тысячах участников и показал себя отлично. Хотя очевидно, что несколько тысяч — это очень далеко от заявленных миллионов, важно, что сам принцип работоспособен.

Чуть выше, описывая технологию EVE, мы говорили о ячейках, как элементах пространства планетарной системы. Вcя Dual Universe состоит из таких ячеек, но их особенность в том, что они динамически меняют размеры, в зависимости от нагрузки.

Если в определенной ячейке виртуального мира появляется много игроков, она разбивается на несколько более мелких. Если вы основали город на пустынной планете, и там теперь постоянно обитает много игроков, эта местность будет всегда разбита на мелкие ячейки, а вот удаленная часть планеты, куда изредка забредает только случайный исследователь, будет представлена одной большой ячейкой. Выехали большой компанией на пикник или охоту? Снова идет дробление, пока вы не покинете дикие территории.

Серверная технология Dual Universe
Авторы приводят наглядный пример. Если вы идете по улице крупного города в Dual Universe, разные ее стороны могут находиться в разных ячейках и обсчитываться разными серверами. Но вы при этом прекрасно видите, что происходит на другой стороне улицы. Заметив знакомого, вы перебегаете на другую сторону и даже не знаете, что только что перешли на другой сервер.

Если все это действительно работает, нет проблем обещать поддержку любого количества игроков и планет. Это уже не запредельные амбиции, не гигантомания, а просто будничная технология. Если все это действительно работает. Но точно об этом мы сможем узнать, когда в количестве миллиона человек соберемся в Dual Universe.

Нравится18
Комментарии (2)
B
i
u
Спойлер