WorldKraft (voxel editor app)

  1. Игрок может построить модель, используя кубические вокселы (как в Minecraft), затем присвоить ей имя и сохранить. Таких моделей может быть создано неограниченное количество.
  2. Но «домашняя» сцена/мир не состоит из вокселов (кубов) – в отличие от Minecraft. Вместо этого в нее добавляются ранее созданные модели, которые можно свободно размещать или поворачивать.

Например, игрок может создать несколько моделей зданий, использовать только некоторые из них, использовать одно и то же здание несколько раз, поворачивать одно здание на 45°, а другое на 165° и т.д.

Также можно рисовать сплайны и запускать модели вдоль них; это предназначено для создания простых анимаций поездов/ж.д.

Работа с миллионами кубов в одной и той же модели (или сцене) напрямую требует слишком много времени. Вместо этого необходимо обнаруживать и пропускать полностью скрытые кубы (из-за окружающих их объектов), а оставшиеся «открытые» объединять в более крупные модели (обычно называемые «кусками» (chunks)). Сегодня наиболее практичным подходом, вероятно, является использование стороннего решения и/или instancing и/или вычислительные шейдеры. Но в то время ни то, ни другое не было приемлемым выбором в Unity (или, возможно, в любом другом движке). Таким образом, мы создали нашу собственную кубическую воксельную систему, состоящую из вышеупомянутых «кусков», изменений шейдеров и своей реализации raycasting.

Чтобы ускорить скучные части кубического воксельного моделирования, мы внедрили несколько типов «мощных» инструментов:

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

info

link:
https://www.youtube.com/@worldkraft7662
client:
Woj
date:
2015-02–2016-02
stack:
Unity
skills:
ShaderLab, algorithms, data structures, technical artistry
role:
solo programming
billing:
hourly