No Man's Sky

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


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


Здесь, в полутемной комнате в получасе езды к югу от Лондона, группа программистов склонилась над компьютерами, создавая необъятный цифровой космос. Или лучше так: с помощью процедурной генерации они делают программу, которая позволяет вселенной создавать саму себя.

No Man's Sky Игры, Разработка, Интервью, Playstation 4, Космос, Программирование, Длиннопост, No Man`s Sky

.


Амбициозный проект будет выпущен в качестве видеоигры под названием No Man’s Sky в июне этого года. В игре случайно размещенные космонавты, отделенные друг от друга миллионами световых лет, должны будут найти собственную цель существования, бороздя галактику из 18 446 744 073 709 551 616 уникальных планет.


«Физика в других играх — подделка. Когда находишься на планете, ты окружен „небесной коробкой“ — кубом, на гранях которого кто-то нарисовал облака и звезды. Если день и ночь сменяются, то это происходит потому что они медленно перемещаются между коробками», — объяснил главный архитектор проекта Шон Мюррей. Небесная коробка — это также и барьер, который игрок пересечь не может. Звезды — лишь пучки света. Однако в No Man’s Sky каждая звезда открыта для посещения. Эта вселенная бесконечна. Ее края простираются в безжизненную бездну, в которую можно погружаться вечно.


«У нас, когда вы находитесь на планете, — продолжает Мюррей, — то можете видеть настолько далеко, насколько позволяет ландшафт. Если идти несколько лет, то можно обогнуть ее и оказаться в той же точке, откуда начали. У нас день сменяется ночью потому, что планета поворачивается вдоль своей оси, обращаясь вокруг ее звезды. Это реальная физика. У нас есть люди, которые прибывают на планету с космической станции и, когда они летят обратно, станцию на том же месте не находят — планета повернулась. Некоторые посчитали, что это баг».


На мониторе перед нами мелькают зашифрованные фрагменты исходного кода. Пока земные физики никак не могут найти математическую систему для описания всех феноменов Вселенной, ее эквивалент в No Man's Sky уже существует. Перед нами законы природы для целого космоса, уместившийся в 600 тысяч строк.


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


Физики до сих пор спорят, определено все в нашей Вселенной все или случайно. Пока некоторые ученые верят, что квантовая механика практически точно подразумевает неопределенность, Альберт Эйнштейн, как известно, предпочитал противоположную позицию, сказав: «Бог не играет в кости». No Man's Sky тоже не играет в кости. Как только первое «семенное» число занесено в пустоты программы, вселенная задана — создание звезд, планет и организмов уже не обратить. Прошлое, настоящее и будущее зафиксированы, и только внешняя сила способна на изменения в системе — игрок. 

No Man's Sky Игры, Разработка, Интервью, Playstation 4, Космос, Программирование, Длиннопост, No Man`s Sky

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


«На самом деле, не имеет значения существует ли то, что вокруг тебя или нет, потому что даже вещи, недоступные взгляду, постоянно занимаются своими делами. Существа на далекой планете, которую никто никогда не посещал, собираются на водопой или засыпают, так как живут по формуле, которая определяет куда им идти и что делать; мы просто не включаем эту формулу для места, пока не доберемся до него», — размышляет Мюррей.


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


Хоть и базовое поведение существ само по себе просто, их взаимодействие может впечатлить своей комплексностью. Арт-директор Грант Дункан вспоминает, как однажды бродил по незнакомой планете, стреляя от скуки по птицам: «Я попал в одну, и она упала в океан. Ее покачивали волны на поверхности, когда вдруг появилась акула и съела ее. Когда такое случилось в первый раз, мой мозг взорвался».


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

No Man's Sky Игры, Разработка, Интервью, Playstation 4, Космос, Программирование, Длиннопост, No Man`s Sky

«Природа видео-игр — это конфликт, — настаивает Мюррей, — интересно поразмыслить над тем, к чему мы пришли. В нашей игре людям дается контроллер, они прилетают на планету, они видят инопланетянина, и если они играют в первый раз, скорее всего, они его застрелят, несмотря на то, что они только что проделали огромный путь, добравшись сюда. Но вот что мне действительно нравится, так это то, что 9 из 10 людей жалеют о содеянном. Ты не получаешь очки за убийство. Нет никаких золотых монет. Ты просто сделал это».


У игрока также нет никакого альтер-эго, за которым можно спрятаться.

«В большинстве игр ты начинаешь с выбора персонажа, — описывает Мюррей, — зачастую ты будешь играть за малоприятного персонажа с тонной броских фразочек. Твоим ником будет что-то вроде Айриша или Текса. В самом начале ты должен решить кто ты, и это может быть даже прежде, чем ты поймешь, как ты действительно хочешь играть. Мы хотим, чтобы люди пользовались своим воображением. Они могут быть кем хотят. Они могут быть пришельцами, если они хотят в них верить. Мне это очень нравится»


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


Для команды No Man’s Sky это чувство восхищения и есть сама суть. 

Вы смотрите срез комментариев. Показать все
13
Автор поста оценил этот комментарий

18 446 744 073 709 551 616 уникальных планет, каждая из которых движется по законам физики, и живет своей жизнью? Такими темпами надо ждать распространения квантовых компьютеров, ибо обычное железо это никогда не просчитает, да и генерироваться оно будет несколько лет. А уж какой это объем данных, я вообще молчу. Дата цетры гугла бьются в истерике наверное

раскрыть ветку (29)
19
Автор поста оценил этот комментарий

Процедурно генерируемая вселеная, для каждого игрока она генируется настолько, насколько это нужно. Сидишь на планете - сгенерировалась часть планеты которую ты видишь, вылетел на орбиту - сгенерировалась звездная система и т.д. 

раскрыть ветку (24)
15
Автор поста оценил этот комментарий

с учетом того, что "все живет своей жизнью" и "каждая травинка и капля на счету", то, либо за каждый цикл обрабатывается все известное пространство, либо они пиздаболы. шанс 2 варианта стремится к 100%. ничто не способно производить такие вычисления, 1 планета выйдет как ммо среднего уровня.

раскрыть ветку (21)
24
DELETED
Автор поста оценил этот комментарий
Сказали же, вселенная процедурно генерируемая. Положение каждой травинки и капли - это функция от времени. Не обязательно эту функцию вычислять постоянно.


Вот тебе очень упрощённый пример: y = t^2 - sin(t). Чтобы узнать значение y при t равном 100500 совсем не обязательно вычислять ещё 100499 значений t. Можно сразу получить то, которое нужно тогда, когда нам нужно.
раскрыть ветку (17)
3
Автор поста оценил этот комментарий
Т.е. ещё ближе к делу - если на полянке 0.5 вероятность появления животного, то надо организовать всего лишь сложнейшую компьютерную генерацию одного из двух случайных результатов.
раскрыть ветку (4)
Автор поста оценил этот комментарий

Нету вероятности. Из сида мы можем судить, будет на этой самой полянке это самое животное или нет. Все генерируется по сидам.

раскрыть ветку (3)
Автор поста оценил этот комментарий

Про какие сиды речь?

раскрыть ветку (2)
Автор поста оценил этот комментарий

Чукча не читатель?


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

раскрыть ветку (1)
Автор поста оценил этот комментарий

При чём здесь чукча, ты написал сид, откуда мне знать, что за сид такой.

4
Автор поста оценил этот комментарий
Если вся вселенная, которую не видит игрок встает на паузу, то это слабо похоже на "Всё вокруг живет своей жизнью".
раскрыть ветку (7)
2
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
4
Автор поста оценил этот комментарий

Так когда игрок увидит место, которое стояло на паузе, оно нарисуется не с момента паузы уже, а относительно текущего времени. @dim0v все описал точнее некуда

раскрыть ветку (5)
1
Автор поста оценил этот комментарий
Только приглянувшейся тебе белки уже не будет. Это эквивалентно сбросу.
раскрыть ветку (4)
1
DELETED
Автор поста оценил этот комментарий
Только приглянувшейся тебе белки уже не будет

Ну да, именно потому что мир не на паузе, приглянувшаяся тебе белка к моменту твоего возвращения может убежать или умереть. Какому сбросу это эквивалентно?

раскрыть ветку (3)
Автор поста оценил этот комментарий

В смысле, хочешь сказать, что в момент твоего появления просчитывается вся история белки?

раскрыть ветку (2)
1
DELETED
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Нехеровая такая формула для белочки получается. Не тяжко будет считать каждый момент времени для этой белки, если я на неё смотрю? А если их куча?

ещё комментарии
1
Автор поста оценил этот комментарий

Не все известное, а видимая часть и немного самой важной информации из других зон. В остальном нет надобности

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий
мир перестанет жить своей жизнью, если дальние секторы не будут включены в обработку

Нет, не перестанет. Я тебе писал, как это работает. Не обязательно симулировать все существование планеты для того чтобы получить ее состояние в текущий момент.


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

Еще можно будет принимать участие в исследовании и развитии этого мира. Если тебе интересны только игры вроде "убей всех тираристав!!1!", "спаси мир от злобного злодея, играя за супер-мега-трансформера-героя!!1!", "дакажи всиму гораду что ты самый крутой гонщик!!1!", или "Убей 75 болотных монстров чтобы степной мудрец дал тебе редчайший артефакт, который ты сможешь выменять у великого магистра на магическую перчатку от редчайшего доспеха, который поднимет все твои статы на 20%", то это не значит, что всем остальным тоже подавай только стрелялки, гонки или РПГ (нужное подчеркнуть).

У песочниц есть своя аудитория. И если эта песочница получится качественной, то успех ей гарантирован.

Автор поста оценил этот комментарий
Т,е. тупо появляется вокркг игрока.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Для самого игрока, тоесть нагрузки от открытия вселеной, для нового игрока никакой

6
Автор поста оценил этот комментарий

Столько же планет было в Elite для спектрума и умещалось это всё в 48Кб озу. Так что было бы желание...

4
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку (2)
Автор поста оценил этот комментарий
Выйди ночью на улицу в ясный день и попробуй посчитать все звезды на небе, сомневаюсь что сможешь. А ведь каждая из них должна сгенерироваться и перемещаться по физическим законам.
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку