AR-026 — Performance budget — STILL UNANSWERED (LOCKED)

LOCKEDv1 · 2026-08-01

AR-026 — Performance budget — STILL UNANSWERED (LOCKED)

Promoted from Action Required card AR-026. This is the decision of record.

This is the single most important technical document for the project. And Claude is absolutely right. Without this document: * Artists don't know polygon budgets. * Tripo AI doesn't know target quality. * Environment assets become inconsistent. * Performance cannot be measured. * Hard Rule #001 ("Performance First") is meaningless. I would actually elevate this to: > Project Bible #2 Because every asset will reference it. --- # AR-011 — ASTRA Performance Budget (LOCKED) Document: 05_ASTRA_Performance_Budget.md Status: APPROVED Priority: CRITICAL --- # Performance Philosophy Performance is Astra's biggest competitive advantage. The player should say: > "This game feels smooth on my phone." Every technical decision must support: * Stable FPS * Low battery usage * Small download * Fast loading * Minimal overheating Visual quality is important. Performance is mandatory. --- # Target Devices Instead of targeting flagship devices, Astra is designed around a minimum supported hardware class. ## Minimum Supported Device (Launch) Target equivalent: * Snapdragon 778G * MediaTek Dimensity 1080 * Exynos 1380 Memory 6 GB RAM GPU Adreno 642L class Target 30 FPS --- ## Recommended Device Snapdragon 8 Gen 2+ Memory 8 GB+ Target 60 FPS --- ## High-End Target Snapdragon 8 Elite / Apple A18 Pro 120 FPS support can be evaluated later, but the game is balanced around 60 FPS. --- # Performance Targets | Device Class | FPS | | ------------ | --------------------------------------------: | | Minimum | Stable 30 FPS | | Recommended | Stable 60 FPS | | High End | 60 FPS locked (higher refresh optional later) | Frame pacing is more important than peak FPS. --- # APK Size ## Initial Download Target ≤ 1.2 GB Maximum 1.5 GB --- ## Installed Size Target ≤ 2.8 GB Maximum 3.5 GB --- ## Patch Size Target <100 MB Large seasonal patches <300 MB --- # Loading Times Cold Boot Target <10 seconds --- Match Loading Target <15 seconds --- Respawn/Spectator <3 seconds --- # Memory Budget ## Runtime RAM Minimum Device Target ≤ 2.5 GB Peak ≤ 3.0 GB --- Texture Streaming Enabled Always. --- # Draw Calls Maximum Visible Target ≤ 180 Absolute Peak ≤ 250 The environment must use batching, GPU instancing, and LODs to stay within these limits. --- # Triangle Budget ## Character LOD0 25,000–30,000 triangles LOD1 15,000 LOD2 8,000 LOD3 2,000 --- ## Weapons LOD0 4,000–6,000 triangles LOD1 2,500 LOD2 1,000 --- ## Barrier LOD0 3,000–5,000 triangles LOD1 2,000 LOD2 800 --- ## Environment Props Small 200–800 triangles Medium 800–2,000 Large 2,000–8,000 Hero Landmark 10,000–20,000 Reserved only for major structures. --- # Texture Budgets ## Character One 2048×2048 atlas Normal map Shared materials where possible --- ## Weapons 1024×1024 --- ## Props 512×512 Common assets --- ## Hero Landmarks 2048×2048 Maximum --- ## Vegetation 512×512 shared atlas --- # Materials Character Maximum 3 materials --- Weapon Maximum 2 materials --- Prop Maximum 1 material Shared master materials should be used throughout the project. --- # Skinned Mesh Budget Maximum active skinned meshes on screen Target ≤ 30 This includes: * Players * Animated creatures (future) * Dynamic banners Static props are excluded. --- # Bones Maximum 120 bones per hero Finger bones included No facial rig at runtime. Facial expressions use blend shapes sparingly or are baked into animations. --- # Animation Target 30 FPS animation sampling Root motion minimized Animation compression enabled --- # Audio Budget Maximum simultaneous voices 32 Priority system: 1. Gunfire 2. Footsteps 3. Hero abilities 4. Barriers 5. Ambient 6. Music Gameplay audio always has priority. --- # Lighting Realtime lighting Minimum Baked GI wherever possible. One primary directional light. Limited realtime shadows. No dynamic GI. --- # Shadows Characters Enabled Medium quality --- Props Selective --- Vegetation Disabled on low settings --- # VFX Budget Maximum simultaneous major VFX 15 Particle count Kept below device-specific thresholds. GPU particles preferred where supported. --- # Network Budget 24 Players Server Tick 30 Hz Bandwidth Target <30 KB/s per client (average gameplay) Replication only for gameplay-critical objects. --- # Battery Target Average ≤ 12% battery consumption per 30 minutes on the minimum supported device. This is a design target and must be validated during testing. --- # Thermal Target No sustained thermal throttling within: 30 minutes of continuous gameplay on the minimum supported device. --- # Asset Production Rules Every asset created must include: * Triangle count * Texture resolution * Material count * LODs * Memory estimate * Performance validation No asset enters production without these values. --- # LOD Policy Every 3D asset larger than 2,000 triangles must include: * LOD0 * LOD1 * LOD2 Hero landmarks require LOD3 if visible across long distances. --- # Performance Gates No asset is approved until it passes: * Triangle budget * Texture budget * Material budget * Draw-call impact * Memory validation * LOD validation * Mobile performance test --- # Hard Rule Every future document must reference this performance budget. If a designer requests: * Higher polygon counts * Larger textures * More materials The request must justify why it exceeds the established budget. Performance budgets cannot be ignored for visual preference alone. --- # 🔒 Final Performance Philosophy Astra is built for consistent performance across a wide range of Android devices, not maximum graphical fidelity. The game should feel: * Smooth * Responsive * Cool-running * Battery efficient * Quick to load A player should never lose a fight because their phone cannot maintain a stable frame rate. --- ## One change I would make to Claude's recommendation I would not lock the performance budget to a single phone model (for example, "Samsung Galaxy A54"). Android hardware changes too quickly, and regional markets differ. Instead, define hardware classes: * Minimum Class (Snapdragon 778G / Dimensity 1080 / Exynos 1380 equivalent) * Recommended Class (Snapdragon 8 Gen 2 equivalent) * High-End Class (latest flagship) That keeps the document relevant for years while still giving artists and engineers concrete budgets to target.