Игра, в которой планет больше, чем звезд можно насчитать за всю жизнь, а ее размер на устройстве не превышает гигабайта. Как это вообще возможно? No Man’s Sky выпустила обновление под названием Cosmos, и это возможность рассказать о секрете этой игры, который должен знать каждый разработчик. Исходная проблема: если кто-то решил...
Игра, в которой планет больше, чем звезд можно насчитать за всю жизнь, а ее размер на устройстве не превышает гигабайта. Как это вообще возможно?
No Man’s Sky выпустила обновление под названием Cosmos, и это возможность рассказать о секрете этой игры, который должен знать каждый разработчик.
Исходная проблема: если бы кто-то решил хранить данные миллиардов планет (их рельефа, цветов и объектов) напрямую, ему потребовалось бы хранилище, измеряемое петабайтами, то есть миллионами гигабайт, а это практически невозможно на устройстве любого обычного игрока.
Решение: идея под названием «Процедурная генерация». Вместо того, чтобы сохранять планету как готовую, вы сохраняете только «уравнение» или начальное число, с помощью которого планета генерируется всякий раз, когда игрок входит в нее. Это означает, что игра строит планету момент за моментом перед вами, а не раньше.
Хорошо, где компромисс? Генерация юниверса по требованию: устройство каждую секунду загружает дополнительную вычислительную работу (это означает, что оно потребляет мощность процессора вместо места для хранения). Вот вы меняете место хранения на вычислительную мощность, и это ровно то же самое решение, которое принимает любой инженер, строящий большую систему: хранить все готовое, а не вычислять каждый раз?
Тот же принцип применяется при проектировании реальных систем, от кэширования до создания больших API.
🔗 Оригинальный источник и ссылка: https://www.nomanssky.com/cosmos-update/
Публикуется автоматически через конвейер контента FeedMind AI.