canvas-performance-optimization — скилл для Claude Code
Устраняет просадки кадров в изометрических Canvas-играх за счёт отсечения невидимых тайлов, кэширования статики и удаления аллокаций.
npx skills add 0xheycat/isometric-game-skills --skill canvas-performance-optimization -a claude-codeЧто делает canvas-performance-optimization
Изометрические игры на HTML5 Canvas часто упираются в сотни вызовов отрисовки и паузы сборщика мусора при скролле карты. Скилл задаёт чёткий цикл оптимизации: замер времени кадра, отсечение объектов вне области видимости (culling), объединение отрисовки из атласа текстур и вынос статического грунта на отдельный оффскрин-холст (offscreen canvas).
Внутри также заложено правило округления координат до целых пикселей, чтобы исключить лишнюю нагрузку от субпиксельного рендеринга, и запрет на создание массивов или объектов внутри цикла отрисовки. Без предварительного профилирования браться за оптимизацию бессмысленно, поэтому скилл требует замерить время кадра до и после внесения правок.
Какие задачи решает
- устранить просадки FPS при панорамировании изометрической карты
- сократить количество вызовов отрисовки через батчинг из атласа
- кэшировать статичный слой земли на оффскрин-холст
- избавиться от пауз сборщика мусора из-за аллокаций в цикле рендера
Примеры запросов агенту
- Оптимизируй цикл рендера в Canvas-игре: FPS проседает при движении камеры по изометрической карте.
- Найди аллокации внутри цикла отрисовки и настрой кэширование статичной земли на оффскрин-холст.
- Настрой отсечение невидимых тайлов вне вьюпорта и батчинг спрайтов из атласа.
Как установить canvas-performance-optimization
1Через Skills CLI (Vercel)
npx skills add 0xheycat/isometric-game-skills --skill canvas-performance-optimization -a claude-code2Вручную: положить файлы
~/.claude/skills/canvas-performance-optimization/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/canvas-performance-optimization/
1Через Skills CLI (Vercel)
npx skills add 0xheycat/isometric-game-skills --skill canvas-performance-optimization -a codex2Вручную: положить файлы
.agents/skills/canvas-performance-optimization/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add 0xheycat/isometric-game-skills --skill canvas-performance-optimization -a cursor2Вручную: положить файлы
.cursor/skills/canvas-performance-optimization/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install 0xheycat/isometric-game-skills canvas-performance-optimization2Вручную: положить файлы
.github/skills/canvas-performance-optimization/SKILL.md1Через Skills CLI (Vercel)
npx skills add 0xheycat/isometric-game-skills --skill canvas-performance-optimization -a gemini-cli2Командой платформы
gemini skills install https://github.com/0xheycat/isometric-game-skills --path skills/canvas-performance-optimizationВручную: положить файлы
.devin/skills/canvas-performance-optimization/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add 0xheycat/isometric-game-skills --skill canvas-performance-optimization -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о canvas-performance-optimization
Как установить canvas-performance-optimization в Claude Code?
Выполните в терминале команду npx skills add 0xheycat/isometric-game-skills --skill canvas-performance-optimization -a claude-code.
Что делает скилл canvas-performance-optimization?
Он направляет агента по шагам оптимизации 2D-игры: от профилирования и отсечения невидимых тайлов до батчинга текстур и устранения аллокаций в цикле рендера.
Зачем нужно кэшировать статичный слой земли?
Неизменяемый грунт перерисовывается каждый кадр впустую; скилл предписывает сохранить его на оффскрин-холст и обновлять только при реальных изменениях карты.
Исходный текст
SKILL.md · MIT
--- name: canvas-performance-optimization description: Use when an isometric Canvas game drops frames, to cut draw calls and allocations and hold a steady 60fps. license: MIT --- # Canvas Performance Optimization ## Overview Isometric games die by a thousand draw calls. This skill profiles the frame, culls off-screen tiles, batches from the atlas, and removes per-frame allocations to hit a stable 60fps. ## When to Use - Frame rate drops or stutters. - Large maps lag when panning. - You suspect GC pauses or overdraw. ## Process 1. Profile first - measure where the frame time actually goes. 2. Cull: only draw tiles/objects inside the viewport. 3. Batch draws from one atlas to minimize texture binds. 4. Cache static layers (ground) to an offscreen canvas; redraw only when it changes. 5. Eliminate per-frame allocations (reuse arrays/objects). 6. Avoid sub-pixel blits; snap to integer pixels. 7. Re-profile to confirm the fix, do not assume. ```text Profile -> Cull -> Batch -> Cache static layer -> Kill allocations -> Re-profile ``` ## Rationalizations (Stop Lying to Yourself) | Excuse | Reality | |---|---| | "I know what is slow without profiling" | Guessing wastes hours on the wrong thing. Profile first. | | "Redrawing the ground every frame is fine" | Static ground should be cached. Redraw only on change. | ## Red Flags - STOP if you catch yourself: - Optimizing before profiling. - Redrawing static layers every frame. - Allocating inside the render loop. ## Verification You are NOT done until every box is checked: - [ ] Frame time was profiled before and after. - [ ] Off-screen content is culled and static layers cached. - [ ] No allocations occur inside the render loop; 60fps holds.
© 0xheycat · MIT · 0xheycat/isometric-game-skills