Creating 2D Sprites for Mobile Games
2D sprites for mobile games are more than just images. They're texture atlases, animated sheets optimized for GPU compression and fitting within the engine's draw call budget. An artist who doesn't understand the pipeline from Photoshop to working animation in Unity creates beautiful pictures that drop FPS on Android to unplayable levels.
Technical Context for Sprites
Sprite atlas. Many separate PNG files mean many draw calls. One 2048×2048 atlas with 50 sprites equals one draw call. In Unity: Sprite Atlas via Package Manager, automatic packing through SpriteAtlas.Pack(). In Godot: AtlasTexture. For 2D games with hundreds of sprites, atlases are mandatory—otherwise mid-range Android won't handle it.
Texture compression. PNG on device occupies RAM in uncompressed form—2048×2048 RGBA = 16 MB GPU memory. GPU-native compression is required: ASTC 6x6 for iOS (iPhone 6+) and modern Android, ETC2 for older Android (API 18+). In Unity TextureImporter—Compression: High Quality, Format: ASTC 6x6. Quality loss with ASTC is minimal for game graphics, memory savings reach 6–8x.
Pivot and Pixels Per Unit. Sprite Pivot (rotation point) must match the object's logical point—for characters, the base of feet; for projectiles, the center. Pixels Per Unit defines world-space scale. Mismatched PPU between sprites results in characters tower-sized or pixels screen-sized.
Sprite Animation
Spritesheet vs individual frames. Spritesheet is standard: all animation frames in one PNG on equal cells or packed via TexturePacker. TexturePacker packs tighter than Unity Sprite Editor and supports export for any engine.
Frame animation in Unity: Animator + AnimationClip with Sprite property keyframes. For simple animations (4–8 frames)—Animator Override Controller lets you change animation without creating a new AnimatorController.
Skeletal animation (Spine, DragonBones). For characters with smooth animation—skeletal animation is more efficient than frame-by-frame. Spine 2D (paid, ~$69 essential) or free DragonBones. One sprite sheet with body parts (arms, legs, torso, head) + bones + keyframe data = smooth animation without drawing 30 run frames. Spine Runtime for Unity—official package from Esoteric Software. Important: Spine Runtime version must match Spine Editor version, otherwise binary files are incompatible.
From practice: platformer in Unity, 60 unique character animation states. Artist drew 8 frames each—480 PNG files. Atlas wouldn't fit in 2048×2048, needed two atlases. After switching to Spine with the same sprite parts—15 attributes plus JSON animation data, one 1024×512 atlas. Animations became smoother, build size decreased by 40 MB.
Styles and Technical Requirements by Type
| Sprite Type | Recommended Resolution | Format | Details |
|---|---|---|---|
| Character (frame-by-frame) | 128×128 — 512×512 per frame | PNG + Atlas | Even number of frames for Spine |
| Background tiles | 64×64 — 256×256 | PNG + Atlas | Exact edge alignment (seamless) |
| UI elements | 2× / 3× resolution | PNG + 9-slice | 9-slice for buttons and frames |
| Effects (VFX) | 64×64 — 256×256 | PNG sequence | Particle System in Unity |
| Item icons | 128×128 or 256×256 | PNG + Atlas | Transparent background, consistent style |
Pixel Art Specifics
Pixel art requires additional settings. Filter Mode: Point (no filter) in Unity—otherwise pixels blur. Pixels Per Unit = sprite size in pixels (32px sprite = PPU 32). Compression: None—ASTC destroys pixel crispness. For movement without subpixel jitter—Round Sprites to Nearest Pixel in Camera.
Creation Process
Typical pipeline: concept (style sketch) → draft (outlines) → clean lines → color fill → shadows and light → engine test → technical corrections → final export with platform-specific settings.
Engine testing is mandatory before finalization. Colors on the artist's monitor and AMOLED display can differ. Dark shadows on black backgrounds "disappear" on uncalibrated screens.
What's Included
- Sprite creation in consistent style (from mood board or references)
- Animation sheets for frame-by-frame animation or rig-ready parts for Spine/DragonBones
- Atlas preparation for Unity / Godot / Cocos Creator
- Pivot, PPU, texture compression configuration
- Engine testing with corrections
- Source files in PSD / Aseprite (for pixel art)
Timeline
Depends on quantity and complexity. One character with basic animation set (idle, run, jump, attack, death)—5–10 working days. Complete sprite package for hyper-casual game (character + environment + UI)—2–6 weeks. For large project—discussed individually. Cost calculated after requirements analysis.







