Custom Particle System Creation for Mobile AR 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.
Showing 1 of 1 servicesAll 242 services
Custom Particle System Creation for Mobile AR Games
Medium
~1-2 weeks
FAQ
Our competencies
What are the stages of Game Development?
Latest works
  • image_games_mortal_motors_495_0.webp
    Game development for Mortal Motors
    663
  • 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
    859
  • image_games_second_team_604_0.webp
    Game development for the company Second term
    490
  • image_games_phoenix_ii_606_0.webp
    3D animation - teaser for the game Phoenix 2.
    533

id: 239 slug: custom-particle-systems-for-mobile-ar-games title_en: "Custom Particle Systems for Mobile AR Games" tags: [vr-ar]

Custom Particle Systems for Mobile AR Games

Standard Particle System in Unity with 500 particles and one Renderer — normal for mobile AR. But add explosion effect with 2000 particles, multiple textures in Sub-Emitters, Collision with AR-surface — Adreno 618 drops to 22 FPS, iPhone 13 works fine. Mobile particle system optimization — work with specific hardware limitations, not just "make it pretty".

Where Performance Lost in AR-Particles

Overdraw — main GPU enemy on mobile. Each semi-transparent particle overlaps previous, GPU performs blending for each overlap. 500 particles with Alpha Blend in Overlay mode — potentially 500 × (average overlap) blending operations per frame. On tiled GPU (Adreno, Mali) overdraw >3x in effect zone — noticeable GPU time hit.

Solution — Additive blending instead of Alpha Blend where possible. Additive doesn't read destination buffer — only writes addition, faster. For fire, glow, magic effects — ideal. For smoke and realistic clouds — Additive looks unnatural, there Alpha Blend needed with limited particles.

Collision with AR-surface — expensive operation. Particle System → Collision → Type: World with Collision Quality: High forces each particle through physics raycast every frame. 1000 particles with World Collision = 1000 raycasts/frame. Mobile catastrophe.

For AR-scenes better works Collision Type: Planes — set several planes manually, corresponding to AR-surfaces. Update planes from ARPlane components from AR Foundation on new surface detection. Not all physics details, but 10x better performance.

Draw Calls from multiple Renderers. Several Particle System with different materials — multiple Draw Calls, can't batch. GPU Instancing for Particle System enabled via Material.enableInstancing = true, but works only when particles not transparent or Additive — for Alpha Blend GPU Instancing inefficient due to sorting requirement.

Custom Approaches and Tools

Visual Effect Graph (VFX Graph) — GPU particle computation. Perfect for PC and consoles, but mobile support limited: requires Compute Shader, available only on Metal (iOS A12+) and Vulkan (Android API 28+). Old devices can't handle. If target — mid-range Android, VFX Graph unsuitable.

Burst Compiler + Job System for CPU particles. If particles managed by script (not standard Particle System), can move logic to IJobParallelFor with Burst. Gives 5–15x speedup vs Mono, frees main thread.

LOD for particle systems via ParticleSystemRenderer.maxParticleSize and dynamic emission.rateOverTime decrease by distance to AR-object. Beyond 3 meters from AR-marker reduce particles by half — visually imperceptible, but lowers overdraw.

Texture Sheet Animation instead of multiple textures. One Sprite Sheet 512×512 with 16 animation frames instead of 16 separate textures — one Material, one texture sample, works in single Draw Call.

From case study: iOS AR-game with magic effects on AR Foundation. Initially three Particle System per effect with Alpha Blend, World Collision, Sub-Emitters — iPhone 12 held 45–50 FPS instead of target 60. After switching to Additive + Planes Collision + combining into one Renderer with Texture Sheet — 60 FPS stable. Visual quality decreased insignificantly, unnoticed in playtests.

AR Foundation Integration

Particles must correctly interact with AR-environment:

  • Effect positioning on ARPlane via Pose from ARRaycastHit
  • Occlusion: particles must hide behind real objects. Implemented via ARKit/ARCore Occlusion (AROcclusionManager) — with enabled Human/Environment Occlusion particles auto-masked by real-world depth
  • Lighting: AREnvironmentProbeManager generates Light Probe from environment real-time — particles with Lighting Mode: Scene Color pick up real lighting, improving effect fit in AR-scene

Work Stages

Requirements analysis. List of effects, target devices, visual fidelity requirements.

Technical design. Particle System vs VFX Graph choice, overdraw strategy, collision approach.

Effects development. Creation with optimization "from scratch", not post-factum rework.

Profiling. Unity Profiler + Xcode Instruments / Android GPU Inspector on target devices.

AR Foundation integration. Binding to AR-surfaces, occlusion, lighting.

Effect Count Estimated Timeline
3–5 basic effects 1–2 weeks
10–15 effects with AR-integration 3–5 weeks
Complex systems with GPU Instancing and VFX Graph 1–2 months

Cost calculated after effects list and target devices discussion.