HomeUse cases › GameMaker sprites · Updated Jul 23, 2026
GameMaker · strips in, character out

GameMaker character sprites from a photo.

GameMaker's happiest import path is a horizontal strip per animation — and that's literally what this pack ships. One photo of a real person in; four direction strips, the full sheets, and the eight lines of GML to drive them out. One-time $5.

Make a sprite — $5
No account · ZIP in minutes · money-back if it fails QA (handled manually during beta)

Strips are GameMaker's native language

Every engine has one asset format it loves. Unity wants a sheet it can grid-slice; Godot wants a SpriteFrames resource; GameMaker wants a horizontal strip per animation — that's why the Sprite Editor has a dedicated Import Strip Image command. Most downloadable sprite packs give you a single packed sheet and leave the strip-cutting to you.

This pack skips that step: alongside the 4×4 sheets it ships eight ready-made stripsdown_strip_96.png, left_strip_96.png, right_strip_96.png, up_strip_96.png, and the same four at 48px. One strip per direction, four frames each, ordered neutral · left-step · neutral · right-step. Import Strip Image, done.

Strips4 directions × 2 sizes (96px and 48px frames)
Import viaSprite Editor → Edit Image → Image → Import Strip Image
Frames per strip4 — neutral · left-step · neutral · right-step
Sprite FPS~8 (the pack's GIFs run 135ms/frame)
OriginMiddle or Bottom Centre — feet share a baseline across all 16 frames

The whole movement system is eight lines of GML

Make four sprites — spr_player_down, _left, _right, _up — one strip each, then put this in your player object's Step event:

var dx = keyboard_check(vk_right) - keyboard_check(vk_left);
var dy = keyboard_check(vk_down)  - keyboard_check(vk_up);
x += dx * spd;  y += dy * spd;
if      (dx > 0) sprite_index = spr_player_right;
else if (dx < 0) sprite_index = spr_player_left;
else if (dy > 0) sprite_index = spr_player_down;
else if (dy < 0) sprite_index = spr_player_up;
image_speed = (dx != 0 || dy != 0);
if (image_speed == 0) image_index = 0;  // frame 0 = neutral standing pose

That last line is why the pack's column order matters: frame 0 of every strip is the neutral stance, so freezing on it gives you a free idle pose — no separate idle animation needed for a top-down game.

Building with y-sorted depth? Set every sprite's origin to Bottom Centre — because all 16 frames share a foot baseline, characters sort against tiles correctly in every direction with no per-frame nudging.

Where the character actually comes from

A real portrait photo→ your spriteThe same person as a walking GameMaker-ready game sprite

The forge starts from a photo of a real person — you, a friend, your whole dev team — and returns them as pixel art that stays recognizable at sprite size. An image model draws the character; deterministic code then keys out the background, aligns every frame's feet, and cuts the strips. It behaves like hand-made pixel art in the Sprite Editor because, by the time it reaches you, the geometry is exact.

What's in the $5 pack

strips/ ×8per-direction horizontal strips — GameMaker's favorite format
sprite-sheet-96/48-transparent.png4×4 transparent sheets, two sizes
frames96/ + frames48/16 individual PNGs each, foldered by direction
walk/ ×4transparent looping GIFs for itch pages + devlogs
manifest.jsonrow/column order + QA notes

One-time $5, no account, 3 free retries if the first pack isn't right, money-back if it fails QA (handled manually during beta).

Frequently asked questions

Do PixelForge sprites work with GameMaker?

Yes — the pack ships per-direction horizontal strips, which is exactly what GameMaker's Import Strip Image expects. Create a sprite per direction, import the matching strip, and four frames land as subimages ready to animate.

Which frame size should I use in GameMaker?

Both are included. Use the 96px strips if your game runs at a higher resolution, or the 48px strips for a chunkier retro look and smaller rooms. Whichever you pick, keep one size across your cast so characters scale consistently.

How do I handle idle, since there's no idle animation?

Freeze on frame 0: set image_speed = 0 and image_index = 0 when there's no input. Frame 0 of every strip is the neutral standing stance (the pack's columns run neutral / left-step / neutral / right-step), so it reads as a proper idle in top-down games. Attack and jump cycles aren't included — the pack is a walk cycle only.

Why Bottom Centre origin for top-down games?

Depth-sorting by y assumes the origin sits at the character's feet. Every frame in the pack shares a foot baseline, so a Bottom Centre origin keeps the character planted on the same floor line in all four directions — no hopping between frames.

Can I ship it in a commercial GameMaker game?

Yes — the license covers commercial and non-commercial games alike, with no royalties or per-title fees. The licensing page has the full details, including likeness consent if the person in the photo isn't you.

Put anyone into your game.

$5 · one photo · 4-direction walk pack · no subscription

Make a sprite — $5