Задать вопрос
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻

Как правильно сделать разрушаемый мир(на подобии minecraft)?

Собираюсь написать игру, в основе которой лежит изменяемый мир, как в minecraft, только не кубический, а более реалистичный. Использовать карту высот не вариант, так как должна быть реализована возможность копать туннели. Первое, что приходит на ум, - поделить мир на блоки и уже в блоках на точки, скажем через каждые пол метра, если точки "материальны"(земля, камень и т.д.), то рассчитываем каким-либо образом поверхность, визуализируем её и отдаём клиент. Но если немного посчитать, то это будет занимать очень много места. Допустим, под один блок отводится 1 байт, тогда 1000м*1000м*1000м*2б=2000000000б~2Гб, а уж если карта будет 30х30км... Где-то читал, что в minecraft всё делается именно так, но хранится в сжатом виде, хотя может я ошибаюсь.
Собственно вопрос: как сделать основу грамотно, чтоб мир был расширяемый и не занимал терабайты памяти? Также интересует, насколько хорошо это можно реализовать в Unreal Engine, сам двиг пока не изучал, но склоняюсь больше к нему (С++ меня не пугает) и насколько вообще Unreal подходит для такого проекта? Интересует именно производительность конечного продукта, а не удобство разработки.
  • Вопрос задан
  • 3020 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
Foolleren
@Foolleren
Компас есть, копать не люблю...
Разреженное воксельное октодерево.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Вам нужны воксели, только писать их самому придётся несколько лет, так что лучше берите плагин:
voxelfarm.com
github.com/volumesoffun/cubiquity-for-unreal-engine
sandermeessen.weebly.com/terravox.html
И читайте этот блог с самого начала, там расписано почему это суперсложная задача:
procworld.blogspot.ru
Ответ написан
maaGames
@maaGames
Погроммирую программы
Можно переразбивать поверхность. Т.е. когда копаете ямку, нужно вырезать треугольники из существующей грани и добавить новые грани, образующие тоннель. Это сложно, но довольно эффективно - перерасхода памяти не будет.
Ответ написан
Как вам уже сказали, вам нужны воксели. И Unreal для этого не подойдёт. По сути вам придётся свой движок написать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы