Обратите внимание: этот материал публикуется впервые и ранее нигде не размещался, включая личные блоги, социальные сети и другие платформы.
Пролог на 3 033 знака (да, я посчитал)
Меня зовут Владимир Летуновский, и у меня есть две особенности.
Первая: мне тринадцать, и я искренне считаю, что vkCmdPipelineBarrier
— это идеальный подарок на день рождения.
Вторая: все вокруг уверены, что школьники должны играть в Fortnite или — на худой конец — делать домашку, а я вместо этого выращиваю собственный игровой движок на C++ 20 + Vulkan 1 .3, да ещё и обучаю мультимодальную LLM, которая сама дорисовывает уровни, когда я просто ставлю в редакторе куб.
Если вкратце, мой типичный диалог с взрослым выглядит так:
— «Вова, сколько будет дважды два?»
— «Четыре. А теперь скажи, зачем Unity попросил Runtime Fee?»
— «Мы об этом потом поговорим. Ты лучше в футбол сходи.»
— «Схожу, когда починюVK_ERROR_OUT_OF_DEVICE_MEMORY
. Футбол подождёт.»
Так и живу: днём — контрольная по биологии, ночью — контроль каденций в кластере Ray + DeepSpeed. А теперь устройство всего этого безобразия — в одном, максимально длинном и честном рассказе.
Глава 1. Биография в стиле commit log
v0.1.0 (7 лет): собрал первый «домик» в Blender, рендерил Cycles 40 минут.
v0.2.0 (8 лет): MonoGame, C#, FPS = 10, радость = ∞.
v0.3.7 (10 лет): OpenGL. Выучил, что «gl» — это не «good luck».
v0.4.2 (11 лет): «А давайте на Vulkan?» — слова, которые сломали видеокарту папы.
v0.9.0 (13 лет, текущий мастер): MIA Engine NEO, собственный ECS, GUI-редактор, мультимодальная LLM 5 B, Vision-CNN, Async Compute, таймлайн-семафоры, и ещё уроки по химии где-то между коммитами.
Глава 2. Почему всё-таки не Unity, не Unreal и даже не Godot
Unity объявил Runtime Fee. У меня лично даже карманных денег хватит ровно на два билда и один хот-фикс.
Unreal Engine 5 — шикарно, но 300 ГБ исходников — это примерно столько же, сколько весит моя школа, если её измерять в PDF-презентациях.
Godot — сердечко, но не даёт потрогать
VkPipelineBarrier
так, чтобы validation-layer орал CAPS-LOCK’ом.
Поэтому: «сам себе кузнец — сам себе движок».
Глава 3. Архитектура: салфетка, ручка, 5 000 строчек кода
3.1. Поток данных
GLTF/PNG/WAV → Importer → ResourceMgr
↓
ECS World ← Lua/Python Host ← LLM 5 B (+ Vision CNN)
↓
Vulkan Backend → Swapchain → Ваш монитор
Importer превращает любые ассеты в собственный .asn (binary + meta.json).
ResourceMgr крутит граф зависимостей; staging буфер 256 МБ, копии в VRAM идут в DMA.
ECS — чанки ровно 4 КБ, SoA layout,
std::barrier
-job-пул на 6 потоков.Vision CNN смотрит на downsample G-Buffer 128² + семантику, выдаёт 32 K токенов.
LLM 5 B читает prompt + vision-токены + историю сцен, генерирует JSON DSL, Lua-код, wav-реплики.
Vulkan Backend (deferred + clustered lighting + TAA + HBAO) выдаёт картинку; новая рамка снова уходит в CNN. Замкнутый круг счастья.
3.2. Render-цифры
G-Buffer: pos+rough (R16F+R8), normal A2B10G10R10, emissive R11G11B10F.
Clustered lighting: 8×8×24 клеточки, 8 000 лампочек на RTX 4090 — минус 4 % FPS.
PostFX: HBAO (~0.6 мс), CAS-Sharpen, LUT-тонмап. RayQuery включаю по праздникам.
Глава 4. ECS: как заставить процессор не скучать
Chunk = 4 096 байт → идеально делится на кеш-линию 64 б.
EntityID = index 24 бита | generation 8 бит — дырок не остаётся.
Удаление O(1): swap-last + free-list.
Показатель плотности после хаоса (“поджёг город, удалил 10 k объектов”) — 0.92.
Тик 1 000 NPC на Ryzen 5600:
однопоток — 4.7 мс
job-пул — 1.3 мс
Глава 5. Vision CNN + LLM 5 B: «Я вижу сцену, значит, понимаю»
Движок снимает G-Buffer 128² и семантическую маску.
CNN (8 ResBlocks) превращает это в поток из 32 000 токенов.
LLM читает prompt + vision + предыдущие AST-команды и решает, что добавить.
Генерирует:
JSON DSL (entities, materials, lights),
Lua-код (AI, квест-триггеры),
wav-файлы реплик (HiFi-GAN).
Latency: 2.6 с на RTX 4090, 1.4 с на A100 (bf16).

Глава 6. Из чего обучен копилот
Источник | GB | Лицензия |
---|---|---|
Процедурные сцены | 30 | CC0 (собственная генерация) |
GLTF/PNG (OpenGameArt) | 12 | CC0 |
Lua/Python (OSS-игры) | 11 | MIT / Apache |
Квест-тексты, диалоги | 5 | CC-BY-SA → отфильтровано |
WAV (FreeSound CC0) | 3 | CC0 |
24 слоя,
d_model = 3072
, Rotary PE, Flash-Attn 2.DeepSpeed ZeRO-3, bf16, 1 × A100 40 GB → 73 GPU-часа.
Loss DSL 1.04, MOS аудио 3.8/5.

Глава 7. Лицензия и деньги, без фокусов
Движок MIA Engine NEO
Открытый исходник, но исключительно для личного изучения.
Менять и продавать модифицированную версию движка нельзя.
Делать и продавать игры, если ядро оригинальное — можно.
Autopilot Dev Pipeline
Публичный playground — 30 запросов в час бесплатно.
Hobby-ключ — 5 $/мес, только личные проекты, watermark.
Коммерческая лицензия (инди с профитом до 100 k $/год) появится ближе к релизу.
Любая коммерция без лицензии запрещена.
GPU скучают без электричества, поэтому такая схема — честный компромисс: ядро остаётся открытым, копилот помогает финансировать A100 и еду (а иногда — химию в школе).
Глава 8. Benchmark-таблица — кому важны цифры
Тест | RTX 2060 6 GB | RTX 4090 24 GB | A100 40 GB |
---|---|---|---|
50 k tris, postFX вкл. | 98 FPS | 180 FPS | 195 FPS |
Prompt → Scene (LLM + render) | 14 с | 2.6 с | 1.4 с |
Vision-CNN 128² | 32 мс | 7 мс | 5 мс |

Глава 9. Планы, более реальные, чем школьный обед
15 июля 2025 — MIT-alpha: рендер, ECS, Lua, GUI-редактор.
3 сентября 2025 — LoRA 8-bit, веб-playground.
Ноябрь 2025 — воркшоп «Text-to-Game за 60 мин», Ray-автоскейл.
Декабрь 2025 — Steam-playtest «Пельмень-Крафт»: если игрок AFK, AI строит завод пельменей.
Глава 10. Как помочь проекту
GitHub — https://github.com/LetunovskiyODT/MIA-ENGINE (код не выложу до официальной беты).
Telegram — @infernasel — шлите идеи, баги, пельмени-мемы.
E-mail — letunovskiu2011@yandex.ru — если у вас без дела скучает A100 40 GB, я заберу, подпишу в титрах.
Эпилог
Я ставлю один куб и пишу «alien jungle, bioluminescence».
Копилот видит — ага, куб в бесплодном пространстве, вокруг темень.
Через 2 секунды экран оживает: светящиеся деревья, туман, NPC-учёный с репликой «Соберите споры!».
В этот момент не важно, какие бюрократы где нажали «профилактика». Важно, что мечта «один куб → целый мир» работает на GPU здесь и сейчас.
Следующий куб — ваш. Я жду, чем его удивите вы.
— Владимир Летуновский, школьный Vulkan-садовод, 2025 год.