| 2026-09-06 |
docs(plan): B3-доп — ускорители (iGPU/q8) отвергнуты, fp32-CPU остаётся
...
iGPU HD 620 (Vulkan/ggml) не бенчмарка: 24 EU и общая память ~30 ГБ/с —
на порядок слабее CPU в матмулах, OpenCL для Gen9.5 мёртв. Рабочий рычаг —
меньше шагов (25→15 = 11→6.6 мин). В доку и кадр демо пост-обработки.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
22 hours ago
|
B3-проба: SD_PixelArt_SpriteSheet_Generator на CPU — путь рабочий, квантование отвергнуто
...
- fp32/diffusers, 15 шагов = 6.6 мин/вид (25 шагов — 11 мин): 4 фигуры
читаются, но это позы стоя, не walk-цикл; кадры ~120 px.
- q8_0 через stable-diffusion.cpp: 34 мин (int8-ядра ggml без VNNI на
i5-7300U медленнее fp32-oneDNN) и VAE в q8 даёт шум — квантование на
этой машине не берём.
- Вердикт в docs/plan.md: разовые атласы ≈ 30 мин/персонажа (4 вида),
доработка кадров руками; пробы в tools/aiart/probe-b3/.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
23 hours ago
|

Крупные объекты: props с footprint в движке, слоты арта, проба дома кодом
...
Работа C из docs/plan.md — подготовка к зданиям акта 2.
Движок:
- TileMapData.props: крупный объект с footprint w×h от СЗ-угла — коллизия
по всему прямоугольнику, земля под ним (ground), спрайт якорем низ-центр
footprint'а; без текстуры — колонна-плейсхолдер (общий с tall хелпер).
- IsoDepthLayer.addRect: глубина по диагонали юго-восточного угла
footprint'а — герой у южной стены перекрывается домом, перед южным
углом рисуется поверх.
- mapFormat: props в файловом формате + валидация (целые w/h ≥ 1,
footprint внутри карты, высота в юнитах).
- LocationScene вставляет map.propViews в общий depth-слой.
- Доки движка: maps.md (секция props), render.md (addRect).
Арт (проба C2):
- Арт-библия: слоты крупных спрайтов (дом 2×2 — 64×80, 3×3 — 96×96,
4×4 — 128×112); плотность пикселя как у тайлов.
- gen.mjs: tiles/house_big.png (64×80) — композит: модули щитов + крыша
из шпал + козырёк + окна. Сравнение с AI-апскейлом 24→48 —
tools/aiart/probe-c2.png: код-композит заметно чище, апскейл — мыло с
чужой плотностью пикселя. Вывод: крупные объекты — код-композит;
апскейл только как болванка (см. docs/plan.md, работа C).
Тесты: 318 (+9: footprint, depth-rect, валидация пропов).
Co-Authored-By: Claude Code <noreply@anthropic.com>
|

B1: доменный PoC на PixelGPT-24×24 — 44% годных, отказов нет, лицензии нет
...
Вторая GPT-пиксель-модель (68M, CPU ~22 с/спрайт) с обусловливанием палитрой
игры (5 цветов на запрос). 18 доменных спрайтов (колодец, столб, рычаг,
колокол, камин, прилавок, дверь, моты + сундук как контроль).
Итог: критерий 30% выполнен (44% good); главное отличие от PXG-Tiny —
модель не отказывается от доменных объектов (колокол, дверь, камин, столб,
моты — good). Ограничения: даунскейл 24→16 губит деталь (колодец good на
24×24), фон часто залит, ровно 5 цветов, лицензии на код/веса нет — в игру
нельзя. Вывод в docs/plan.md: критичные интерактивы — RD API или ручной
арт; дообучение под игру не делаем.
- tools/aiart/prompts-b1.txt, review-b1/ (18), processed-b1/ (19),
manifest-b1.json (вердикты).
- post.mjs: опциональный каталог вывода (партии не затирают листы друг
друга).
- Раннер генерации и модель — вне репо (~/.cache/rpg-ai), в git только
промпты/манифест/PNG.
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
Чистка тулз: пробы-сироты и дублирующие смоуки удалены, доки по новой раскладке
...
- Удалены одноразовые пробы, никем не запускаемые: cam-probe, far-test,
skin-info, skin-probe, walk-probe, font-probe.
- Удалены смоуки, дублирующие checks/: smoke-zvenets и smoke-ponds
(покрываются checks/transitions.mjs), smoke-quest (checks/interact.mjs).
Полный прогон акта 1 — smoke-act1.mjs, базовый — smoke.mjs.
- Доки: CLAUDE.md (правило «общее — в движок, сценарий — в игра»,
packages/engine/tools), docs/engine/{practices,art-pipeline,agent}.md,
docs/demo.md, docs/llms.txt, README.md.
- npm run audio — скрипт для и без того существующего генератора WAV.
Co-Authored-By: Claude Code <noreply@anthropic.com>
|

Разграничение: жанронезависимые тулзы переехали в packages/engine/tools
...
Правило: тулза, знающая контент игры (палитру, тайлы, локации, сценарии
акта), живёт в apps/game/tools как «сценарий применения»; машинерия без
знаний об игре переезжает к движку.
- packages/engine/tools/: png.mjs (encode+decode), canvas.mjs (палитра —
параметр), imaging.mjs (кроп/квантизация/обзорный лист), wav.mjs
(WAV-энкодер и примитивы синтеза), agent-lib.mjs (маяк — параметр
openGame), boundary.mjs (правила гварда, корни/публичное API — опции)
+ юнит-тесты boundary.
- exports движка: "./tools/*" — игровые сценарии импортируют
@rpg/engine/tools/* вместо относительных путей; maps/gen.test.ts
больше не лезет в src движка (encodeMap/parseMap из @rpg/engine).
- Игра остаётся сценарным слоем: palette.mjs, gen.mjs (арт/звуки),
aiart (промпты/манифест/тонкий post.mjs), checks/, smoke*, agent.mjs,
новый lib.mjs (маяк загрузки игры поверх движкового каркаса).
- Артефакты генераторов (арт, карты, WAV, processed) бит-в-бит прежние.
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
B0 PoC: AI-генерация спрайтов PXG-Tiny + пайплайн пост-обработки
...
tools/aiart/ — пробный контур AI-арта:
- post.mjs: декодер PNG без зависимостей, кроп по альфе, nearest-вписывание
в 16×16, квантизация в палитру palette.mjs, обзорный лист для апрува;
- manifest.json: вердикты прогона (40% годных, стиль совпал на 100%);
- prompts-b0.txt + review/ + processed/ — сырьё и результат.
Модель PXG-Tiny (MIT/CC0) локально на CPU (~6 с/спрайт, iGPU-машина).
Ограничение зафиксировано в docs/plan.md: домен 38 классов не покрывает
критичные ассеты игры — для них дообучение / RD API / ручной арт.
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
Архитектура: гвард границы движок/игра + перенос тулз в apps/game/tools
...
- Гвард границы (apps/game/tools/guards/boundary.mjs, npm run guard):
движок не импортирует игру и не выходит из пакета, игра импортирует
движок только через @rpg/engine и @rpg/engine/assets/*. Чистое ядро
покрыто тестами (8 кейсов); проба guard:boundary в agent check.
- tools/ -> apps/game/tools/ (git mv, история сохранена): правка
корне-относительных путей в генераторах и CLI, ROOT-константы
'../../..', npm-скрипты обновлены.
- Доки: CLAUDE.md, llms.txt, docs/engine/*, README — новые пути,
практика «меняю границу движок/игра» и грабля про ROOT тулз.
Co-Authored-By: Claude Code <noreply@anthropic.com>
|