Как я создаю Плутон для своей игры
Плутон в моей игре — это не просто большая текстура на сфере. Я хотел, чтобы игрок мог действительно прилететь к нему, сесть на поверхность, пройтись по рельефу, вернуться в космос и снова увидеть планету целиком.
Конечно, настоящий Плутон имеет диаметр около 2376 километров. Воссоздать такой масштаб в одиночном проекте на Unity было бы непрактично: пришлось бы решать проблемы с точностью координат, огромными расстояниями, детализацией и временем перемещения и это не говоря об оптимизации, которая могла бы начать хромать на слабом железе.
Поэтому я выбрал игровой диаметр 2 километра. Это всё ещё очень большая территория для одной локации. Игрок может долго идти по поверхности, летать вокруг планеты и чувствовать масштаб, но при этом движок не начинает разрушаться из-за слишком крупных координат. Такой размер позволяет сохранить управляемую физику, нормальную работу камеры и возможность детально проработать поверхность рядом с игроком. Чтоб было более ясно насколько 2км большой диаметр, при скорости ходьбы в 5км/ч игроку понадобится больше часа реального времени, чтоб обойти Плутон по экватору.
Плутон разделён на несколько уровней отображения. Из космоса он выглядит как цельный объект с общей цветовой картой. При приближении подключается локальная детализация: физический рельеф, холмы, впадины, кратеры и камни с коллайдерами. Я специально сделал систему потоковой загрузки, чтобы не держать всю детализированную поверхность в максимальном качестве одновременно.
Отдельно я занимаюсь спутниками Плутона. Они тоже не должны выглядеть обычными гладкими шарами, поэтому для них добавляется рельеф с физическими кратерами, неровностями и поверхностями, по которым в будущем можно будет перемещаться. Их орбиты и движение тоже учитываются в игровом пространстве.
Ещё одна система — пояс космического мусора. Он расположен не вплотную к Плутону и не перекрывает орбиты спутников. Обломки появляются в заданном диапазоне расстояний, имеют разные размеры и состав. Среди ресурсов будут силикаты, железные сплавы, проводящие металлы, лёд, углеродистое сырьё и редкие элементы. При наведении на обломок корабль сможет просканировать его состав.
Самой сложной частью пока стала база.
Я спроектировал её под поверхностью Плутона, но верхний люк должен находиться точно вровень с поверхностью. Это оказалось гораздо сложнее, чем просто поставить готовую модель на сферу. Нужно было совместить базу, рельеф, коллайдеры, отверстие в поверхности и систему детализации так, чтобы при подлёте не появлялась огромная плоская площадка или дыра в планете.
База находится внутри Плутона, а верхний ярус должен аккуратно выходить наружу. При этом поверхность вокруг люка должна сохранять естественный рельеф, а игрок не должен проваливаться между общей моделью планеты и локальными чанками. Сейчас я постепенно исправляю эти переходы и добиваюсь того, чтобы база действительно выглядела встроенной в планету.
На словах это звучит просто: сделать сферу, поставить под неё базу и вырезать люк. На практике пришлось связывать геометрию, физику, потоковую загрузку, коллайдеры, материалы и освещение в одну систему.
Пока это всё ещё ранняя стадия, но теперь Плутон в игре уже не просто фон. У него есть собственная поверхность, спутники, орбиты, время, космический мусор и база, которая физически встроена внутрь планеты.
Именно к этому ощущению я и стремлюсь: чтобы игрок не просто смотрел на Плутон, а действительно чувствовал, что оказался на нём.









