Bringing Deep Rock Galactic: Survivor to Android at 60 FPS

Deep Rock Galactic: Survivor is a top-down, single-player survivor-like auto-shooter set in the Deep Rock Galactic universe. It was originally developed by Funday Games for PC and Xbox, and is published by Ghost Ship Publishing.
Unity Studio Productions was brought in by Funday Games to lead the Android port and the Google Play Games for PC build, coordinating alongside a separate iOS co-development team and Google's own platform program to bring all three builds to a single, simultaneous launch date. The Unity team focused on critical performance optimizations and integrating Google platform services.
52%
Reduction in total used memory (2.35 GB → 1.12 GB)
60%
Reduction in navigation CPU cost on peak frames
70%
Reduction in maximum physics update execution time (peak cost cut to 30% of its original)
What we did
Rebuilding pathfinding for crowds of enemies
The single-threaded NavMesh pathfinding that caused main thread stalls was replaced with a custom Burst-compiled Flow Field pathfinding solution running on worker threads instead. This is the single biggest driver behind the navigation cost reduction.
A custom physics and collision system
To fix the inefficient physics collision detection, we designed a custom 2D spatial partitioning and collision detection system, and reordered physics queries so cheaper checks (like range) run before more expensive ones (like line of sight). This is what produced the physics performance gains the team needed.
Mobile graphics and content optimizations
To bring runtime memory and app size down to the baseline challenge set by the team, gameplay-critical VFX Graph effects were converted to Shuriken (fixing the OpenGLES incompatibility and Vulkan instability noted earlier), environment meshes were decimated by ~50%, decal rendering layers were removed, VkQuality and ADPF were integrated for sustained performance, and level audio plus locked characters were offloaded to Play Asset Delivery Fast-Follow packages. Together, these are what bring memory and install size down.

The challenge
Porting an action-heavy auto-shooter with hundreds of onscreen enemies presented major performance, memory, and thermal challenges on mobile devices. Every enemy had to find its way to the player, and single-threaded NavMesh pathfinding stalled the main thread the rest of the game depends on. Collision detection between the enemy and other game objects was just as costly at that scale. The visual effects were a different problem. They were built with VFX Graph, which doesn’t run on phones using the older OpenGLES graphics API and was unstable on Vulkan.
All of this had to be fixed while also shrinking how much memory and storage space the game used. Runtime memory stood at 2.35 GB, beyond a comfortable mobile budget. The initial download had to be small enough to install quickly, and the target throughout was a steady 60 FPS across a wide range of devices, not just high-end ones.
What we used
To tackle the bottlenecks described above, the team relied on a focused set of engine tools and techniques:
Engine and rendering: Unity 2022.3 with the Universal Render Pipeline (URP), and the Shuriken particle system for visual effects that needed to run smoothly on older mobile hardware
Performance and threading: The Burst compiler and Unity's Jobs System, used to move expensive calculations off the main thread so the game stays responsive even with hundreds of enemies onscreen; and Unity's own profiling tools (Profiler, Memory Profiler, Profile Analyzer) to find and measure exactly where time and memory were going
Content and build size: The Addressables package and Play Asset Delivery (PAD), which let the game download content in smaller pieces after install instead of one large upfront download
Platform integration: The Vulkan graphics API together with the VkQuality plug-in, Android's Adaptive Performance framework (ADPF) for managing device heat and sustained performance, and Google Play Games Services (PGS v2) for cloud saves and achievements
This toolkit, and the team's experience coordinating a simultaneous multiplatform launch, is what made the fixes described next possible.
“Our goal was to have Deep Rock Galactic: Survivor play identical to PC on phones. Thanks to Unity's help, we never compromised on visuals or device reach. Instead, the game has reached millions of new players while still looking rock solid. Having the game run this well on such a range of devices and platforms is a testament to the skills that the Unity team brings to the table.”

Emil Kjæhr - Funday Games
Head of Product & Partners
The outcome
The Android port launched on November 12, 2025, alongside iOS and Google Play Games for PC support. Runtime memory was reduced by 52% (from 2.35 GB to 1.12 GB), and initial app install size dropped to 280 MB via Play Asset Delivery. Navigation costs were cut by 60% on peak frames, maximum physics execution time was reduced to 30% of its original cost, and the game achieved its target 60 FPS performance. The Android release holds a 4.8-star average on Google Play. Beyond this engagement, Deep Rock Galactic: Survivor has become a reference project in Unity’s internal Code Sharing and Production Verification (PV) program, used to validate upcoming Unity features before they ship, including Adaptive Performance, Surface Cache GI, and the Input System migration to Unity 6.6. Most notably, Unity’s own Physics team studied the custom KD-tree optimization built for this engagement to help inform improvements to Unity’s native physics engine, work done for Funday that’s now feeding back into Unity itself.
