Mobil oyunlarda performans optimizasyonu için nelere dikkat edersiniz?
Cevap
Mobilde sınırlayıcı faktörler GPU fill rate, bellek bant genişliği, termal throttling ve bataryadır. Masaüstünde sorun olmayan bir sahne, telefonda birkaç dakika sonra ısınma nedeniyle FPS kaybedebilir. Bu yüzden hedef cihaz yelpazesinin en zayıfında, uzun süreli test yapılır.
GPU
- Overdraw'ı azaltın: Büyük şeffaf UI ve particle'lar en büyük düşmandır.
- Çözünürlük: Render scale'i düşürmek (ör. 0.8) çoğu zaman en büyük kazancı sağlar.
- Shader basitliği: Mobil shader'lar,
halfprecision, az texture sample. - Post-processing: Bloom, SSAO ve full-screen efektleri minimumda tutun.
- Texture'lar: ASTC sıkıştırma, mipmap, atlas.
- Tile-based GPU'larda gereksiz render target geçişlerinden ve MSAA dışı ek pass'lerden kaçının.
CPU
- Draw call ve SetPass sayısını azaltın (SRP Batcher, GPU instancing, static batching).
- GC allocation'ı sıfıra yakın tutun; pooling kullanın.
- Fizik: Basit collider'lar, daha düşük fixed timestep frekansı, gereksiz Rigidbody'lerden kaçınma.
- Uzaktaki AI ve animasyonları daha seyrek güncelleyin (update throttling).
Bellek, boyut ve batarya
- Uygulama boyutu ve RAM bütçesi (düşük segment cihazlar 2–3 GB RAM'e sahip olabilir).
- Hedef FPS'yi bilinçli seçin: Her oyun 60 FPS gerektirmez; 30 FPS bataryayı ve ısınmayı ciddi azaltır.
Application.targetFrameRateayarlanmalıdır. - Menülerde FPS'yi düşürmek (ör. Unity'de
OnDemandRendering).
Ölçüm
Unity Profiler, Xcode Instruments, Android GPU Inspector, Snapdragon Profiler ve Arm Performance Studio ile ölçüm yapın; cihaz kalite kademeleri (low/medium/high) tanımlayıp otomatik seçin.
İlgili Oyun Programlama soruları
- Oyun döngüsü (game loop) nedir? Sabit ve değişken zaman adımı arasındaki fark nedir?
- Delta time nedir, neden kullanılır?
- Object pooling nedir, neden kullanılır?
- Entity Component System (ECS) nedir? Klasik nesne yönelimli yapıdan farkı nedir?
- Çarpışma tespitinde broad phase ve narrow phase nedir?
- Multiplayer oyunlarda server authority, client-side prediction ve lag compensation nasıl çalışır?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.