LoneTower
MVP-прототип 3D tower-defence на Unity 6 (URP): процедурный воксельный рельеф с типизированными углами, кастомный flow-field навигационный решатель (BFS поле стоимости + boid steering) и песочница строительства блоков с коннекторами.
LoneTower — MVP-прототип 3D tower-defence на Unity 6 (URP), построенный вокруг двух систем: процедурного воксельного рельефа, генерируемого из сетки с типизированными углами, и кастомного flow-field навигационного решателя, который двигает агентов по рельефу без использования встроенного Unity NavMesh.
Рельеф — сетка вершин, где каждая вершина типизирована как земля или вода с биомом. Каждая ячейка выводит презентацию (вариант + поворот на 90°) из типов четырёх углов через 4-битный bitmask-классификатор (в стиле marching squares), затем собирает authored FBX-меш или runtime-заглушку. Анализ наклона (dot-product нормали треугольника против порога) определяет, какие ячейки проходимы и пригодны для строительства.
Ключевая часть — NavigationResolver: самодостаточная система flow-field pathfinding и steering. BFS строит поле стоимости и поле направления от цели; агенты сэмплируют поле направления для preferred velocity, spatial-hash broadphase собирает соседей, а boid-style steering (separation + goal slowdown) даёт безопасную скорость. Кэш по версии топологии инвалидирует поля при изменениях, а mutation-preview API проверяет, не отрежет ли размещение блока агентов от их целей.
Key features
- Процедурный воксельный рельеф из сетки с типизированными углами — 4-битный bitmask-классификатор (6 вариантов × 4 поворота = 24 презентации).
- Кастомный flow-field навигационный решатель: BFS поле стоимости + поле направления, spatial-hash broadphase, boid steering — без Unity NavMesh.
- Инвалидация кэша по версии топологии: поля перестраиваются лениво при изменениях рельефа/блоков.
- Mutation-preview API: проверяет, не отрежет ли размещение блока агентов от целей, до коммита.
- Система башенных блоков с коннекторами: поиск по 24 вращениям куба для детерминированного выбора меша.
- VContainer DI; события MessagePipe; UniTask async; стратегическая камера (zoom/pan/orbit).