Рендеринг логики в No Man’s Sky

Игра No Man’s Sky позиционируется как бесконечный процедурно генерируемый универсум, в котором на ленивую генерацию завязана даже каждая, условно говоря, травинка. Реализуется это достаточно очевидным способом: каждая планета представлена 64-битным ключом, который используется для генерации уникальной только для нее случайной последовательности, которая уже и развертывается в мир. При этом сам мир реально генерится, только когда игрок его посещает.

Здесь сразу же возникает очевидная проблема: я посетил планету А, затем слетал на другой конец галактики и посетил планету Б, а затем вернулся на А, а там… Хоть и прошло много лет, но мир остался фактически почти таким, как в момент моего отлёта оттуда. Потому что как «лениво» моделировать эволюционный процесс, непонятно: это задача на порядки сложнее генерации красочной статики. Если же запускать эволюцию посещённых планет в «реалтайме», то понятно, ресурсы компьютера скоро закончатся, как это происходит в Dwarf Fortress при крупном разросшемся игровом мире — каждый «ход» надо ждать минутами.

Напрашивается нечто вроде «уровня детализации», как в компьютерной графике: более далёкие объекты рендерятся со значительно меньшим числом полигонов, нежели те, что на переднем плане. Так и тут: чем дальше от игрока планета, тем более грубым и приблизительным должен быть процесс эволюции — но он всё равно должен идти!

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

На самом деле в играх наподобие No Man’s Sky или Spore интерактивность по этой причине сильно ограничена. Заявляется конечно, что придумано масштабируемое решение этих проблем, но на самом деле — нет. Ни одной игры такого плана пока нету!

Поделиться статьей ...Share on Facebook0Share on Google+0Tweet about this on TwitterShare on LinkedIn0Share on VKPrint this page

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *