Комментарии 4
В разработке я не сильно долго, сходу вопрос: разве полная перестройка чанков - оптимизирована лучше?
Возможно ли сделать ультра мега оптимизированный майнкрафт? И какие тонкости нужно знать
ИИ пишет что полная перестройка чанков чуть хуже по оптимизации. Но по моему опыту с моим подходом производительность в разы лучше. И чем больше будет размер чанка, тем сильнее будет разница. Полная перестройка чанка лучше тем, что меньше кода, а следовательно меньше простор для потенциальных багов.
Я как раз стремлюсь сделать оптимизированный майнкрафт, но я пока всех нюансов не знаю. Буду постепенно выкладывать статьи, по мере разработки. Сейчас начал разбираться с освещением. Встроенные инструменты в Unity для освещения не подходят для подобной игры, но сделать хотя бы так же как в оригинальном Minecraft, это та еще головоломка)
давайте в кратце опишу что вам нужно, для света флуд филл, и чанков бесконечных(u32, а координаты f32 тоесть пакуем в u32, но полностью это не решает вопрос, но часик бежать на тяжелой(тоесть не мега облёт, а хождение) физике можно где-то до 3600, может 5000, я лично до 3600 добегал с сохранениями), значит нужна система на многотопоках, (по 26 соседям(3х3х3 таск) - блок, 26(3х3х3 таск) соседей свет - например это может быть 1 таск), многопоточка должна уметь таском открывать файл писать в файл, генерировать мир, генерировать свет(если есть), собирать меш(АО+свет), и делать уборку по меткам(тоесть убрали блок, пометили свет, поставили ревизию, вызвали текущий счет света, и пометили пересборку соседей, тогда свет растечется включая грань - аля стык 15-0 - 15 лево 0 право, если не пометить какой-то из чанков выдаст старую версию света, если без света, там оптимизация доходит до 30-100 мегабайт если рабочая область 16х16-4х4дистанция+1), ну когда вы до света доберётесь вы уже считай игру сделали, как такой еффективный код на Юнити делать не знаю, я на расте смотрю )), выплёвывая соседей, ограничение обзора - отрисовка идёт по фрустуму, собственно после фрустума если вы правильно инкапсулировали логику чанкования в мир, вы автоматом получаете бесконечный мир, тоесть ваша система начнет генерировать всё вокруг, там несложно донастроить физику на бесконечность, тоесть если вопрос стоит реальна ли бесконечность на мидл-лоу оборудовании почти воксельный глобал илюминейт - ответ да
эта воксельно-полигональная ситуация классная разминка, чтоб разобраться как это всё работает, всем успехов )

Minecraft на Unity. Логика разрушения блоков