Разработчик нашел способ создать сферическую версию Minecraft с реалистичной гравитацией
Программист под ником Bowerbyte представил техническую демонстрацию Blocky Planet, которая переносит блочные механики Minecraft на поверхность настоящей планеты.
В оригинальной Minecraft миры генерируются на практически бесконечной плоской поверхности. Игроки не сталкиваются с кривизной планеты и не могут обойти весь мир, чтобы вернуться в исходную точку. Bowerbyte решил исправить эту особенность, создав демо-версию с полноценной сферической планетой.
Главным вызовом стало преобразование плоского мира Minecraft в планетарную форму. Создать сферу из блоков относительно просто – достаточно отфильтровать центры кубических вокселей, находящихся на определенном расстоянии от центральной точки. Однако такой подход не решает проблему гравитации, которая создает сложности при строительстве вверх или копании вниз.
Разработчику пришлось решить две ключевые задачи. Первая – проецирование двумерной сетки на трехмерную сферу, аналогично нанесению плоской карты на глобус. Вторая – поддержание одинакового размера блоков при движении от поверхности к ядру планеты.
Для решения первой проблемы Bowerbyte разделил плоскую поверхность на шесть равных частей и спроецировал их на куб. Затем каждая грань куба была разбита на более мелкие квадраты, а углы каждого элемента вытолкнуты на определенное расстояние от центральной точки. Разработчик сравнил этот процесс с "надуванием куба как воздушного шарика".
Квадраты деформировались в соответствии с формой планеты и превратились в четырехугольники. Чтобы компенсировать неизбежные искажения, программист предварительно деформировал квадратную сетку, что помогло финальному результату выглядеть естественно.
Вторая проблема касалась глубины. При движении к центру планеты блоки становятся все тоньше и в итоге превращаются в треугольники. Первоначально Bowerbyte пытался решить это добавлением дополнительных блоков на больших высотах, но это приводило к смещению слоев. В итоге разработчик решил добавлять блоки только когда искажение становится слишком заметным, увеличивая их количество на целые числа для упрощения выравнивания между слоями. Несколько слоев объединяются в "оболочки" для более эффективной обработки.
После решения основных технических вопросов Bowerbyte добавил систему гравитации, направленную к центру планеты вместо традиционного направления вниз. Благодаря этому игроки не "падают" с боковых сторон планеты, а остаются на поверхности при перемещении по любой стороне сферы.
Разработчик создавал демо в свободное время и планирует продолжить работу над ним в будущем. Однако превращение проекта в полноценную игру не входит в планы – это потребует слишком много времени и будет конкурировать с основной работой.
Blocky Planet доступна для скачивания на ПК или игры через браузер, предлагая более реалистичную планетарную поверхность вместо плоского бесконечного мира.
Почитать подробности создания этого проекта можно в блоге автора.
- Игроки Minecraft даже сейчас удивлены, почему вагонетки не выполняют свою прямую функцию
- Счастливый моб спас игрока Minecraft от неминуемой гибели в хардкорном режиме
- Игрок вернулся в Minecraft спустя 7 лет и сделал случайный скриншот, ставший шедевром хоррора