Convert, Split, and Repack a Sprite Sheet: A Worked Example
Follow a downloadable four-frame GIF through sprite sheet conversion, PNG splitting, and atlas packing, with exact settings and reference outputs.
Guides, workflows, and tips for sprite sheets, texture atlases, and game art.
Follow a downloadable four-frame GIF through sprite sheet conversion, PNG splitting, and atlas packing, with exact settings and reference outputs.
Photos and AI renders aren't sprites yet: they have backgrounds, wrong sizes, fuzzy edges, and five different lighting setups. A five-step pipeline — cut out, resize, clean up, unify, pack — that turns arbitrary images into a consistent, engine-ready set.
GIF spends its bits re-describing pixels that didn't change — that's why your 30-second capture is 40 MB. How resolution, frame rate, duration, and palette multiply into a 10× size reduction, and the honest answer on when to ship MP4 instead.
Why your music loop has a gap, why WAV masters matter even though you never ship them, and why the web plays by different rules. A practical three-format mental model for game audio, with Unity and Godot specifics and a browser-only conversion workflow.
Color maps are sRGB, data maps are linear — the one rule behind most 'PBR looks wrong' bugs. MeshStandardMaterial texture slots explained, plus a browser-only workflow for generating normal maps and seamless tiling textures from any photo.
Draw calls scale with materials, not meshes — that's why fifty textured quads crawl and one atlas flies. Packing with MaxRects, remapping UVs from the atlas JSON, and scaling to thousands of sprites with InstancedMesh and per-instance UV offsets.
Don't swap sixty textures — slide one. How to play sprite sheet animations in Three.js with texture repeat and offset, avoid the bottom-left UV origin trap, keep timing stable across refresh rates, and choose between Sprite billboards and plane meshes.
Mobile 2D games live or die on draw calls and VRAM. This guide explains why atlases matter on phones, how to pack them with MaxRects in a browser tool, and exactly how to wire the output into Godot 4 and Cocos Creator 3.x for iOS and Android.
iOS asks for 18, Android for 7, the web for 7 more - 32 PNGs to ship one app on one phone. A practical guide to iOS scale factors, Android density buckets, web favicons and PWA manifests, plus how to generate every size from a single 1024 master in your browser.
Every method of turning a video into a game-ready sprite sheet has a tax: FFmpeg's flags, Photoshop's price tag, custom scripts that rot, sketchy upload sites. A breakdown of what actually happens during extraction, why every classic approach hurts, and how to skip the pain entirely with a browser-based converter.
Godot's 2D pipeline looks simple but has a lot of subtle traps - texture filter scoping, pixel snap, region_rect vs AtlasTexture, y_sort layering, and SpriteFrames batching. A practical field guide for shipping clean 2D in Godot 4.
Mobile GPUs hate texture binds. Here is exactly why a Sprite Atlas can take a Unity 2D game from 38 fps to a steady 60 on mid-range Android, what to choose for ASTC vs ETC2, and how I Love Sprites slots into the workflow.
How PNG/JPEG/WebP relate to GPU memory, when to compress in a tool vs in Unity, Godot, or Unreal, and a practical pipeline that avoids double compression and ugly artifacts.
How teams use mirror tiling and quick repeat previews to turn artist output into usable ground, wall, and UI textures fast — including a puzzle-game dirt workflow.
No uploads, no accounts, no telemetry on your assets: how local-first tools work and why they're better for game dev.
When one sheet isn't enough: row vs grid layout, multiple sheets, and keeping metadata usable in your engine.
Use cases, file size, quality, and workflow for GIF export versus frame-by-frame sprite sheets for games.
What each export format contains, how engines use it, and when to choose generic JSON vs engine-specific.
Why batching matters, how atlases cut draw calls, and practical limits (max texture size, UV space) in Unity and Godot.
Loading sprite sheet JSON in Phaser 3, frame naming, animation config, and when to use atlas vs spritesheet loader.
Scale entire sprite sets for 1x, 2x, 4x or custom dimensions without re-exporting from your art tool.
When you have one big sheet and need frames: grid detection, margins, offsets, and exporting to ZIP for editing or re-pack.
When and how to use normal maps, strength vs Z scale, Sobel vs Scharr, and fitting results into Unity or Godot.
Create animated GUIs in Roblox using sprite sheets: ImageRectOffset, ImageRectSize, and scripting frame-by-frame.
Pipeline from AE/Premiere to game-ready sprites: export settings, frame rate, alpha, and avoiding common pitfalls.
How to export pixel art at 1x, 2x, or custom scale without blur or bleed, and why padding and extrusion matter.
Godot-specific workflow: AnimatedSprite, AtlasTexture, FPS, and importing sprite sheet metadata into Godot 4.
When to use each packing algorithm, real tradeoffs in space and compatibility, and how to choose for your project.
A step-by-step workflow for turning video or GIF into sprite sheets that import cleanly into Unity's Sprite Editor and 2D Animation.