This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Oyununuzun boyutu, web ve mobil gibi platformlarda başarıyı belirleyen kritik bir etken olabilir. Disk alanının ucuz ve genellikle bol olduğu masaüstü ve konsollarda ise daha az önem taşır.
Apple ve Google, uygulamaların Wifi yerine mobil ağlar üzerinden indirilmesi için boyut sınırları belirlemiştir. Android’de bu sınır, Android App Bundle biçiminde yayımlanan uygulamalar için 200 MB’tır. iOS’te uygulama 200 MB’tan büyükse kullanıcılara bir uyarı gösterilir, ancak kullanıcılar yine de indirmeye devam edebilir.
2017 yılında yapılan bir araştırmada şu sonuç elde edilmiştir: “Bir APK’nın boyutundaki her 6 MB’lık artışta, kurulum dönüşüm oranında %1’lik bir düşüş görüyoruz.” (kaynak)
Poki ve diğer birçok web oyunu platformu, ilk indirme boyutunun 5 MB’tan büyük olmamasını önerir.
Facebook, bir Facebook Instant Game oyununun 5 saniyeden kısa sürede, tercihen 3 saniyeden kısa sürede başlamasını önerir. Bunun uygulama boyutu açısından tam olarak ne anlama geldiği açıkça tanımlanmamıştır, ancak burada 20 MB’a kadar olan boyutlardan söz ediyoruz.
Oynanabilir reklamlar, reklam ağına bağlı olarak genellikle 2 ile 5 MB arasında bir boyutla sınırlıdır.
Uygulama boyutunu iki şekilde optimize edebilirsiniz: motorun boyutunu ve/veya oyun varlıklarının (assets) boyutunu küçülterek.
Uygulamanızın boyutunu hangi öğelerin oluşturduğunu daha iyi anlamak için paketleme sırasında bir derleme raporu oluşturabilirsiniz. Oyun boyutunun büyük bölümünü seslerin ve grafiklerin oluşturması oldukça yaygındır.
Defold, uygulamanızı derlerken ve paketlerken bir bağımlılık ağacı oluşturur. Derleme sistemi, game.project dosyasında belirtilen başlangıç koleksiyonundan (bootstrap collection) başlayarak başvurulan her koleksiyonu (collection), oyun nesnesini (game object) ve bileşeni (component) inceler ve kullanılan varlıkların bir listesini oluşturur. Son uygulama dağıtım paketine yalnızca bu varlıklar dahil edilir. Doğrudan başvurulmayan her şey dışarıda bırakılır. Kullanılmayan varlıkların dahil edilmeyeceğini bilmek yararlı olsa da geliştirici olarak son uygulamaya nelerin dahil edildiğini, tek tek varlıkların boyutlarını ve uygulama dağıtım paketinin toplam boyutunu yine de göz önünde bulundurmanız gerekir.
Motor boyutunu küçültmenin hızlı bir yolu, motorda kullanmadığınız işlevleri kaldırmaktır. Bu işlem, ihtiyaç duymadığınız motor bileşenlerini kaldırmanıza olanak tanıyan uygulama bildirimi dosyasında yapılır. Örnekler:
image.load() kullanarak görüntüleri elle yüklemiyor ve kodlarını çözmüyorsaVarlık boyutu optimizasyonunda en büyük kazanımlar genellikle seslerin ve dokuların boyutunu küçülterek elde edilir.
Defold şu biçimleri destekler:
Defold, 8 bit ve 16 bit PCM Wave dosyalarını destekler. Ogg Vorbis ve Ogg Opus, bir PCM bit derinliği gereksinimi yerine kendi sıkıştırılmış biçimlerini kullanır. Opus kod çözücüsü varsayılan olarak dahil edilmez; .opus kaynaklarını (resources) kullanmadan önce App Manifest içinde Include Sound Decoder: Opus ayarını etkinleştirin.
Ses kod çözücülerimiz, geçerli ses cihazının ihtiyaçlarına göre seslerin örnekleme hızlarını artırır veya azaltır.
Ses efektleri gibi kısa sesler genellikle daha yüksek oranda sıkıştırılırken müzik dosyaları daha az sıkıştırılır. Defold herhangi bir sıkıştırma yapmaz; bu nedenle geliştiricinin her ses biçimi için sıkıştırmayı ayrıca yapması gerekir.
Sesleri harici bir ses düzenleme yazılımında (veya örneğin ffmpeg kullanarak komut satırında) düzenleyip kalitelerini düşürebilir veya biçimler arasında dönüştürebilirsiniz. İçeriğin boyutunu daha da küçültmek için sesleri stereodan monoya dönüştürmeyi de değerlendirin.
Oyununuzda kullanılan dokuları optimize etmek için çeşitli seçenekleriniz vardır, ancak önce bir atlasa eklenen veya karo kaynağı (tile source) olarak kullanılan görüntülerin boyutunu kontrol etmelisiniz. Görüntüleri hiçbir zaman oyununuzda gerçekten gerekenden daha büyük boyutta kullanmayın. Büyük görüntüleri içe aktarıp uygun boyuta küçültmek, doku belleğini boşa harcar ve bundan kaçınılması önerilir. Öncelikle harici bir görüntü düzenleme yazılımı kullanarak görüntülerin boyutunu oyununuzda gereken gerçek boyuta ayarlayın. Arka plan görüntüleri gibi öğelerde küçük bir görüntü kullanıp istenen boyuta büyütmek de uygun olabilir. Görüntüleri doğru boyuta küçültüp atlaslara ekledikten veya karo kaynaklarında kullanmaya başladıktan sonra atlasların kendi boyutlarını da göz önünde bulundurmanız gerekir. Kullanılabilecek en büyük atlas boyutu, platforma ve grafik donanımına göre değişir.
Bu forum gönderisi, betikler veya üçüncü taraf yazılımlar kullanarak birden fazla görüntüyü yeniden boyutlandırmaya yönelik çeşitli ipuçları sunar.
Bir atlas çok büyükse onu birkaç küçük atlasa bölmeniz, çok sayfalı atlaslar kullanmanız veya bir doku profili (texture profile) kullanarak atlasın tamamını ölçeklemeniz gerekir. Defold’un doku profili sistemi, atlasların tamamını ölçeklemenin yanı sıra atlasın diskteki boyutunu küçültmek için sıkıştırma algoritmaları uygulamanıza da olanak tanır. Kılavuzda doku profilleri hakkında daha fazla bilgi edinebilirsiniz. Ne kullanacağınızı bilmiyorsanız daha sonra yapacağınız özelleştirmeler için başlangıç noktası olarak şu ayarları deneyin:
Dokuları optimize etme ve yönetme hakkında daha fazla bilgiyi bu forum gönderisinde bulabilirsiniz.
Kullanacağınız simgeleri belirleyip All Chars onay kutusunu kullanmak yerine bunları Characters alanında belirtirseniz yazı tiplerinizin boyutu daha küçük olur.
Uygulamanın başlangıç boyutunu küçültmenin bir başka yolu, oyun içeriğinin bazı bölümlerini uygulama dağıtım paketinin dışında bırakıp gerektiğinde indirmektir. Defold, gerektiğinde indirmek üzere içeriği dışarıda bırakmak için Live Update adlı bir sistem sunar.
Dışarıda bırakılan içerik, bölümlerin tamamından kilidi açılabilen karakterlere, görünümlere, silahlara veya araçlara kadar her şey olabilir. Oyununuz çok fazla içerik barındırıyorsa yükleme sürecini, başlangıç koleksiyonu ve ilk bölümün koleksiyonu yalnızca o bölüm için gereken asgari kaynakları içerecek şekilde düzenleyin. Bunu, “Exclude” onay kutusu etkinleştirilmiş koleksiyon vekilleri (collection proxy) veya fabrikalar (factory) kullanarak yapabilirsiniz. Kaynakları oyuncunun ilerlemesine göre ayırın. Bu yaklaşım, kaynakların verimli yüklenmesini sağlar ve başlangıçtaki bellek kullanımını düşük tutar. Daha fazla bilgi için Live Update kılavuzuna bakın.
Android derlemeleri hem 32 bit hem de 64 bit CPU mimarilerini desteklemelidir. Android için dağıtım paketi oluştururken hangi CPU mimarilerinin dahil edileceğini belirtebilirsiniz:

Varsayılan olarak bir dağıtım paketi armv7-android ve arm64-android mimarilerini içerir. Üçüncü bir mimari olan x86_64-android de kullanılabilir, ancak fiziksel cihazlardan çok Android emülatörleri, ChromeOS ve Windows Subsystem for Android için yararlı olduğundan varsayılan olarak dahil edilmez. Özellikle bu ortamlardan birini hedeflemeniz gerekmiyorsa dağıtım paketinin boyutunu düşük tutmak için bu seçeneği işaretlemeyin.
Google Play, bir oyunun her sürümü için birden fazla APK’yı destekler. Bu sayede her CPU mimarisi için bir tane olmak üzere iki APK oluşturup ikisini de Google Play’e yükleyerek uygulama boyutunu küçültebilirsiniz.
APK genişletme dosyalarını ve Live Update içeriğini, Asset Portal’daki APKX uzantısı sayesinde birlikte de kullanabilirsiniz.