ПОРТФОЛИО / UNITY
The Decline of Warriors.
Прототип с бесконечным детерминированным воксельным миром: генерация чанков и размещение объектов по seed, локальный runtime NavMesh и мультиплеер на FishNet.

Обложка проекта. Дополнительные кадры и материалы находятся ниже.
Бесконечный мир из воспроизводимых чанков
Прототип подгружает чанки вокруг игрока и выгружает дальние. Содержимое каждого чанка вычисляется из общего seed, мировых координат и настроек генератора, поэтому для повторного создания участка не нужно хранить готовую карту. Несколько слоёв шума задают скалы, проходы, высоты и биомы. Перед сглаживанием генератор захватывает ячейки за границей чанка: соседние участки учитывают одно и то же окружение, даже если загружаются в разном порядке.
Геометрия без куба на каждую ячейку
Сетка строится только для видимых поверхностей. Алгоритм greedy meshing объединяет соседние ячейки с одинаковой высотой, биомом и типом поверхности в большие четырёхугольники — отдельно для земли, верхних площадок и боковых стен. Это сокращает число полигонов по сравнению с отдельными гранями каждого вокселя. Для рендера меши чанков собираются в региональные меши; коллайдеры строятся отдельно. Очереди и лимиты на генерацию, построение мешей и применение коллайдеров распределяют работу по кадрам.
Детерминированное размещение prefab
Для каждого чанка планировщик выбирает объекты по весам и вероятности через хеш от seed, координат чанка и номера попытки. Он проверяет размер и поворот объекта, отступы от края и занятых ячеек. Объект может ставиться на готовую ровную площадку либо получить заранее рассчитанную площадку с проходом к земле; эта правка высот применяется до построения меша. Размещения получают стабильные идентификаторы, чтобы, например, удалённый объект не появлялся снова после повторной загрузки чанка.
NavMesh и сетевая часть
FishNet используется для сетевых объектов и управления игроком. После готовности коллайдера чанка модуль навигации собирает локальные источники геометрии, группирует близкие точки интереса в области покрытия и асинхронно обновляет затронутые области NavMesh. Сетка навигации считается производной от мира и не передаётся по сети. В текущем прототипе генератор использует локальную конфигурацию; для гарантированно одинакового мира у участников требуется согласовывать seed, настройки и версию правил генерации. Это предусмотрено архитектурой проекта, но сетевой обмен этими параметрами ещё не реализован в показанном коде.
Скриншоты
Ищете геймплейного разработчика?
Буду рад обсудить задачи вашей команды и рассказать о работе над играми.




