2D Effects Animation (Smoke, Sparks) for Games

Our video game development company runs independent projects, jointly creates games with the client and provides additional operational services. Expertise of our team allows us to cover all gaming platforms and develop an amazing product that matches the customer’s vision and players preferences.

From immersive apps to game worlds and 3D scenes

Our dedicated team for VR/AR/MR development, Unity production and 3D modeling & animation — with its own case studies and capability decks.

Visit the dedicated studio
Showing 1 of 1All 242 services
2D Effects Animation (Smoke, Sparks) for Games
Medium
~3 days
Frequently Asked Questions

Our competencies

What are the stages of Game Development?

Latest works

  • image_games_mortal_motors_495_0.webp
    Game development for Mortal Motors
    1421
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    A turn-based strategy game set in a fantasy setting, With Fire and Sword
    954
  • image_games_second_team_604_0.webp
    Game development for the company Second term
    577
  • image_games_phoenix_ii_606_0.webp
    3D animation - teaser for the game Phoenix 2.
    637

2D Effects Animation (Smoke, Sparks) for Games

Does your 2D action game's smoke animation look like white clouds, and sparks like colored dots? The player doesn't feel the impact; effects blend into the background. The cause is physically incorrect animation and wrong blending mode and pivot settings. We create turnkey 2D effects — from concept to engine integration. With over 10 years of experience and 50+ projects for mobile and PC, we guarantee optimized results.

Creating 2D effects is a balance between expressiveness and performance. An overly detailed effect with 200 sprite frames will kill mobile FPS. An oversimplified particle system won't deliver the desired game feel. The optimal solution is a combination of frame-by-frame animation for key elements and particles for secondary details. This approach provides expressiveness with reasonable GPU and RAM load.

In this article, we'll cover two approaches: frame-by-frame animation and procedural generation via particle system. You'll learn how to choose the method for your game, which PPU and pivot settings are critical, and how to avoid typical optimization errors like draw calls and batching. We'll also compare the cost and production time of each approach.

Two Approaches: Frame-by-Frame and Particle

Frame-by-frame (sprite) animation — each frame of the effect is drawn manually. The artist has full control over shape, color, and movement. The result is expressive, stylized effects with a clear artistic character. Used in games with a vivid 2D style: fighting games, action roguelites, anime-style RPGs.

Frame-by-frame is more expensive to produce (each frame is drawn) and more costly at runtime (texture memory). A typical explosion: 12–24 frames at 24fps, frame size 256×256 or 512×512. An atlas of 4×6 = 24 frames in one 2048×2048 texture is standard for TexturePacker.

Particle system with 2D sprites: generates particles with specified parameters — starting size, lifetime, speed, color, emitter shape. Each particle is a sprite from an atlas (spark, smoke puff, star). Performance is better than frame-by-frame — one particle texture is used hundreds of times. Limitation: particle effects are harder to make stylistically precise. Smoke from particles looks like "smoke from particles." For highly artistic games, frame-by-frame is preferable.

Why Is Frame-by-Frame Animation More Expensive Than Particle?

Frame-by-frame requires more resources: each frame is a separate texture in the atlas. Particle uses one texture with parameters. However, frame-by-frame gives three times more expressive results — full control over shape and motion. Particle is a cheap way to create a volume of low-detail effects.

How to Combine Sprites and Particles?

Most professional effects are a combination: sprite animation for the main element (explosion, flash), particle system for secondary details (flying sparks, smoke trail). This approach provides the expressiveness of frame-by-frame with reasonable load.

Approach Comparison

Parameter Frame-by-frame Particle system
Expressiveness High Medium
Production cost (per effect) $500–$3000 $100–$500
Memory usage High Low
Control Full Limited by parameters
Ideal for Stylized action games Procedural effects
Why is correct PPU critical?According to Unity Manual — Sprite, the PPU of the effect should match the PPU of other scene assets; otherwise, the scale will be off. For example, if a character has 32 PPU and the effect has 64 PPU, at the same unit size the effect will be half the size. This is a common cause of "wrong-looking" effects.

Technical Requirements for 2D Effects

Sizes and PPU: the effect must have the same PPU (pixels per unit) as other scene assets. If characters in the game are 32 PPU, the attack effect should also be 32 PPU — otherwise the effect will be "the wrong size" when scaled.

Pivot point: for effects that attach to a point (hit, explosion) — pivot at the impact point. For effects emanating from a character (fireball from hand) — pivot at the emission point. Wrong pivot — the effect "jumps" during playback.

Transparency and blending mode: smoke, fog, aura — Alpha Blending mode. Fire, lightning, magic effects — Additive blending (brightness adds to the background, the effect glows). In Unity this is a Material setting (Sprites/Additive vs Sprites/Default). Wrong blending mode: fire with alpha blending looks like an opaque spot instead of a glowing effect.

Color language of effects: the game should have a system — red character's fire — warm tones, blue character's ice — cold tones, poison — green. This is not just aesthetics — it's readability in combat. If all characters have effects of the same color, the player cannot distinguish attacks in combat chaos.

Smoke Animation: Technical Breakdown

Smoke is one of the hardest effects in frame-by-frame. Technically correct smoke:

  • Expands from bottom to top with broadening (expand over lifetime)
  • Changes shape unevenly — not symmetrical
  • Semi-transparent with gradient fade at edges (no hard edges)
  • Fades out rather than cuts off — the last frames are maximally transparent

In Spine or After Effects, smoke is built via FFD or Puppet deformation of a base shape. In particle system — Texture Sheet Animation with several rows of smoke shapes in the atlas + startRotation random + rotationOverLifetime for drift effect. A typical mistake: smoke drawn symmetrically and moving uniformly — looks mechanical. Asymmetry of shapes and random rotation are mandatory parameters.

Sparks and Particle Dispersion

Sparks from a sword strike — a classic effect with clear rules:

  • Direction: dispersion mainly in the direction opposite to the strike (reflection)
  • Lifetime: short, 0.2–0.5 seconds
  • Velocity: high initial, with gravity and drag for falling
  • Color over lifetime: bright white → yellow → orange → transparent
  • Shape: thin elongated sprites (not round dots)

In Unity Particle System this is: Emission burst (10–20 particles instantly), Shape = Cone (narrow angle in strike direction), Velocity over Lifetime with gravity modifier, Color over Lifetime gradient.

Production Stages

  1. Style reference — define effect style to match game visuals.
  2. Keyframe blocking — key poses/states for frame-by-frame.
  3. In-between — intermediate frames.
  4. Color and transparency — gradient fades, blending mode.
  5. Export to atlas — TexturePacker with correct PPU settings.
  6. Test in engine — pivot, timing, blending.

What's Included

  • Source animation files (Spine, After Effects, or sprite sheets)
  • Texture atlases with correct PPU and pivot settings
  • Ready-to-use particle systems (Unity, Unreal, Godot) with draw call optimization
  • Documentation on playback and integration
  • Post-delivery support — fixes and revisions within 30 days
Effect type Volume Timeline Cost (USD)
Simple particle effects (3–5 types) 3–5 3–7 days $500–$1,500
Frame-by-frame effects (explosion, attack, death) 5–10 effects 2–4 weeks $5,000–$15,000
Full set of effects for a character 15–25 effects 4–8 weeks $10,000–$30,000

Pricing is calculated individually — depends on quantity and complexity. Budget savings when ordering a full set — up to 40% compared to hourly rates. We'll estimate the project after discussing style and requirements. Contact us for a free consultation — get a preliminary estimate within one day. Your satisfaction is guaranteed with our 30-day revision policy.

2D Art and Animation

We have encountered projects where 2D graphics accounted for 70% of the build size. Optimization started with replacing frame-by-frame with skeletal animation. But it's not just about converting sprites to Spine — you need to properly design the rig, atlas packing, and texture format. Our service is a full 2D cycle: from concept art and illustrations to final Spine animation optimized for mobile platforms.

A mobile game with 200 character animations takes up 800 MB just for textures. Google Play rejects the APK due to size. Meanwhile, half of the animations are variations of the same movement with minor differences. This is a classic problem for teams that chose frame-by-frame animation where skeletal animation provides a better result at a fraction of the size.

Our team creates 2D graphics and illustrations for games of any genre — from pixel art to realistic styles. We work with Unity, Unreal Engine, and Godot. Every animation is performance-checked: FPS budget, draw call count, texture size.

What's Included in the Service

  • Concept art and illustrations — characters, environment, UI elements, promo
  • Sprite animation — frame-by-frame in Aseprite with palette and frame optimization
  • Skeletal animation — Spine (professional license), DragonBones for budget projects
  • 2D effects — particle-based (Shuriken, VFX Graph) and shader-based (Shader Graph for URP/HDRP)
  • Atlas optimization — TexturePacker, Unity Sprite Atlas, platform-specific compression (ASTC, ETC2, DXT)

How Skeletal Animation Reduces APK Size

Spine (Esoteric Software) is the de facto standard for skeletal animation in 2D games. Skeletal animation is a method where movement is defined by bones and vertex weights rather than entire frames. In Spine, a character animation with 15 animations takes about 2 MB, while frame-by-frame takes 10 MB (5 times more). Alternatives include DragonBones (free, fewer features) and the native 2D Animation package in Unity (convenient but weaker than Spine in tools).

The return on investment for a Spine Professional license is achieved when creating 15+ unique animations — each frame-by-frame would cost several times more in time and size. When scaled to a large number of animations, the savings on a single project can be substantial. Contact us — we will calculate the savings for your project.

When is Skeletal Animation More Effective than Frame-by-Frame?

Criterion Skeletal (Spine) Frame-by-frame (Aseprite)
Data size Small (bones + weights) Large (frames as images)
Blending flexibility High None
Expressiveness Depends on rigger Full artistic freedom
Production time Long rigging, fast iterations Each animation from scratch
Suitable for Characters, UI, creatures Pixel art, unique style

The rule that works in practice: if a character has more than 15 unique animations — Spine is more efficient in size and iteration time. If the project stylistically requires frame-by-frame (pixel art, rotoscoping, cartoon style with deliberate artifacts) — Aseprite.

Mesh Deformation in Spine is one of the key features. The character bends organically, clothes fold, cheeks puff up. Workflow:

  1. In Spine, create a mesh on the sprite (Tools > Mesh > Edit Mesh)
  2. Assign vertex weights to bones (Weights mode)
  3. Set the number of vertices based on the desired deformation detail — more vertices = smoother deformation, but higher computational cost

Path Constraints — a bone follows a curve. Used for tails, hair, tentacles, ropes — any elements that need to bend organically. IK Constraints in Spine work through a two- or three-bone chain. For limbs this is essential: the animator moves the IK target (hand position), and the shoulder-forearm-hand chain is set automatically. Without IK, animating limbs in FK takes twice as long.

Spine Integration in Unity

The official Spine-Unity runtime is paid (included in the Spine license) and actively supported. Components:

  • SkeletonAnimation — main component for animation
  • SkeletonMecanim — integration with Unity Animator Controller (useful for reusing Mecanim logic)
  • SkeletonGraphic — for Canvas/UI (rendered via CanvasRenderer, not MeshRenderer)

An important performance point: SkeletonAnimation creates a separate Mesh per instance. With 50+ characters on screen, this is at least 50 draw calls (without batching). Solution — SkeletonAnimation Batching via SubmeshSeparator + GPU instancing, or limiting the number of simultaneously visible Spine objects.

Spine Events — synchronization mechanism: an event in animation (footstep, attack_hit, spawn_particle) is dispatched to Unity code via AnimationState.Event. Correct architecture: Spine Event → UnityEvent → sound/particle/logic. Do not hardcode synchronization by time — animation can slow down via timeScale.

How to Reduce Draw Calls in 2D UI with Atlases?

Every individual sprite in Unity creates a separate draw call. 100 UI icons without an atlas = 100 draw calls just for UI. Sprite Atlas packs sprites into a single texture, allowing batching of draw calls for objects using the same atlas. Texture atlas is a technique used in 3D and 2D to reduce texture switching.

TexturePacker vs Unity Sprite Atlas

TexturePacker (CodeAndWeb) is an external tool, more flexible in packing settings. It supports many packing algorithms, transparent pixel trimming, edge extrusion to prevent bleeding, and export to platform-specific formats (PVRTC for iOS, ETC2 for Android). The license pays for itself on the first project with atlases.

Unity Sprite Atlas (built-in) is convenient for Addressables and dynamic loading. Two modes: Master Atlas (full control) and Variant Atlas (reduced version for low-end devices via Scale Factor).

Practical packing rules:

  • Group by scene/screen: everything visible at once — in one atlas. Otherwise atlas doesn't help with batching
  • Maximum atlas size: 2048x2048 for mobile, 4096x4096 for PC. Larger risks issues on old GPUs
  • Trim transparent pixels: mandatory. A sprite with large transparent areas wastes space in the atlas
  • Padding: 2-4 pixels between sprites prevents texture bleeding during mipmapping and UV filtering

Texture Compression Formats

Platform Recommended Format Notes
Android ETC2 (RGB) / ETC2 RGBA8 Hardware acceleration on all modern Android
iOS ASTC 4x4 / 6x6 ASTC is universal: quality + size
PC/Console DXT5 (BC3) Or BC7 for high quality
WebGL DXT5 + fallback Check support via SystemInfo

For atlases with many small sprites and sharp edges, ASTC 4x4 is preferable to ASTC 6x6 (fewer artifacts on fine details).

How Does 2D Asset Optimization Benefit in Practice?

Each of these points has been verified on dozens of projects: transparent pixel trimming in the atlas (saving up to 30% area), 2-4 pixel padding (eliminates bleeding), maximum atlas size 2048x2048 for mobile (stable on old GPUs), using ASTC 4x4 for iOS and ETC2 for Android, Mesh Deformation in Spine instead of extra bones for cheeks and clothing folds, grouping UI elements by screen into different atlases. Order 2D animation development with a performance guarantee — we will take into account all the nuances of your stack and platform.

What Pipeline for 2D Effects to Choose?

Particle System (Shuriken) — for most 2D effects, the built-in system is sufficient. For 2D it's important: Renderer Mode = Billboard or Horizontal Billboard, Simulation Space = World for effects that should not move with the character.

Visual Effect Graph (VFX Graph) in URP — GPU-based particles, suitable for complex effects with thousands of particles. For mobile — be cautious, requires Compute Shaders (not all devices support).

Shader Graph for 2D: dissolve effects, outline via SDF, distortion (water, heat shimmer), animated UV (lava, water). Sprite Lit Shader + custom nodes in Shader Graph — standard path for 2D in URP.

2D Animation Package (native Unity): PSDImporter for importing layers from Photoshop as separate sprites, Sprite Skin for skeletal animation inside Unity without Spine. Suitable for simple characters with a limited number of animations — if the team doesn't want to purchase a Spine license. These costs are recouped in one project if animations exceed 15.

We are ready to develop 2D graphics and animation for your game. Contact us to discuss details and get advice on asset optimization. Get an estimate of cost and timeline based on your brief — we will respond within one business day.