« Tüm yayınlar

Limn Engine'de display.perform() ve gizli Fake Canvas sistemi

Limn Engine'in ileri seviye rehberi, display.perform() fonksiyonunu, çift canvas mimarisini ve TileMap'in neden bu fonksiyona bağımlı olduğunu anlatıyor.

Limn Engine için hazırlanan 'Level 4: 10x Developer' rehberi, motorun en kritik iç mekanizmalarından biri olan display.perform() fonksiyonuna odaklanıyor. Bu çağrı, varsayılan setInterval tabanlı oyun döngüsünü requestAnimationFrame ile değiştirerek hem monitör yenileme hızına senkronize, tutarlı bir kare döngüsü hem de gerçek zamanlı zaman damgalarından hesaplanan doğru deltaTime değerleri sağlıyor. Ayrıca bu fonksiyon, arka planda görünmez bir ikinci Display örneği oluşturarak çift canvas render hattını devreye sokuyor.

Bu 'fake canvas' adı verilen offscreen tampon, statik içeriği (arka plan, tile'lar, sabit dekorasyonlar) yalnızca bir kez çizip önbelleğe alarak her karede yeniden çizim ihtiyacını ortadan kaldırıyor. Sonuç olarak binlerce tile'ın her karede tek tek çizilmesi yerine tek bir görüntü olarak ana canvas'a aktarılması, çizim çağrısı sayısında dramatik bir azalma sağlıyor; dinamik nesneler (oyuncu, düşman, mermi) ise her kare normal şekilde ana canvas üzerinde güncelleniyor. display.once bayrağı, önbelleğin ne zaman yeniden oluşturulacağını kontrol ederek bu sistemin verimliliğini koruyor.

Rehberde vurgulanan kritik bir nokta, TileMap sisteminin display.perform() çağrılmadan kesinlikle çalışmamasıdır; çünkü tile'lar fake canvas üzerine render edilir ve bu canvas yalnızca perform() ile oluşturulur. Bu detayı atlayan geliştiriciler, seviyelerini doğru kurmalarına rağmen ekranda hiçbir tile görmeme sorunuyla karşılaşabiliyor. Motorun bu iç işleyişini anlamak, açık dünya oyunları, çok oyunculu projeler veya mobil optimizasyon gibi ileri seviye senaryolarda performans ve doğruluk açısından belirleyici oluyor.