SON DAKİKA

Donanım

“Doom Oyunu TypeScript’e Taşındı: Tamamlanması 3.5 Trilyon Satır Kod, 90GB RAM ve Bir Yıl Süre Aldı”

Doom Artık TypeScript İle Çalışıyor!

Doom her yerde karşımıza çıkmış bir oyun, değil mi? Ancak, id Software yapımı olan bu oyun, TypeScript’in tip sisteminde yeniden yaratılmamıştı. Ta ki, Dmitri Mitropoulos adlı bir yazılım mühendisinin çabasıyla bu durum değişene kadar.

Bir Yıl Süren Zorlu Çaba

Michigan TypeScript’in kurucusu olan Mitropoulos, oyunu TypeScript içinde çalıştırmanın bir yolunu bulduğunu gösteren bir video yayımladı. Bu, tam bir yıl süren titiz bir çalışmanın sonucuydu.

TypeScript, JavaScript üzerine inşa edilmiş bir dil olup, statik tip kontrolü ekleyerek hataları önceden yakalamayı sağlar. Ancak, bu dilin tür sisteminde bir oyunun çalıştırılması oldukça nadir bir durumdur. Mitropoulos’un portu, üç buçuk trilyon satır tipi içermekte olup toplamda devasa bir boyut olan 177 TB‘a ulaşmaktadır. İlk çerçeveyi derlemesi tam 12 gün sürmekte olup, Doom’un çalışması için her saniye 20 milyon tip örneklendirmesi yapılmaktadır.

Performans Optimizasyonu Potansiyeli

Mitropoulos, Michigan TypeScript Discord sunucusunda yaptıklarını geliştirmek için “1 ila 12 saat” arasında bir süreyi hedeflediğini belirtmiş, bu süreçte potansiyel performans optimizasyonları için notlar almayı başardığını eklemiştir.

Bu proje, özel bir WASM çalışma zamanı kullanılarak gerçekleştirildi ve çerçeveleri göstermek için TypeScript üzerinden işlendi.

Mitropoulos, projenin zorluklarını aşmak için kendi araçlarını geliştirdi, toplamda 12.364 adet el yazması test yazdı ve C, C++, WebAssembly gibi birçok dili öğrenmek zorunda kaldı.

TypeScript’in Sınırlarını Zorlamak

Mitropoulos, projenin büyüklüğüne dikkat çekerek, onun uzayda en büyük TypeScript kod tabanı olabileceğini ifade etti. İlk optimizasyonlardan önce, projenin 1.25 Petabayt veri almasını bekliyordu. Her bir tip, binlerce satır uzunluğundayken, sanal bir makineyi TypeScript içinde geliştirmek zorunda kaldı.

Bu süreçte, Doom’un çalışması için gerekli olan 116 WebAssembly talimatını temsil eden mantıksal uygulamalar geliştirdi. Her bir değer, bir piksel satırını temsil ederken, toplamda 128.000 satır piksel ve 320×200 “çözünürlük” elde edildi. Bu görüntü ASCII ile temsil edildi.

Utilize ettiği Type tracker çalışma zamanının 90 GB‘dan fazla RAM tükettiği belirtilirken, projeyi daha da zorlaştıran birçok araç kullanılamadı. Bu, Doom’un her bir elemanını tiplerle kodlama gibi büyük bir yükümlülük doğurdu. TypeScript’in sınırlamalarını aşmalıyken, ikili algoritmaların ters yazılması gerekti.

Mitropoulos, çok kritik bir noktayı vurgulayarak, bu işin o kadar düşük seviyede olduğunu ifade etti ki, AI bu süreçte yardımcı olamaz. “Ne yazık ki, Grok 3.” diye ekledi.

Projesine neden başladığını açıklayan Mitropoulos, her türlü TypeScript meydan okumasını tamamladıktan sonra Doom’un neden TypeScript içinde çalışamayacağını anlama arzusuyla bu işe girişti. Fakat sonunda, projeyi hayata geçirmek için absürt çözüm yolları bulmayı başardı.

Mitropoulos, projenin detaylarıyla ilgili ikisi teknik bir inceleme içerecek olan yeni videolar hazırlamakta. Ancak şu an için, bu devasa proje tamamlandı ve Doom bir kez daha başka bir platforma taşındı!

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri