Canvas Performance Optimization

SkillMonitoring & ops

Use when an isometric Canvas game drops frames, to cut draw calls and allocations and hold a steady 60fps.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Canvas Performance Optimization skill

What this skill tells your AI

The instructions your AI receives, as published by 0xheycat/isometric-game-skills in skills/canvas-performance-optimization/SKILL.md and read by ahel’s review.

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.
Profile -> Cull -> Batch -> Cache static layer -> Kill allocations -> Re-profile

Rationalizations (Stop Lying to Yourself)

ExcuseReality
"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.

Signals

GitHub stars
21
Forks
3
Last commit
Aug 2026
Advanced
Item type
skill
Key
canvas-performance-optimization
Source
github.com/0xheycat/isometric-game-skills