Project crashing on iPhone 11 after 10 seconds of gameplay — a familiar issue. Texture downloads exceeding 800 MB are common, and thermal throttling turns the first level into a slideshow. We offer end-to-end mobile game development with a focus on performance. Over 5 years in game dev, Unity and Unreal Engine certification, hundreds of optimized projects. Choosing a game engine — Unity or Unreal — determines subsequent optimization. Optimizing a mobile game for different platforms is key. We guarantee stable 60 FPS on devices from budget to flagship. Contact us for a project evaluation.
Why do mobile games fall apart technically?
Thermal throttling — the invisible wall
Snapdragon 778G holds stable 60 FPS for the first 10 minutes. Then CPU/GPU overheat, the system downclocks to 50–60% of peak. The user doesn't understand why and uninstalls. Throttling testing is mandatory QA: 30 minutes of gameplay monitored via Android GPU Inspector or Snapdragon Profiler. If temperature exceeds 45°C, the game overheats the device. On Samsung Galaxy A52 after 15 minutes temperature reaches 47°C — we save battery by automatically reducing detail. Solutions: capping target FPS (Application.targetFrameRate = 30), using Adaptive Performance (supports Samsung), aggressive batching. Using Adaptive Performance reduces throttling events by 2x compared to standard implementation.
Memory management on iOS
iOS has no swap. When the app exceeds its budget (from 1.2 GB on older iPhones to 4+ GB on Pro), the system kills it without warning. Every iOS game must be tested in Xcode Instruments. We subscribe to Application.lowMemory and immediately unload non-critical assets. Addressables.Release() for everything not needed right now. Profiling only through Xcode Instruments (Memory Graph).
Android fragmentation specifics
4000+ Android models in circulation. Minimum test device set: Samsung mid-range (Android 12+), older Xiaomi (Android 10, Mali), modern Pixel, budget device with 2GB RAM. Vulkan is available from Android 7.0+, but implementations vary.
How is the mobile game loop adapted for short sessions?
Session 3–7 minutes — a design pattern. The game should finish in one session or correctly save progress. OnApplicationPause(true) — save point. Auto-save every N seconds via coroutine with yield. Do not use synchronous save in OnApplicationPause.
What's included in game development work?
We provide full cycle: analytics → design → prototype → implementation → QA → publishing. Includes training your team, documentation, repository access, and post-release support. Optimization can reduce infrastructure costs by 20–40%. Order a consultation — we'll prepare an estimate. Get a free performance audit of your game — we'll show which bottlenecks can be eliminated.
Touch controls
Unity Input System with Touchscreen device. For swipes — GestureDetector on InputSystem with threshold. Touch target sizes: minimum 48×48 dp (Google guidelines), optimum 56×56 dp. Multi-touch: explicitly set maximum number of touches. Gesture handling via InputSystem.onEvent.
Asset optimization
Textures: ASTC 6×6 for iOS (Metal), ETC2 for Android. Atlases via Sprite Atlas. Meshes over 65k vertices — split (Unity uses 16-bit index buffer by default on mobile, can enable 32-bit). Audio: PCM → MP3 (Android) or AAC (iOS). 22050 Hz is sufficient for most sound effects. Add MIP maps for all 3D textures — otherwise the driver generates nearest, reducing quality. Using Addressables instead of direct references reduces peak memory consumption by 30%.
How we achieve stable 60 FPS: step-by-step process
- Profiling: Frame Debugger, Unity Profiler, Instruments, Android GPU Inspector.
- Optimization: SRP batcher, static batching, LOD, occlusion culling.
- Throttling test: 30 minutes on 3+ devices.
- Reduce draw calls to 100–150 per frame.
- Memory check: eliminate leaks via Memory Profiler.
| Platform | Optimization specifics |
|---|---|
| iOS | Memory budget, Metal, ASTC, Touch ID, Game Center |
| Android | Vulkan/GLES, fragmentation, Adaptive Performance, 4000+ models |
Mobile project stack
Backend: PlayFab (recommended) or Firebase. Analytics: Firebase Analytics + AppsFlyer for attribution. Monetization: Unity IAP + IronSource/AppLovin MAX (mediation increases eCPM by 20–40%). Push: Firebase Cloud Messaging. CI/CD: Unity Cloud Build + fastlane (iOS) + GitHub Actions (Android).
Release and post-release
Soft launch (limited region) is mandatory. Metrics for go/no-go: D1 retention >40%, D7 >20%, D30 >10%. Cost is calculated individually after analyzing mechanics. Order a consultation — we'll prepare an estimate.
| Game Type | Estimated timeline |
|---|---|
| Hyper-casual | 4–8 weeks |
| Casual with progression | 2–4 months |
| Midcore (meta + PvP) | 4–8 months |
| Midcore with guild/clan | 6–12 months |





