Teknoloji dünyasında heyecan verici bir gelişme yaşandı. Bir geliştirici, yapay zeka teknolojisi Claude'u kullanarak işlevsel bir Nintendo Entertainment System (NES) emülatörü yazmayı başardı. Bu sayede, nostaljik Donkey Kong oyununu artık doğrudan tarayıcınız üzerinden oynayabiliyorsunuz.
Retro oyunlara gönül vermiş geliştirici Rodrigo Delduca'nın imzasını taşıyan bu başarıda, Claude'un yazdığı Lua betikleri büyük rol oynadı. Bu betikler, Delduca'nın kendi geliştirdiği Carimbo 2D oyun motoruyla entegre çalışarak NES emülatörünün hayata geçmesini sağladı. Geliştirilen bu emülatör sayesinde, klasikleşmiş Donkey Kong'u online olarak deneyimlemek mümkün.
NES, en çok emüle edilen oyun konsollarından biri olma özelliğini taşıyor. Kaset tabanlı eski platformlardan biri olması, emülatör geliştirme alanında yeni platformlar için iyi bir başlangıç noktası sunuyor ve yeni emülatör oluşturma teknolojilerini sergilemek için de önemli bir zemin hazırlıyor. Daha önce yapay zekanın oynanabilir oyunlar ürettiğine dair örnekler görmüştük. Ancak emülatörler, geliştiriciler ve yapay zeka için çok daha farklı ve karmaşık bir meydan okuma niteliği taşıyor.
Bu NES emülatörüne dair teknik detaylar, kaynak kodlarının paylaşıldığı GitHub sayfasında görülebilir. Dosya isimlerinden yola çıkarak, NES'in işlemcisi (CPU), grafik işlemcisi (PPU), giriş birimleri, veriyolu (bus) gibi farklı bileşenlere yönelik ayrı betikler olduğunu anlamak mümkün. Tüm bu bileşenlerin, oyun kodlarıyla uyum içinde çalışması gerekiyor.
Lua ve Carimbo
Delduca'nın Carimbo 2D oyun motoru, bu Lua betiklerini çalıştırarak çalışan NES emülatörünü oluşturuyor. Lua, güçlü, verimli, hafif ve gömülebilir bir betik dilidir. Ücretsiz ve açık kaynaklı (MIT lisansı) olması, bu dilin popülerliğini artırıyor. Yapay zeka Claude da bu sağlam, hızlı, taşınabilir ve gömülebilir betik dilinde kod üretebiliyor.
Carimbo, geliştiricisi Delduca tarafından basit ancak kapsamlı bir 2D oyun motoru olarak tanımlanıyor. Modern C++23 kullanılarak geliştirilmiş ve SDL kütüphanesinden faydalanıyor. En önemli özelliği ise Lua ile betiklenebilmesi ve Linux, Windows, macOS, Android, iOS gibi platformların yanı sıra WebAssembly aracılığıyla web üzerinde de yerel olarak çalışabilmesi. Carimbo, boost, Box2D, EnTT, stb, simdjson, sol2, PhysFS, SDL ve OpenAL gibi kütüphaneleri kullanıyor.
Bu emülatörün yanı sıra, Carimbo oyun motoruyla geliştirilmiş başka oyunlar ve demolar da deneyimlemek için mevcut.
Yapılan testlerde, yapay zeka tarafından kodlanan NES emülatörünün biraz yavaş çalıştığı gözlemlendi. Ancak bu durum, kullanılan sisteme ve web tarayıcısına göre değişiklik gösterebilir. Emülatör hakkındaki bazı yorumlar da performansın düşük olduğuna işaret ediyor. Hatta bir yorumda, ses olmadan bile diğer online NES emülatörlerine kıyasla performansın %40 düştüğü belirtilmiş.