Finish all your art before Claude Code touches anything. A complete sprite sheet takes one hour to import. An incomplete one takes three hours of backtracking.
Before opening Aseprite, draw your character on paper doing four things: standing still, running, jumping, and getting hurt. Keep it loose — this is just planning. The goal is knowing what your character looks like before you start pixel by pixel.
Silhouette matters more than detail at this size. If you can recognize the character from just their shape, you're good. Big head, weird hat, giant sword — whatever makes them unmistakably yours.
Open Aseprite. Go to File → New and set these settings exactly:
Height: 48
Color Mode: RGBA Color
Background: Transparent
Every frame of every animation will be 48×48. This is your character's bounding box. Don't change it mid-project.
Big enough to have personality and detail. Small enough to animate fast and look clean in-game. You can go bigger on your second game.
In Aseprite, each animation is a series of frames on the same canvas. Use the Frame panel at the bottom to add frames. Draw each pose. Check them off as you finish.
| Animation | Frames | Priority | Done |
|---|---|---|---|
| Idle | 4 | Must have | |
| Run | 6 | Must have | |
| Jump (up) | 3 | Must have | |
| Fall (down) | 2 | Must have | |
| Attack / spear thrust | 3 | Must have | |
| Hurt / hit | 3 | Must have | |
| Land | 2 | Nice to have | |
| Death | 5 | Nice to have |
The spear thrust is 3 frames: wind-up (pulling back), extended (spear out all the way), recovery (returning). The extended frame is the one that actually hits enemies — make it obvious and satisfying.
Idle + Run + Jump + Attack is enough to start. Get those four done, hand it to Claude Code, and watch your character move and fight. Add the rest after.
When each animation is done, export it. In Aseprite: File → Export Sprite Sheet. Set to horizontal, then save to your art/ folder. One file per animation.
art/char-idle.png ← 4 frames at 48x48
art/char-run.png ← 6 frames at 48x48
art/char-jump.png ← 3 frames at 48x48
art/char-fall.png ← 2 frames at 48x48
art/char-hurt.png ← 3 frames at 48x48
Use these exact names. Claude Code will ask for them and it's easier if the names are predictable. Keep char- at the start of each one.
Enemies in a Final Fight-style game can take multiple hits before dying, so they need a few animations each. Keep enemies on the same 48×48 canvas as your character so they scale right in the world. Same export process — one PNG per animation, saved to art/.
| Animation | Frames | Notes | Done |
|---|---|---|---|
| Enemy idle / walk | 4 | Patrol loop | |
| Enemy hurt | 2 | Flash + stagger | |
| Enemy death | 4 | Collapse + fade | |
| Enemy attack | 3 | Add later |
art/enemy1-hurt.png ← 2 frames at 48x48
art/enemy1-death.png ← 4 frames at 48x48
Make your enemy read differently from your character at a glance — different color palette, different silhouette. If the enemy has a weapon or armor, that tells the player it's a threat before they get close.
Start with one enemy that works well. Once it feels right in the game, make a second one with different behavior. Use enemy2- for the file names.
A tileset is like a stamp sheet — a grid of small images used to paint your levels. In Aseprite, create a new file at 192 × 192 pixels. This gives you a 6×6 grid of 32px tiles. Draw each tile type in its own cell.
Tile size: 32 x 32 px
Export as: art/tileset-world1.png
- Ground tile (main floor)
- Ground edge left & right
- Platform tile (floating)
- Wall tile
- Hazard tile (spikes, lava — anything dangerous)
- Decoration tiles (rocks, plants, whatever fits your world)
Six solid tile types is enough to build a complete level. Don't try to tile-paint every rock by hand — get the shapes right and Claude Code handles placing them into a real level.
The background is what makes a world feel like a real place. Paint 2–3 separate layers that Claude Code will stack behind your tiles. Each layer scrolls at a different speed, which creates depth automatically.
art/bg-sky.png ← the farthest layer
art/bg-mid.png ← the middle layer
A single background is totally fine for your first world. One solid painted scene behind your tiles still looks great. Add more layers later.
Before Claude Code builds anything, sketch your first level on graph paper. Each square = one tile. Mark where the player starts, where enemies patrol, where the hard jumps are, and where the level ends. Claude Code needs this plan to build the actual layout.
A good first level teaches you how to play without words. Put the first jump where you can't miss it. Put the first enemy where you can see it coming from far away. Let the player feel smart.
A world is a group of levels with the same visual theme. Each world gets its own tileset and background. Plan 2 worlds max for your first game. Three short levels each is plenty.
Claude Code reads your art files, sets up the entire Godot project, writes every script, wires up your animations, and builds your first level — all from a description you give it. You don't write a single line of code.
Before opening Claude Code, get your files organized. Create a folder on your Desktop and name it after your game. Inside it, create these folders:
art/ ← all your exported PNGs go here
reference/ ← your paper sketches (take photos of them)
audio/ ← sound effects and music (add later)
Copy all your exported sprite sheets and background PNGs into the art/ folder before you start.
Claude Code is an AI that works directly inside your game folder. You open it in your project folder and it can read your files, write code, and build the whole thing.
Easiest: Go to claude.ai/code in your browser. Sign in, then open your project folder when it asks.
Full power: Open Terminal (Mac: Spotlight → type Terminal). Type npm install -g @anthropic-ai/claude-code, then cd ~/Desktop/YourGameName, then claude.
Either way, once it's open inside your project folder, you're ready. You'll see a prompt where you can type to it.
The brief is the most important thing you'll write. It tells Claude Code exactly what your game is, what files you have, and what you want it to build. Copy this template and fill in the blanks with your actual game details:
My character sprite sheets are in the art/ folder:
- art/char-idle.png — 4 frames, each frame is 48x48px
- art/char-run.png — 6 frames, each frame is 48x48px
- art/char-jump.png — 3 frames, each frame is 48x48px
- art/char-fall.png — 2 frames, each frame is 48x48px
- art/char-hurt.png — 3 frames, each frame is 48x48px
My world art is also in art/:
- art/tileset-world1.png — 192x192px total, tiles are 32x32px
- art/bg-sky.png — background layer (farthest back)
- art/bg-mid.png — background layer (middle)
Here's what I want for the first version:
1. My character moves left and right smoothly
2. Press B on a USB SNES controller to jump
3. Gravity pulls the character down
4. The right animation plays automatically (idle when still, run when moving, jump/fall in the air)
5. Character faces the right direction when running
6. A test level using my tileset so I can walk around
7. My background layers scroll behind the level
Please create the Godot 4 project and get it to a point where I can press Play and see my character running around.
The more you describe, the closer it gets on the first try. If you want your character to be 3x the normal size on screen, say so. If your tileset uses different tile sizes, say so.
Once the basics are running, ask for one thing at a time. These are real prompts you can use — just copy and send them:
- Press Y to attack. Play the char-attack.png animation (3 frames at 48x48).
- The spear has a hitbox that's only active during the middle frame (the extended frame).
- Enemies have 3 hit points. Each spear hit does 1 damage.
- When an enemy is hit: play their hurt animation, flash them white for 0.2 seconds, and knock them back slightly. They can't be hit again for 0.5 seconds (so you can't spam through them instantly).
- When an enemy reaches 0 HP: play their death animation, then remove them from the scene.
- The player can't attack again until the attack animation finishes (no spamming).
Use art/enemy1-walk.png (4 frames), art/enemy1-hurt.png (2 frames), and art/enemy1-death.png (4 frames) for the first enemy type.
You don't need to understand error messages or code. Just tell Claude Code what you see and what you expected. These are real examples:
In Claude Code's web version, you can paste a screenshot directly into the chat. Take a screenshot of your game, paste it in, and say "this is what I'm seeing, it should look like X instead."
Once Claude Code gets the project running, this is your job: play it, notice what feels off, and ask for changes. The best games get made in this back-and-forth loop. You don't need to know how it works — you just need to know how it feels.
Claude Code will set up the Godot project for you. To play it, open Godot and click the project. Then press F5 or the Play button at the top right. Your game opens in a new window.
F5 = run the full game from the start. F6 = run just the current scene (good for testing one level). Esc = stop.
If Godot can't find the project, open Godot, click Import, and find your YourGameName/ folder.
Plug in your USB SNES controller before opening Godot. Claude Code will wire up the Input Map as part of building the project. The default button layout:
Tell Claude Code "move jump to A instead of B" and it'll update the mapping instantly. No digging through menus required.
"Juice" is the layer of effects that makes a game feel alive — the screen shake, the sounds, the little flash when you get hit. None of it is required for the game to work. All of it is what makes it feel like a real game. Ask Claude Code for each one after your level is working:
Ready to put it on Steam?
Godot exports to Windows, Mac, Linux, and more.
Steam dev registration is $100 one-time. Worth it when you're ready.