VP
    Форум

    Промпт на старт игрушки

    25 февр. 2026 г.
    1263
    3

    Тут некоторые спрашивают, как я начинаю проекты. Да вот так. Мне не жалко, сейчас покажу. Два файлика, которые я создаю отдельно в перплексити + aistudio idea.md

    Хочу сделать движок игры 
    
    1) полностью разрушаемый шарообразный мир в котором можно копать. Воксельная механика, вопрос формы вокселей (либо вообще воксели как точки). Мир круглый, краевые артефакты не приемлемы
    2) Строительство из кубов и/или выровненным по кубам моделям как в майнкрафте
    3) обычные полигональные модели предметов, монстров и деревьев
    4) реалистичная физика воды и газов
    
    Пожалуй локальная привязка к гриду для строительства более менее адекватно звучит если выбирать компромиссы. Вопрос стыковки разных механизмов может решаться полигональным роутингом (аля satisfactory)
    
    
    =====
    Да, компромисс “локальная привязка к гриду для строительства + сферический/изотропный базовый мир” звучит наиболее реализуемо, если вы одновременно хотите копание, кубическое строительство, обычные модели и ещё и воду/газы. Главная мысль: не пытаться одной дискретизацией закрыть все 4 пункта, а разнести их на 2–3 взаимосвязанных представления мира.
    
    1) Геометрия планеты: поле плотности + изосёрфейс
    Для «толстого шара, всё разрушаемо» лучше мыслить не “воксель-кирпичами особой формы”, а скалярным полем плотности/материала (узлы решётки) и извлечением поверхности (DC/MC). Dual Contouring хорошо подходит для динамических изменений и позволяет делать более резкие формы, чем marching cubes, а Manifold Dual Contouring помогает удерживать манихолдность при адаптивности/LOD.
    
    Практический вывод: оставляйте сферу как “объём данных”, а визуальную поверхность — как производную (меш), который вы перестраиваете по чанкам при копании.
    
    Хранилище: чанки фиксированного размера 32x32x32по миру (для стриминга/мультиплеера/диска), но внутри каждого чанка — адаптивное представление (octree или хотя бы sparse) чтобы сжимать пустоты/монолит. Это даёт управляемость и экономию памяти.
    
    Мешинг: Dual Contouring / Manifold DC для качества, sharp features и нормальной адаптивности; плюс seam-генерация на границах чанков, чтобы исключить трещины.
    
    2) Кубическое строительство: отдельный локальный grid-слой
    Кубы “как в Minecraft” глобально на сфере без искажений невозможны (это по сути проблема наложения квадратной сетки на сферу), поэтому делать это локально — правильная цена. Идея: при размещении постройки создаёте локальную ортонормальную систему (касательная плоскость + up по гравитации к центру), и в ней живёт строительный grid (кубы, выровненные модели). Это похоже на “полигональный роутинг” из Satisfactory: базовый мир — органический/воксельный, а конструкции — отдельная “инженерная” подсистема со своими правилами стыковки.
    ​
    
    Как стыковать с террейном: булевы операции “строительство как solid” модифицируют поле плотности (вырез/заливка), либо идут как отдельные коллайдеры/рендер-геометрия и только локально “подрезают” террейн.
    
    3) LOD/чанки без краевых артефактов
    “Краевые артефакты не приемлемы” = вам нужен протокол стыковки мешей между чанками и (если будет LOD) между уровнями. Для voxel terrain это классическая проблема cracks; один путь — Transvoxel (табличные переходные полигоны), другой — seam/stitch подходы вокруг dual contouring. Transvoxel прямо описывает проблему трещин при разных разрешениях и даёт стандартное решение для изосёрфейсов.
    ​
    
    Если вы идёте в dual contouring, полезна практика seam mesh/overlap-chunks для скрытия/устранения трещин в стыках.
    ​
    
    4) Вода и газы: решётка симуляции ≠ решётка террейна
    “Реалистичная физика воды и газов” на огромной разрушаемой планете в реальном времени — отдельный бюджет. В реальном времени часто используют grid-based подходы (скоростное поле на 3D сетке), и базовая отправная точка в литературе/практике — Stable Fluids Стэма (unconditionally stable, большие шаги по времени, сравнительно простая реализация).
    
    Практически это значит:
    
    Газ/дым: stable fluids или их GPU-варианты на относительно грубой/адаптивной решётке, привязанной к активной зоне вокруг игрока.
    ​
    
    Вода: либо похожая решётка + free-surface приближения, либо гибрид (локальные “ячейки-резервуары”/pipe network) — но не пытаться “честный CFD” на всей планете.
    
    Рекомендуемая архитектура (с минимальным риском)
    Террейн: скалярное поле (материал/плотность) + Dual Contouring/Manifold DC для меша.
    
    Строительство: локальные строительные гриды, привязанные к касательной плоскости и направлению гравитации; геометрия конструкций либо отдельная, либо модифицирует поле плотности булевыми “врезками”.
    ​
    
    LOD: либо Transvoxel для MC-подобной схемы, либо seam/stitch в духе dual contouring, чтобы не было трещин.
    
    Флюиды: отдельная симуляционная решётка, локальная/адаптивная; Stable Fluids как базовый кирпич.
    
    ====
    
    техника rust + wgpu

    phase1.md

    Сгенерируй планету диаметром 1 км. 
    Планета воксельная, сетка с разрешением в 1 метр. 
    Гравитация направлена к центру планеты. 
    Воксели земли - трава, под травой - земля, под землей - камень. 
    Меш планеты генерируется с помощью Dual Contouring (см @idea.md). 
    
    Помести игрока в стартовую точку. Игрок коллайдится с мешем. 
    Дай игроку вид из глаз, возможность двигаться wasd, поворачивать камеру мышкой, прыгать и копать ЛКМ. 
    
    Место где он копает - пересечение луча взгляда с ближайшим мешем. Отмечено голубой сферой
    Один цикл копки убирает один воксель (понижает его непрозрачность до 0)
    
    стейт
    ====
    храним стейт изменения вокселей, загружаем из файла, сохраняем в файл
    
    ====
    
    Запуск
    
    make dev - загрузка мира с диска (если есть)
    make dev new - генерация нового мира

    Начальный промпт:

    согласно idea.md реализуй phase1.md задавай вопросы если нужно

    А дальше просто дорисовываем эту дурацкую сову 😁

    Изображение

    Комментарии (3)

    А дальше?

    Дальше рисуем сову!

    Хе хе, а дальше дикое задротство на самом деле, само оно движок лепит с огромным количеством ошибок, нужно обвешиваться логами и поправлять на каждой стадии

    Войдите, чтобы комментировать

    Глеб Кудрявцев

    AI Architecture & Engineering

    Системный подход к искусственному интеллекту. От архитектуры до продакшена.

    Контакты

    © 2026 Глеб Кудрявцев. Все права защищены.

    Built with precision

    Промпт на старт игрушки