Ana içeriğe geç
Programlama

Polygonjs geliştiricisi grafik motorunu Jai diliyle sıfırdan yeniden yazdı

Öne çıkanlar

  • JavaScript'in bellek denetimi eksikliği ve çöp toplayıcı kare düşüşleri sıfırdan yazım kararını tetikledi.
  • Proje, nesne yönelimli yapıdan Jai dilinin veri odaklı fonksiyon ve yapı mimarisine taşındı.
  • Yeni motor three.js bağımlılığını bırakıp kendi WebGPU ve wgpu tabanlı render sistemini kurdu.
  • Bellek yönetimi geri dönüştürülebilir diziler ve geçici ayırıcılarla kare bazında optimize edildi.

Tarayıcı tabanlı yordamsal geometri motoru Polygonjs'in geliştiricisi, sekiz yıllık projesini Jonathan Blow tarafından geliştirilen Jai programlama diliyle sıfırdan yeniden yazarak Polygon v2 sürümünü yayımladı. İlk sürüm JavaScript, TypeScript, Vue.js ve three.js kütüphaneleriyle inşa edildi. Geliştirici, tarayıcı ortamında bellek kullanımını doğrudan denetleyememenin ve çöp toplayıcının yol açtığı kare atlamalarının projeyi sınırlandırdığını belirterek bu köklü mimari değişikliğe karar verdiğini açıkladı.

İki yıl süren yeniden yazım sürecinde geliştirici, nesne yönelimli programlama yapısından yalnızca yapılar ve fonksiyonlar içeren düşük seviyeli mimariye geçti. İlk yılda WebGPU ve wgpu standartlarını öğrenerek kendi sahne çizge ve render altyapısını kurdu. Bellek yönetiminde ise tüm nesneler için geri dönüştürülebilir diziler ve her kare sonunda temizlenen geçici bellek ayırıcılar kullanarak doğrudan sistem seviyesinde tam kontrol sağladı.

Yayımlanan Polygon v2 sürümü, WebAssembly aracılığıyla tarayıcıların yanı sıra Windows, macOS, Linux, Android ve iOS platformlarına doğrudan derlenebiliyor. Sistem, sanatçılar için bağımsız bir çalıştırılabilir dosya ve geliştiriciler için bir yazılım geliştirme kiti sunuyor. Bu geçiş, Electron bağımlılığını tamamen ortadan kaldırırken GPU ve CPU kod üretim süreçlerini tek bir çatı altında birleştirdi.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.