Manuals
Manuals




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

Bellek kullanımını optimize etme

Doku sıkıştırma

Doku sıkıştırma (texture compression) kullanmak, oyun arşivinizdeki kaynakların (resource) boyutunu azaltır; sıkıştırılmış dokular gereken GPU belleği miktarını da azaltabilir.

Dinamik yükleme

Çoğu oyunda en azından seyrek kullanılan bir miktar içerik bulunur. Bellek kullanımı açısından bu tür içeriği her zaman bellekte yüklü tutmak anlamlı değildir; bunun yerine gerektiğinde yüklemek ve bellekten kaldırmak daha uygundur. Bu, doğal olarak, çalışma sırasında bellek kullanımı pahasına bir içeriği hemen erişilebilir tutmak ile yükleme süresi pahasına onu yüklemek arasında bir ödünleşimdir.

Defold, içeriği dinamik olarak yüklemek için birkaç farklı yol sunar:

Bileşen sayaçlarını optimize etme

Defold, bellek parçalanmasını azaltmak için bir koleksiyon (collection) oluşturulduğunda bileşenler (component) ve kaynaklar için belleği tek seferde ayırır. Ayrılan bellek miktarı, game.project dosyasındaki çeşitli bileşen sayaçlarının yapılandırmasına bağlıdır. Bileşen ve kaynak kullanımını doğru ölçmek için profil çıkarıcıyı (profiler) kullanın ve oyununuzu, gerçek bileşen ve kaynak sayılarına daha yakın en yüksek değerleri kullanacak şekilde yapılandırın. Bu, oyununuzun kullandığı bellek miktarını azaltır (bileşenlerin en yüksek sayılarını optimize etme hakkındaki bilgilere bakın).

GUI düğümü sayısını optimize etme

GUI dosyasındaki en fazla düğüm sayısını yalnızca gereken miktara ayarlayarak GUI düğümlerinin (node) sayısını optimize edin. GUI bileşeni özelliklerindeki Current Nodes alanı, GUI bileşeninin kullandığı düğüm sayısını gösterir.

Öbek boyutu (HTML5)

Bir Defold HTML5 oyununun öbek boyutu (heap size), game.project dosyasındaki heap_size alanından yapılandırılabilir. Oyununuzun bellek kullanımını optimize ettiğinizden ve öbek boyutunu mümkün olan en küçük değere ayarladığınızdan emin olun.

Küçük oyunlarda 32 MB öbek boyutuna ulaşmak mümkündür. Daha büyük oyunlarda 64–128 MB hedefleyin. Örneğin, kullanımınız 58 MB ise ve daha fazla optimizasyon yapmak mümkün değilse, üzerinde fazla düşünmeden 64 MB değerini seçebilirsiniz. Kesin bir hedef boyut yoktur; bu, oyuna bağlıdır. Yalnızca daha küçük boyutları hedefleyin; ideal olarak ikinin kuvvetlerine karşılık gelen değerlerle ilerleyin.

Geçerli öbek kullanımını kontrol etmek için oyununuzu başlatıp en fazla “kaynak tüketen” seviyeyi veya bölümü oynayarak bellek kullanımını izleyebilirsiniz:

if html5 then
    local mem = tonumber(html5.run("HEAP8.length") / 1024 / 1024)
    print(mem)
end

Tarayıcınızın geliştirici araçlarını açıp konsola şunu da yazabilirsiniz:

HEAP8.length / 1024 / 1024

Bellek kullanımı 32 MB düzeyinde kalıyorsa harika! Kalmıyorsa, motorun kendisinin ve sesler ile dokular gibi büyük varlıkların boyutunu optimize etmek için belirtilen adımları izleyin.