- Üyelik Tarihi
- 24 Ağu 2026
- Mesajlar
- 16
- Beğeniler
- 1
- Puanlar
- 3
Merhaba arkadaşlar,
Bu konuda mobil oyun geliştirmeye yeni başlayanlar için süreci baştan sona ele alacağız. Bir mobil oyun hazırlamak yalnızca karakteri hareket ettirmek veya birkaç bölüm tasarlamaktan ibaret değildir. Oyunun fikrinden performansına, reklam sisteminden mağaza yayınına kadar birçok farklı aşama bulunur.
Özellikle ilk mobil oyununu geliştirecek kişiler genellikle doğrudan kodlama kısmına geçiyor. Ancak proje planlaması yapılmadan başlanan oyunlarda bir süre sonra performans sorunları, karmaşık kod yapısı, kontrol problemleri veya yayın aşamasında eksikler ortaya çıkabiliyor.
Bu nedenle mobil oyun geliştirme sürecini belirli aşamalara ayırmak işinizi oldukça kolaylaştıracaktır.
Başlangıç aşamasında çok büyük projeler yerine tamamlanabilecek ölçekte bir oyun seçmek daha doğru olacaktır.
Örneğin ilk projeniz için:
İlk oyununuzu yaparken açık dünya, yüzlerce görev, çevrim içi çok oyunculu sistem ve gelişmiş ekonomi gibi özellikleri aynı projeye eklemeye çalışırsanız proje kısa sürede yönetilemez hale gelebilir.
Öncelikle temel oynanışı çalışan küçük bir prototip hazırlamak daha sağlıklıdır.
Oyuncunun oyunda sürekli yaptığı temel bir hareket bulunmalıdır.
Buna genellikle oyunun ana oynanış döngüsü diyebiliriz.
Örneğin bir koşu oyununda:
Koş → Engelden kaç → Puan kazan → Yeni bölüm/karakter aç → Tekrar oyna
şeklinde bir yapı olabilir.
Bir idle oyunda ise:
Kaynak kazan → Geliştirme satın al → Daha hızlı kaynak kazan → Yeni alan aç
şeklinde devam edebilir.
Oyuncunun tekrar tekrar gerçekleştireceği bu döngünün eğlenceli olması oyunun temelini oluşturur.
Grafikleri, reklamları veya mağaza sayfasını düşünmeden önce oyuncunun ilk birkaç dakikada ne yapacağını belirleyin.
Platform, bulmaca, kart, kelime ve arcade tarzı birçok oyun 2D olarak geliştirilebilir.
Avantajları arasında:
Daha basit sahne yapısı, daha düşük cihaz gereksinimleri, daha kolay görsel üretimi ve genellikle daha hızlı geliştirme süreci bulunmaktadır.
3D oyun geliştirmek mümkündür ancak mobil cihazların donanım sınırlamalarını unutmamak gerekir.
Bilgisayarda sorunsuz çalışan bir sahne düşük veya orta seviye Android cihazlarda aynı performansı vermeyebilir.
Bu yüzden özellikle 3D mobil projelerde en başından itibaren performansı düşünmek önemlidir.
Burada tek bir doğru seçenek yoktur.
Kullanacağınız motor;
Örneğin bazı motorlar 2D oyunlarda daha hızlı çalışma imkânı sağlarken bazıları geniş 3D araçları ve hazır sistemleriyle öne çıkabilir.
Motor seçerken yalnızca:
“Hangisi daha iyi?”
sorusunu sormak yerine:
“Benim yapmak istediğim oyun için hangisi daha uygun?”
sorusunu sormak daha doğrudur.
Örneğin bir platform oyunu yapıyorsanız ilk olarak:
Karakter hareket ediyor mu?
Zıplama düzgün çalışıyor mu?
Çarpışmalar doğru mu?
Kamera oyuncuyu takip ediyor mu?
Bölüm tamamlanabiliyor mu?
Ölüm ve yeniden başlama sistemi çalışıyor mu?
bunları tamamlayın.
Bunlara bazen oyunun core mechanics, yani temel mekanikleri denir.
Temel mekanikler eğlenceli değilse oyuna onlarca farklı menü eklemek projeyi kurtarmayacaktır.
Bu yüzden kontrollerin mobil cihazlara uygun tasarlanması gerekir.
Örneğin:
Tek dokunma
Basılı tutma
Sağa/sola kaydırma
Sanal joystick
Ekran üzerindeki butonlar
kullanılabilir.
Burada önemli olan oyuncunun ekranı gereksiz butonlarla doldurmadan oyunu rahatça kontrol edebilmesidir.
Bir oyunun kontrolü ilk birkaç saniyede anlaşılabiliyorsa mobil kullanıcı açısından büyük avantaj sağlar.
Farklı marka ve modellerde:
Bu yüzden oyunun arayüzünü yalnızca kendi telefonunuza göre hazırlamayın.
Örneğin sizin cihazınızda düzgün görünen bir:
Başlat
butonu başka cihazda ekranın dışına taşabilir.
UI elemanlarının farklı ekran oranlarına uyum sağlaması için anchor ve responsive UI sistemlerinin doğru kullanılması gerekir.
Özellikle:
Para göstergesi
Can barı
Ayar butonu
Reklam butonları
Pause menüsü
gibi alanları farklı ekranlarda test edin.
Bazı cihazlarda ise ekranın alt bölümünde sistem navigasyon alanı bulunabilir.
Oyunun önemli butonlarını bu bölgelerin altında bırakırsanız kullanıcı butona erişmekte sorun yaşayabilir.
Bu nedenle mobil UI tasarlarken cihazın Safe Area alanını dikkate almak önemlidir.
Özellikle ekranın:
Üst köşelerine,
Alt köşelerine,
En dış kenarlarına
yerleştirilen arayüz elemanlarını gerçek cihazda mutlaka test edin.
Ayrıca piyasada çok farklı seviyelerde Android cihaz bulunduğu için oyunun yalnızca güçlü telefonlarda çalışması yeterli değildir.
Bir mobil oyunda performans problemi yaşandığında:
FPS düşebilir,
Telefon ısınabilir,
Pil hızlı tüketilebilir,
Oyun donabilir,
Uygulama kapanabilir.
Bu nedenle geliştirme sırasında performans kontrolünü en sona bırakmayın.
Oyunlarda yaygın hedefler arasında:
30 FPS
ve
60 FPS
bulunmaktadır.
Basit bir mobil oyun için stabil 30 FPS, sürekli 60 FPS ile çalışmaya çalışıp sık sık 20 FPS'e düşmekten daha iyi bir deneyim sağlayabilir.
Burada önemli olan performansın mümkün olduğunca stabil olmasıdır.
Oyununuzun hedef FPS değerini proje türüne göre belirleyebilirsiniz.
Hızlı refleks gerektiren oyunlarda yüksek FPS daha önemliyken basit bulmaca veya idle oyunlarda durum farklı olabilir.
Birçok küçük problem birleşerek FPS düşüşüne sebep olabilir.
Kontrol edilmesi gereken alanlardan bazıları şunlardır:
Kullanılmayan objeleri gerektiğinde devre dışı bırakmak veya yüklemek daha sağlıklı olabilir.
Görsel kalite ile performans arasında denge kurun.
Küçük bir UI ikonunda gereksiz derecede büyük texture kullanmak hafıza tüketimini artırabilir.
Gerekli olmayan alanlarda bu özellikleri kullanmamak performansı iyileştirebilir.
Kod tarafında da optimizasyon yapılması gerekir.
Örneğin bir oyunda sürekli:
Mermi oluşturuluyor,
Mermi yok ediliyor,
Düşman oluşturuluyor,
Düşman yok ediliyor,
Para objeleri oluşturuluyor,
ve bunlar tekrar tekrar yapılıyorsa cihaz üzerinde gereksiz yük oluşabilir.
Object Pooling mantığında objeyi sürekli oluşturup yok etmek yerine belirli sayıda obje önceden hazırlanır.
İhtiyaç olduğunda aktif edilir, işi bittikten sonra tekrar havuza gönderilir.
Özellikle:
Mermiler,
Düşmanlar,
Efektler,
Coin objeleri,
Sürekli tekrar kullanılan nesneler
için oldukça faydalı olabilir.
Örneğin:
Oyuncunun parası,
Açtığı bölümler,
Satın aldığı karakterler,
Ses ayarları,
En yüksek skor,
Oyun ilerlemesi
saklanabilir.
Basit oyunlarda yerel kayıt yeterli olabilir.
Ancak çevrim içi hesap sistemi bulunan oyunlarda verileri yalnızca telefonda tutmak yeterli olmayabilir.
Kayıt sistemi tasarlanırken oyuncunun uygulamayı kapattığında veya telefonunu değiştirdiğinde ne olacağı düşünülmelidir.
Örneğin:
Bir bölümden oyuncu 100 coin kazanıyorsa,
Yeni karakterin fiyatını 10.000.000 coin yapmak oyuncuyu gereksiz şekilde yorabilir.
Tam tersi durumda tüm içerik ilk 10 dakikada açılıyorsa oyunda ilerleme hissi kalmaz.
Bu yüzden:
Kazanç → Harcama → Gelişim → Yeni hedef
dengesi oluşturulmalıdır.
Ancak reklamı oyuna eklemek ile reklamı doğru kullanmak aynı şey değildir.
Kullanıcı her butona bastığında reklam gösterirseniz oyun deneyimi ciddi şekilde bozulabilir.
Reklam türleri genel olarak farklı amaçlarla kullanılabilir.
Örneğin:
+500 Coin
Ekstra Can
Bölüme Devam Et
Ödülü 2 Katına Çıkar
gibi.
Oyuncunun kendi isteğiyle izlediği için genellikle oyun deneyimine daha iyi entegre edilebilir.
Örneğin her bölümden sonra reklam göstermek yerine belirli aralıklar kullanılabilir.
Reklam sayısını belirlerken yalnızca gelir düşünülmemelidir.
Oyuncu oyundan çıkarsa uzun vadede gelir de olmayacaktır.
Örneğin:
Reklamları kaldır
Coin paketi
Özel karakter
Premium üyelik
Başlangıç paketi
gibi ürünler satılabilir.
Satın alma işlemlerinde işlemin başarılı olup olmadığını yalnızca cihaz tarafındaki basit bir değişkene bağlamamak gerekir.
Özellikle gerçek para kullanılan sistemlerde güvenlik ve satın alma doğrulama süreçleri dikkatli hazırlanmalıdır.
Örneğin oyuncu coin topladığında küçük bir ses efekti verilmesi yapılan hareketin geri bildirimini artırır.
Benzer şekilde:
Buton sesi,
Zıplama sesi,
Vuruş efekti,
Bölüm tamamlama sesi,
Kaybetme sesi
oyunun daha canlı hissettirilmesini sağlar.
Ancak ses seviyelerini doğru ayarlayın.
Oyuncunun uygulamayı açtığı anda son ses bir müzikle karşılaşması iyi bir deneyim değildir.
Ayrıca ayarlar bölümüne:
Müzik Aç/Kapat
ve
Ses Efekti Aç/Kapat
seçenekleri eklemek faydalıdır.
Örneğin düşmana vurduğunda hiçbir şey olmuyorsa oyuncu vuruşun gerçekleşip gerçekleşmediğini anlayamayabilir.
Bunun yerine:
Küçük animasyon,
Ses efekti,
Partikül efekti,
Ekran sallama,
Hasar sayısı,
Renk değişimi
gibi geri bildirimler kullanılabilir.
Ancak tüm efektleri aynı anda aşırı kullanmak da görüntünün karmaşık hale gelmesine neden olabilir.
Örneğin:
Ana Menü
Oyun Ekranı
Pause Menüsü
Ayarlar
Karakter Seçimi
Mağaza
Bölüm Seçimi
Oyun Sonu Ekranı
gibi.
Bu menüleri geliştirmeye başlamadan önce aralarındaki geçişleri planlayın.
Örneğin:
Ana Menü → Bölüm Seç → Oyna → Sonuç → Ana Menü
akışı baştan belli olursa daha düzenli ilerleyebilirsiniz.
Ancak tutorial hazırlarken de kullanıcıya uzun uzun yazı okutmak zorunda değilsiniz.
Örneğin:
Sağa gitmek için ekranın sağ tarafına dokun
yerine oyunun ilk bölümünü mekanikleri öğretmek için tasarlayabilirsiniz.
İlk engel oyuncuya zıplamayı,
ikinci engel hareket etmeyi,
üçüncü bölüm yeni bir mekaniği
öğretebilir.
Oyuncuya mümkün olduğunca oynatarak öğretmek daha doğal bir yöntemdir.
Çok zor olursa ilk birkaç dakikada oyunu bırakabilir.
Bu yüzden zorluk seviyesinin zamanla artması genellikle daha doğru olur.
Örneğin ilk bölümde:
1 düşman
varsa ilerleyen bölümlerde:
Daha hızlı düşmanlar
Yeni engeller
Farklı saldırılar
eklenebilir.
Ancak sadece düşmanların canını sürekli artırmak her zaman iyi bir zorluk sistemi değildir.
Yeni mekanikler eklemek oyunun daha eğlenceli kalmasını sağlar.
Oyun bilgisayarda mükemmel çalışabilir fakat telefona yüklediğinizde:
FPS düşebilir,
UI kayabilir,
Dokunmatik kontroller kötü çalışabilir,
Telefon ısınabilir,
Bazı efektler görünmeyebilir,
Uygulama açılırken kapanabilir.
Bu nedenle geliştirme sürecinin başından itibaren gerçek Android cihazlarda test yapın.
Mümkünse yalnızca üst seviye bir cihaz kullanmayın.
Daha düşük donanımlı bir cihazda da test yapmak performans problemlerini daha erken fark etmenizi sağlar.
APK oluşturduktan sonra:
Oyunu sıfırdan kurun,
İlk açılışı kontrol edin,
Menüler arasında gezinin,
Bir süre oyun oynayın,
Oyunu arka plana atıp tekrar açın,
İnterneti kapatıp deneyin,
Telefonu yeniden başlatıp kayıtları kontrol edin.
Sadece:
“Oyun açıldı, tamamdır.”
şeklinde test yapmak yeterli değildir.
Bu aşamada özellikle:
Package Name
Version Code
Version Name
Keystore
App Signing
Target API
gibi teknik ayarları kontrol edin.
Bu konular için forumdaki:
APK ve AAB
Keystore ve İmzalama
Google Play Console
kategorilerindeki rehberlerden yararlanabilirsiniz.
Şunları kontrol etmenizi tavsiye ediyoruz:
Geliştirici olarak hangi butona basılması gerektiğini zaten bildiğiniz için bazı kullanım problemlerini fark etmeyebilirsiniz.
İlk kez oynayan bir kişinin davranışlarını gözlemlemek oldukça faydalıdır.
Sorunun hangi bölümden kaynaklandığını ölçmeden rastgele özellik kapatmak yerine performans profili çıkarmaya çalışın.
Mobil platforma özel izinleri, kullanılan eklentileri, shader'ları ve release ayarlarını kontrol edin.
Oyunu farklı çözünürlük ve ekran oranlarında test edin.
Projede kullanılmadığı halde pakete dahil edilen dosyalar bulunabilir.
Yalnızca:
“Oyun açılmıyor.”
bilgisi problemin kaynağını anlamak için yeterli değildir.
İlk oyunda çok büyük proje seçmek,
Her gördüğü sistemi projeye eklemek,
Optimizasyonu tamamen sona bırakmak,
Projeyi yedeklememek,
Gerçek cihazda test yapmamak,
UI'ı tek ekran boyutuna göre hazırlamak,
Keystore dosyasını kaybetmek,
Reklamları aşırı kullanmak,
Oyuncuya nasıl oynanacağını anlatmamak,
Sadece grafiklere odaklanıp oynanışı ihmal etmek
bunlardan bazılarıdır.
Özellikle ilk projenizde hedefiniz:
“Dünyanın en iyi mobil oyununu yapmak”
yerine:
“Başladığım oyunu düzgün şekilde tamamlayıp yayınlamak”
olursa çok daha fazla tecrübe kazanırsınız.
Disk arızası,
Yanlış dosya silme,
Format,
Proje bozulması
gibi durumlarda bütün emeğinizi kaybedebilirsiniz.
Bu nedenle proje dosyalarınızı düzenli olarak yedekleyin.
Mümkünse sürüm kontrol sistemi kullanın.
Ayrıca oyunun:
Keystore,
Kaynak dosyaları,
Grafikleri,
Sesleri,
Proje ayarları
gibi önemli parçalarının yedeklerini de unutmayın.
İyi bir mobil oyun geliştirmek;
Oyun tasarımı → Programlama → Grafik → Ses → UI/UX → Performans → Test → Gelir modeli → Paketleme → Mağaza yayını
gibi birçok farklı alanın bir araya gelmesiyle oluşur.
İlk projenizde her şeyi mükemmel yapmak zorunda değilsiniz.
Ancak oyunun çalışması, oynanabilir olması ve gerçekten tamamlanması önemlidir.
Küçük bir oyun geliştirip yayınlamak, yıllarca bitmeyen dev bir projeden çok daha fazla tecrübe kazandırabilir.
Mobil oyun geliştirirken bir sorunla karşılaşırsanız Mobil Oyunlar kategorisinde yeni konu oluşturabilirsiniz.
Konu açarken mümkünse kullandığınız oyun motorunu, hedeflediğiniz platformu, aldığınız hata mesajını ve problemi gösteren ekran görüntüsünü ekleyin.
Herkese iyi geliştirmeler ve bol oyunculu oyunlar.
Bu konuda mobil oyun geliştirmeye yeni başlayanlar için süreci baştan sona ele alacağız. Bir mobil oyun hazırlamak yalnızca karakteri hareket ettirmek veya birkaç bölüm tasarlamaktan ibaret değildir. Oyunun fikrinden performansına, reklam sisteminden mağaza yayınına kadar birçok farklı aşama bulunur.
Özellikle ilk mobil oyununu geliştirecek kişiler genellikle doğrudan kodlama kısmına geçiyor. Ancak proje planlaması yapılmadan başlanan oyunlarda bir süre sonra performans sorunları, karmaşık kod yapısı, kontrol problemleri veya yayın aşamasında eksikler ortaya çıkabiliyor.
Bu nedenle mobil oyun geliştirme sürecini belirli aşamalara ayırmak işinizi oldukça kolaylaştıracaktır.
Mobil Oyun Geliştirmeye Nereden Başlanmalı?
İlk olarak nasıl bir oyun yapmak istediğinizi netleştirmeniz gerekir.Başlangıç aşamasında çok büyük projeler yerine tamamlanabilecek ölçekte bir oyun seçmek daha doğru olacaktır.
Örneğin ilk projeniz için:
- Sonsuz koşu oyunu
- Basit platform oyunu
- Bulmaca oyunu
- Kelime oyunu
- Idle oyun
- Basit yarış oyunu
- Hyper-casual oyun
- 2D arcade oyun
İlk oyununuzu yaparken açık dünya, yüzlerce görev, çevrim içi çok oyunculu sistem ve gelişmiş ekonomi gibi özellikleri aynı projeye eklemeye çalışırsanız proje kısa sürede yönetilemez hale gelebilir.
Öncelikle temel oynanışı çalışan küçük bir prototip hazırlamak daha sağlıklıdır.
Oyun Fikri Nasıl Belirlenir?
Bir oyunun yalnızca güzel görünmesi yeterli değildir.Oyuncunun oyunda sürekli yaptığı temel bir hareket bulunmalıdır.
Buna genellikle oyunun ana oynanış döngüsü diyebiliriz.
Örneğin bir koşu oyununda:
Koş → Engelden kaç → Puan kazan → Yeni bölüm/karakter aç → Tekrar oyna
şeklinde bir yapı olabilir.
Bir idle oyunda ise:
Kaynak kazan → Geliştirme satın al → Daha hızlı kaynak kazan → Yeni alan aç
şeklinde devam edebilir.
Oyuncunun tekrar tekrar gerçekleştireceği bu döngünün eğlenceli olması oyunun temelini oluşturur.
Grafikleri, reklamları veya mağaza sayfasını düşünmeden önce oyuncunun ilk birkaç dakikada ne yapacağını belirleyin.
2D mi 3D mi?
Mobil oyun geliştirirken ilk karar verilmesi gereken konulardan biri oyunun 2D veya 3D olmasıdır.2D Oyunlar
2D projeler genellikle başlangıç için daha kolaydır.Platform, bulmaca, kart, kelime ve arcade tarzı birçok oyun 2D olarak geliştirilebilir.
Avantajları arasında:
Daha basit sahne yapısı, daha düşük cihaz gereksinimleri, daha kolay görsel üretimi ve genellikle daha hızlı geliştirme süreci bulunmaktadır.
3D Oyunlar
3D oyunlarda kamera, ışıklandırma, modeller, animasyonlar, materyaller ve performans optimizasyonu gibi ek konular devreye girer.3D oyun geliştirmek mümkündür ancak mobil cihazların donanım sınırlamalarını unutmamak gerekir.
Bilgisayarda sorunsuz çalışan bir sahne düşük veya orta seviye Android cihazlarda aynı performansı vermeyebilir.
Bu yüzden özellikle 3D mobil projelerde en başından itibaren performansı düşünmek önemlidir.
Hangi Oyun Motoru Kullanılmalı?
Mobil oyun geliştirmek için farklı oyun motorları kullanılabilir.Burada tek bir doğru seçenek yoktur.
Kullanacağınız motor;
- Yapacağınız oyuna,
- Bildiğiniz programlama diline,
- Hedeflediğiniz platformlara,
- Kullanacağınız özelliklere,
- Projenin büyüklüğüne
Örneğin bazı motorlar 2D oyunlarda daha hızlı çalışma imkânı sağlarken bazıları geniş 3D araçları ve hazır sistemleriyle öne çıkabilir.
Motor seçerken yalnızca:
“Hangisi daha iyi?”
sorusunu sormak yerine:
“Benim yapmak istediğim oyun için hangisi daha uygun?”
sorusunu sormak daha doğrudur.
Oyunun Temel Mekaniklerini Önce Hazırlayın
İlk aşamada menüler, mağaza ekranları veya detaylı görseller hazırlamak yerine oyunun gerçekten oynanabilir kısmını geliştirin.Örneğin bir platform oyunu yapıyorsanız ilk olarak:
Karakter hareket ediyor mu?
Zıplama düzgün çalışıyor mu?
Çarpışmalar doğru mu?
Kamera oyuncuyu takip ediyor mu?
Bölüm tamamlanabiliyor mu?
Ölüm ve yeniden başlama sistemi çalışıyor mu?
bunları tamamlayın.
Bunlara bazen oyunun core mechanics, yani temel mekanikleri denir.
Temel mekanikler eğlenceli değilse oyuna onlarca farklı menü eklemek projeyi kurtarmayacaktır.
Mobil Kontroller Nasıl Tasarlanmalı?
Bilgisayar oyunları genellikle klavye, mouse veya gamepad üzerinden oynanırken mobil oyunlarda temel giriş yöntemi dokunmatik ekrandır.Bu yüzden kontrollerin mobil cihazlara uygun tasarlanması gerekir.
Örneğin:
Tek dokunma
Basılı tutma
Sağa/sola kaydırma
Sanal joystick
Ekran üzerindeki butonlar
kullanılabilir.
Burada önemli olan oyuncunun ekranı gereksiz butonlarla doldurmadan oyunu rahatça kontrol edebilmesidir.
Bir oyunun kontrolü ilk birkaç saniyede anlaşılabiliyorsa mobil kullanıcı açısından büyük avantaj sağlar.
Farklı Ekran Boyutlarını Unutmayın
Mobil cihazlarda tek bir ekran çözünürlüğü bulunmaz.Farklı marka ve modellerde:
- Ekran oranı,
- Çözünürlük,
- Çentik yapısı,
- Kamera deliği,
- Navigasyon alanı
Bu yüzden oyunun arayüzünü yalnızca kendi telefonunuza göre hazırlamayın.
Örneğin sizin cihazınızda düzgün görünen bir:
Başlat
butonu başka cihazda ekranın dışına taşabilir.
UI elemanlarının farklı ekran oranlarına uyum sağlaması için anchor ve responsive UI sistemlerinin doğru kullanılması gerekir.
Özellikle:
Para göstergesi
Can barı
Ayar butonu
Reklam butonları
Pause menüsü
gibi alanları farklı ekranlarda test edin.
Safe Area Nedir?
Yeni telefonların bazılarında ekranın üst kısmında kamera alanı veya çentik bulunabilir.Bazı cihazlarda ise ekranın alt bölümünde sistem navigasyon alanı bulunabilir.
Oyunun önemli butonlarını bu bölgelerin altında bırakırsanız kullanıcı butona erişmekte sorun yaşayabilir.
Bu nedenle mobil UI tasarlarken cihazın Safe Area alanını dikkate almak önemlidir.
Özellikle ekranın:
Üst köşelerine,
Alt köşelerine,
En dış kenarlarına
yerleştirilen arayüz elemanlarını gerçek cihazda mutlaka test edin.
Performans Mobil Oyunlarda Neden Önemlidir?
Mobil cihazlar bilgisayarlara göre daha sınırlı donanıma sahiptir.Ayrıca piyasada çok farklı seviyelerde Android cihaz bulunduğu için oyunun yalnızca güçlü telefonlarda çalışması yeterli değildir.
Bir mobil oyunda performans problemi yaşandığında:
FPS düşebilir,
Telefon ısınabilir,
Pil hızlı tüketilebilir,
Oyun donabilir,
Uygulama kapanabilir.
Bu nedenle geliştirme sırasında performans kontrolünü en sona bırakmayın.
FPS Nedir?
FPS, saniyede görüntülenen kare sayısını ifade eder.Oyunlarda yaygın hedefler arasında:
30 FPS
ve
60 FPS
bulunmaktadır.
Basit bir mobil oyun için stabil 30 FPS, sürekli 60 FPS ile çalışmaya çalışıp sık sık 20 FPS'e düşmekten daha iyi bir deneyim sağlayabilir.
Burada önemli olan performansın mümkün olduğunca stabil olmasıdır.
Oyununuzun hedef FPS değerini proje türüne göre belirleyebilirsiniz.
Hızlı refleks gerektiren oyunlarda yüksek FPS daha önemliyken basit bulmaca veya idle oyunlarda durum farklı olabilir.
Mobil Oyunlarda Optimizasyon
Performans sorunu yaşandığında genellikle tek bir neden bulunmaz.Birçok küçük problem birleşerek FPS düşüşüne sebep olabilir.
Kontrol edilmesi gereken alanlardan bazıları şunlardır:
Gereksiz Objeler
Sahnede oyuncunun hiçbir zaman görmeyeceği yüzlerce obje tutmayın.Kullanılmayan objeleri gerektiğinde devre dışı bırakmak veya yüklemek daha sağlıklı olabilir.
Yüksek Polygon Modeller
Mobil oyunda çok yüksek detaylı modeller kullanmak performansı etkileyebilir.Görsel kalite ile performans arasında denge kurun.
Büyük Texture Dosyaları
Her görselin 4K çözünürlükte olması gerekmez.Küçük bir UI ikonunda gereksiz derecede büyük texture kullanmak hafıza tüketimini artırabilir.
Fazla Işık ve Gölge
Özellikle gerçek zamanlı ışıklar ve gölgeler mobil cihazlarda maliyetli olabilir.Gerekli olmayan alanlarda bu özellikleri kullanmamak performansı iyileştirebilir.
Gereksiz Kod Çalıştırılması
Her frame içerisinde çalışmasına gerek olmayan işlemleri sürekli çalıştırmak CPU kullanımını artırabilir.Kod tarafında da optimizasyon yapılması gerekir.
Object Pooling Nedir?
Mobil oyun geliştirirken sık duyacağınız kavramlardan biri Object Pooling sistemidir.Örneğin bir oyunda sürekli:
Mermi oluşturuluyor,
Mermi yok ediliyor,
Düşman oluşturuluyor,
Düşman yok ediliyor,
Para objeleri oluşturuluyor,
ve bunlar tekrar tekrar yapılıyorsa cihaz üzerinde gereksiz yük oluşabilir.
Object Pooling mantığında objeyi sürekli oluşturup yok etmek yerine belirli sayıda obje önceden hazırlanır.
İhtiyaç olduğunda aktif edilir, işi bittikten sonra tekrar havuza gönderilir.
Özellikle:
Mermiler,
Düşmanlar,
Efektler,
Coin objeleri,
Sürekli tekrar kullanılan nesneler
için oldukça faydalı olabilir.
Oyunun Kayıt Sistemi
Mobil oyununuzda ilerleme bulunuyorsa kayıt sistemi eklemeniz gerekir.Örneğin:
Oyuncunun parası,
Açtığı bölümler,
Satın aldığı karakterler,
Ses ayarları,
En yüksek skor,
Oyun ilerlemesi
saklanabilir.
Basit oyunlarda yerel kayıt yeterli olabilir.
Ancak çevrim içi hesap sistemi bulunan oyunlarda verileri yalnızca telefonda tutmak yeterli olmayabilir.
Kayıt sistemi tasarlanırken oyuncunun uygulamayı kapattığında veya telefonunu değiştirdiğinde ne olacağı düşünülmelidir.
Para ve Ekonomi Sistemi
Oyunda coin, elmas veya başka bir sanal para kullanılacaksa ekonomi sistemini dikkatli tasarlayın.Örneğin:
Bir bölümden oyuncu 100 coin kazanıyorsa,
Yeni karakterin fiyatını 10.000.000 coin yapmak oyuncuyu gereksiz şekilde yorabilir.
Tam tersi durumda tüm içerik ilk 10 dakikada açılıyorsa oyunda ilerleme hissi kalmaz.
Bu yüzden:
Kazanç → Harcama → Gelişim → Yeni hedef
dengesi oluşturulmalıdır.
Reklam Sistemi
Mobil oyunların büyük bir bölümünde gelir modeli olarak reklam kullanılmaktadır.Ancak reklamı oyuna eklemek ile reklamı doğru kullanmak aynı şey değildir.
Kullanıcı her butona bastığında reklam gösterirseniz oyun deneyimi ciddi şekilde bozulabilir.
Reklam türleri genel olarak farklı amaçlarla kullanılabilir.
Ödüllü Reklam
Oyuncu reklamı kendi isteğiyle izler ve karşılığında ödül alır.Örneğin:
+500 Coin
Ekstra Can
Bölüme Devam Et
Ödülü 2 Katına Çıkar
gibi.
Oyuncunun kendi isteğiyle izlediği için genellikle oyun deneyimine daha iyi entegre edilebilir.
Geçiş Reklamı
Bölüm sonları gibi doğal geçiş noktalarında gösterilebilir.Örneğin her bölümden sonra reklam göstermek yerine belirli aralıklar kullanılabilir.
Reklam sayısını belirlerken yalnızca gelir düşünülmemelidir.
Oyuncu oyundan çıkarsa uzun vadede gelir de olmayacaktır.
Uygulama İçi Satın Alma
Oyununuzda ücretli içerikler kullanacaksanız uygulama içi satın alma sistemi oluşturabilirsiniz.Örneğin:
Reklamları kaldır
Coin paketi
Özel karakter
Premium üyelik
Başlangıç paketi
gibi ürünler satılabilir.
Satın alma işlemlerinde işlemin başarılı olup olmadığını yalnızca cihaz tarafındaki basit bir değişkene bağlamamak gerekir.
Özellikle gerçek para kullanılan sistemlerde güvenlik ve satın alma doğrulama süreçleri dikkatli hazırlanmalıdır.
Ses ve Müzik
Mobil oyunlarda ses küçük bir detay gibi görünse de oyun hissini ciddi şekilde etkiler.Örneğin oyuncu coin topladığında küçük bir ses efekti verilmesi yapılan hareketin geri bildirimini artırır.
Benzer şekilde:
Buton sesi,
Zıplama sesi,
Vuruş efekti,
Bölüm tamamlama sesi,
Kaybetme sesi
oyunun daha canlı hissettirilmesini sağlar.
Ancak ses seviyelerini doğru ayarlayın.
Oyuncunun uygulamayı açtığı anda son ses bir müzikle karşılaşması iyi bir deneyim değildir.
Ayrıca ayarlar bölümüne:
Müzik Aç/Kapat
ve
Ses Efekti Aç/Kapat
seçenekleri eklemek faydalıdır.
Oyuncuya Geri Bildirim Verin
Oyuncunun yaptığı hareketlerin karşılığını ekranda hissetmesi gerekir.Örneğin düşmana vurduğunda hiçbir şey olmuyorsa oyuncu vuruşun gerçekleşip gerçekleşmediğini anlayamayabilir.
Bunun yerine:
Küçük animasyon,
Ses efekti,
Partikül efekti,
Ekran sallama,
Hasar sayısı,
Renk değişimi
gibi geri bildirimler kullanılabilir.
Ancak tüm efektleri aynı anda aşırı kullanmak da görüntünün karmaşık hale gelmesine neden olabilir.
Oyunda Menü Sistemi
Basit bir mobil oyunda bile genellikle birden fazla ekran bulunur.Örneğin:
Ana Menü
Oyun Ekranı
Pause Menüsü
Ayarlar
Karakter Seçimi
Mağaza
Bölüm Seçimi
Oyun Sonu Ekranı
gibi.
Bu menüleri geliştirmeye başlamadan önce aralarındaki geçişleri planlayın.
Örneğin:
Ana Menü → Bölüm Seç → Oyna → Sonuç → Ana Menü
akışı baştan belli olursa daha düzenli ilerleyebilirsiniz.
Tutorial Hazırlamak Gerekir mi?
Oyuncunun oyunun nasıl oynandığını anlayamaması, oyundan hızlı çıkmasına neden olabilir.Ancak tutorial hazırlarken de kullanıcıya uzun uzun yazı okutmak zorunda değilsiniz.
Örneğin:
Sağa gitmek için ekranın sağ tarafına dokun
yerine oyunun ilk bölümünü mekanikleri öğretmek için tasarlayabilirsiniz.
İlk engel oyuncuya zıplamayı,
ikinci engel hareket etmeyi,
üçüncü bölüm yeni bir mekaniği
öğretebilir.
Oyuncuya mümkün olduğunca oynatarak öğretmek daha doğal bir yöntemdir.
Oyunun Zorluk Dengesi
Oyun çok kolay olursa oyuncu sıkılabilir.Çok zor olursa ilk birkaç dakikada oyunu bırakabilir.
Bu yüzden zorluk seviyesinin zamanla artması genellikle daha doğru olur.
Örneğin ilk bölümde:
1 düşman
varsa ilerleyen bölümlerde:
Daha hızlı düşmanlar
Yeni engeller
Farklı saldırılar
eklenebilir.
Ancak sadece düşmanların canını sürekli artırmak her zaman iyi bir zorluk sistemi değildir.
Yeni mekanikler eklemek oyunun daha eğlenceli kalmasını sağlar.
Gerçek Cihazda Test Yapın
Mobil oyun geliştirirken yapılan en büyük hatalardan biri oyunu yalnızca bilgisayardaki editörde test etmektir.Oyun bilgisayarda mükemmel çalışabilir fakat telefona yüklediğinizde:
FPS düşebilir,
UI kayabilir,
Dokunmatik kontroller kötü çalışabilir,
Telefon ısınabilir,
Bazı efektler görünmeyebilir,
Uygulama açılırken kapanabilir.
Bu nedenle geliştirme sürecinin başından itibaren gerçek Android cihazlarda test yapın.
Mümkünse yalnızca üst seviye bir cihaz kullanmayın.
Daha düşük donanımlı bir cihazda da test yapmak performans problemlerini daha erken fark etmenizi sağlar.
APK ile Test Etme
Geliştirme sırasında APK paketi oluşturarak oyunu cihazınıza yükleyebilirsiniz.APK oluşturduktan sonra:
Oyunu sıfırdan kurun,
İlk açılışı kontrol edin,
Menüler arasında gezinin,
Bir süre oyun oynayın,
Oyunu arka plana atıp tekrar açın,
İnterneti kapatıp deneyin,
Telefonu yeniden başlatıp kayıtları kontrol edin.
Sadece:
“Oyun açıldı, tamamdır.”
şeklinde test yapmak yeterli değildir.
AAB ve Google Play Yayını
Oyununuzu Google Play üzerinde yayınlamaya hazırlanıyorsanız release sürümünüzü ve AAB paketinizi doğru şekilde hazırlamanız gerekir.Bu aşamada özellikle:
Package Name
Version Code
Version Name
Keystore
App Signing
Target API
gibi teknik ayarları kontrol edin.
Bu konular için forumdaki:
APK ve AAB
Keystore ve İmzalama
Google Play Console
kategorilerindeki rehberlerden yararlanabilirsiniz.
Oyunu Yayınlamadan Önce Kontrol Listesi
Oyununuz hazır görünse bile yayınlamadan önce son bir test yapın.Şunları kontrol etmenizi tavsiye ediyoruz:
- Oyun ilk kurulumda açılıyor mu?
- Menü butonları çalışıyor mu?
- Ses ve müzik ayarları kaydediliyor mu?
- Oyuncunun ilerlemesi kaydediliyor mu?
- Reklam sistemi doğru zamanda çalışıyor mu?
- İnternet kapalı olduğunda oyun hata veriyor mu?
- Oyunda takılı kalınabilecek bir bölüm var mı?
- Uygulama farklı ekran oranlarında düzgün görünüyor mu?
- Geri tuşu doğru çalışıyor mu?
- Pause sistemi çalışıyor mu?
- Oyun yeniden açıldığında kayıtlar duruyor mu?
- APK/AAB release sürümü test edildi mi?
- Uygulama ikonu ve adı doğru mu?
- Sürüm bilgileri doğru mu?
Geliştirici olarak hangi butona basılması gerektiğini zaten bildiğiniz için bazı kullanım problemlerini fark etmeyebilirsiniz.
İlk kez oynayan bir kişinin davranışlarını gözlemlemek oldukça faydalıdır.
Sık Karşılaşılan Mobil Oyun Sorunları
Oyun Telefonda Çok Kasıyor
Sahnedeki model sayısını, texture boyutlarını, ışıkları, gölgeleri, partikül sistemlerini ve çalışan kodları kontrol edin.Sorunun hangi bölümden kaynaklandığını ölçmeden rastgele özellik kapatmak yerine performans profili çıkarmaya çalışın.
Bilgisayarda Çalışıyor Telefonda Çalışmıyor
Editör ve gerçek cihaz ortamı birbirinden farklı olabilir.Mobil platforma özel izinleri, kullanılan eklentileri, shader'ları ve release ayarlarını kontrol edin.
UI Telefonda Kaymış Görünüyor
Canvas ve anchor ayarlarını kontrol edin.Oyunu farklı çözünürlük ve ekran oranlarında test edin.
APK Boyutu Çok Büyük
Texture, ses, video ve 3D model dosyalarınızı kontrol edin.Projede kullanılmadığı halde pakete dahil edilen dosyalar bulunabilir.
Oyun Açılır Açılmaz Kapanıyor
Android loglarını kontrol ederek gerçek hata mesajını bulun.Yalnızca:
“Oyun açılmıyor.”
bilgisi problemin kaynağını anlamak için yeterli değildir.
Reklam Testte Çalışıyor Ama Yayında Çalışmıyor
Test reklam ID'leri ile production reklam ID'lerinin doğru kullanıldığını ve reklam servisinin gerekli yapılandırmalarının tamamlandığını kontrol edin.Yeni Başlayanların Yaptığı Yaygın Hatalar
Mobil oyun geliştirmeye yeni başlayanlarda bazı hatalar oldukça sık görülür.İlk oyunda çok büyük proje seçmek,
Her gördüğü sistemi projeye eklemek,
Optimizasyonu tamamen sona bırakmak,
Projeyi yedeklememek,
Gerçek cihazda test yapmamak,
UI'ı tek ekran boyutuna göre hazırlamak,
Keystore dosyasını kaybetmek,
Reklamları aşırı kullanmak,
Oyuncuya nasıl oynanacağını anlatmamak,
Sadece grafiklere odaklanıp oynanışı ihmal etmek
bunlardan bazılarıdır.
Özellikle ilk projenizde hedefiniz:
“Dünyanın en iyi mobil oyununu yapmak”
yerine:
“Başladığım oyunu düzgün şekilde tamamlayıp yayınlamak”
olursa çok daha fazla tecrübe kazanırsınız.
Oyun Projesini Yedekleyin
Aylarca üzerinde çalıştığınız projenin yalnızca bilgisayarınızda tek kopyasının bulunması büyük risktir.Disk arızası,
Yanlış dosya silme,
Format,
Proje bozulması
gibi durumlarda bütün emeğinizi kaybedebilirsiniz.
Bu nedenle proje dosyalarınızı düzenli olarak yedekleyin.
Mümkünse sürüm kontrol sistemi kullanın.
Ayrıca oyunun:
Keystore,
Kaynak dosyaları,
Grafikleri,
Sesleri,
Proje ayarları
gibi önemli parçalarının yedeklerini de unutmayın.
Son Olarak
Mobil oyun geliştirme sürecinde yalnızca kod yazmayı öğrenmek yeterli değildir.İyi bir mobil oyun geliştirmek;
Oyun tasarımı → Programlama → Grafik → Ses → UI/UX → Performans → Test → Gelir modeli → Paketleme → Mağaza yayını
gibi birçok farklı alanın bir araya gelmesiyle oluşur.
İlk projenizde her şeyi mükemmel yapmak zorunda değilsiniz.
Ancak oyunun çalışması, oynanabilir olması ve gerçekten tamamlanması önemlidir.
Küçük bir oyun geliştirip yayınlamak, yıllarca bitmeyen dev bir projeden çok daha fazla tecrübe kazandırabilir.
Mobil oyun geliştirirken bir sorunla karşılaşırsanız Mobil Oyunlar kategorisinde yeni konu oluşturabilirsiniz.
Konu açarken mümkünse kullandığınız oyun motorunu, hedeflediğiniz platformu, aldığınız hata mesajını ve problemi gösteren ekran görüntüsünü ekleyin.
Herkese iyi geliştirmeler ve bol oyunculu oyunlar.