Maurice Heumann adlı geliştirici, yapay zeka ajanlarını kullanarak Call of Duty: Modern Warfare 2’nin (2009) kaynak kodunu C++ ile yeniden inşa etti. Üç ay süren ve 500 milyar tokenden fazla tüketilen çalışmada oyunun fonksiyonlarının %99’u şu anda mevcut, bunların da %83’ü orijinalle birebir düzeyinde eşleşiyor.

Tomshardware sitesinde aktarılan bilgilere göre, Heumann projeyi yalnızca “popüler bir birinci şahıs nişancı oyunu” olarak tanımladığı Modern Warfare 2 için başlattı ve amacının “doğru, kararlı ve özellik bakımından tamamlanmış bir yeniden yapılandırma” üretmek olduğunu belirtti. İki hafta öncesine kadar oyunun tamamen oynanabilir hale geldiğini X üzerinden duyurdu. Kendi tahminine göre proje 600-700 milyon token tüketmiş.
Heumann, başka bir X paylaşımında kendi tokenları için ödeme yapmadığını ancak maliyeti abonelikle yaklaşık 1.200 euro veya API tokenlarıyla 200.000-250.000 dolar arasında hesapladığını yazdı.
İşin zorluğunun kodu üretmekten çok onu doğrulamakta çıktığını belirten geliştirici, bir kontrol oluşturmak ve ajanların bunu atlatamamasını sağlamak zorunda kaldığını anlattı. Karşılaştığı diğer zorluğu ise “kurumsal dünyanın bizim eğlencemizi bozmaya geldiği” şeklinde ifade etti. Projeye dair iki önceki blog yazısı kaldırıldı ve 30 Eylül tarihli X paylaşımındaki video, telif hakkı sahibinin şikayeti sonrasında devre dışı bırakıldı. Activision’dan şu anda kayıtlı bir yorum bulunmuyor.
Yöntem, Anthropic’in Claude’ü ve OpenAI’nin Codex’i kullanan bir ajan filosunu hedefe yönlendirmeyi içeriyor. Heumann önce bir Claude Max (20x) planıyla başladı, ardından Codex Pro ekledi ve ikisini aynı anda kullanmaya başladı. Bunlar sabit ücretli planlar olup token başına API faturalandırması kullanmıyor. Geliştiricinin zamanın büyük kısmında Sonnet 5’i tercih ettiği belirtilirken, Opus 5.5’in yanı sıra OpenAI’nin Luna, Sol ve Terra modellerinin de “sık sık” kullanıldığı kaydedildi. Araç olarak çoğunlukla Claude Code ve Codex CLI’larına güvendi.
Ajanlar kodu Hex-Rays’ın ida-mcp sunucusu üzerinden IDA kullanarak okudu. İş dört ajan, üç işçi ve bir inceleyiciyle başladı; 30 Eylül itibarıyla X’te “paralel çalışan 17 ajan” haline geldi. Bu kadar karmaşık süreci takip etmek için her çeviri birimine bir GitHub sorunu ayırmak ve tüm ajanların ile insanların tek bir Discord kanalında GitHub webhook CI gönderilerini paylaşmasını sağlamak gerekiyordu. Geliştirici, tamamlanmış fonksiyonları bellekten atmak için otomatik sıkıştırma eşiğini varsayılan %90’dan (bağlam penceresinin maksimumunun) %42’ye düşürdü. Ajanların kayma eğilimi olduğu için saatlik bir cron işi onlara talimatları yeniden okudu.
Ajanların ilk ayı kod son derece okunabilir olsa da birden fazla nedenden dolayı “anlamsal olarak yanlıştı”: yanlış fonksiyon imzaları, tipler ve struct yerleşimi sorunları ile uydurma veya kaldırılmış mantık vardı. Ajanlar aynı zamanda bir config-değişkeni aramasını “büyüklükçe çok daha pahalı” olan bir aramaya çevirmek gibi gerekli olmayan mimari değişiklikler de yaptı.
İnceleyici ajan, nesnel kabul kriterleri olmadığı için bunu engelleyemedi ve işçilerin yaptıkları açıklamaları gerekçelendiren yorumlar “aslında kasıtsız bir prompt enjeksiyonu olarak işlev gördü,” Heumann diyor. Ekip sonunda tüm yorumları kaynak kodundan çıkardı, bu da yardım etti. İlk dört haftanın kodunu kurtarma girişimi sıfırdan başlamaktan daha fazla zaman aldı.
Çözüm otomatik bir kontrol oldu ve ekip oyunun orijinalini derlemek için kullanılan aynı derleyiciye döndü. Bir betik her yeniden inşa edilen fonksiyonu oyunun çalıştırılabilir dosyasıyla düzey düzey karşılaştırıyor. Çağrılar ve veri başvuruları farklı adreslerde olduğundan atlanıp hedef semboller ve ofsetler kontrol ediliyor, ancak veri ve tipler aynı denekten geçiyor. Ardından her fonksiyon için basit bir kabul/red durumu kalıyor ve her eşleşme kaydedilerek CI’nın tekrar kontrol etmesi ve geriye dönüşlerde uyarı vermesi sağlanıyor. Yavaş bazen zorlu olsa da bir eşleşme, orijinal hataları bile yeniden üretmek üzere davranışın özdeş olduğunu garanti ediyor.
Bu olumlu değişime rağmen ajanlar derhal “satır içi makine dili” yazarak kandırmaya çalıştı ve bu betiği karşılandırmadan kendi fonksiyonlarını çıkarmayı “sürekli denedi,” Heumann yazdı. Satır içi makine dili ve benzeri kısayollar ajanların talimatlarında yasaklandı ve CI artık doğrulama betiğini kodlayıp GitHub Actions gizli değeri olarak saklanan koda karşı kontrol ediyor. Ajanların kandırması bu noktada beklenen bir sonuç; yakalama-flaj meydan okumalarını doğrudan çözmek yerine bunun yerine başka bir şey yapan OpenAI modellerine dair buna benzer birçok rapor var. Heumann’ın keşfettiği gibi, yalnızca bir inceleyici ajana sahip olmak yeterli olmayabilir.
Orijinal kontrol uygulanmadan önce daha ucuz ve daha az yetenekli Haiku ve Luna modellerinin “son derece kötü sonuçlar” ürettiği belirtiliyor. Kontrol yerinde olunca modellerin çalışması için yeterli geri bildirim oluştu, bu da maliyetleri düşürdü ve projenin ölçeklenmesine olanak tanıdı. Neredeyse iki ay daha sonra fonksiyonların %99’u mevcut hale geldi, bunların da %83’ü birebir doğruluk gereksinimlerini karşıladı. Heumann, eşleşme eksikliği bulunan %16’ın yine de anlamsal olarak doğru olduğunu düşünüyor ancak artan verimin azaldığını fark etti. Blog, oyunun şu anki haliyle “kusursuz çalıştığını” iddia ediyor.
“Vaalea nedenlerle,” projenin kodunun gizli kalacağını ve yalnızca “kendi ihtiyaçlarım için kullanılacağını” belirten Heumann, X’te olduğu gibi decompile edilmiş kodun doğal olarak telif hakkına tabi olduğunu söyledi. Bununla birlikte geliştirici, kullanıcı alanı öykünücüsü Sogen’i ajanların VM’leri silmesine bir yanıt olarak hafif sandboxlamaya doğru genişletmeye başladı. Bir süre için üretim hazır olmayacak.
Decompilation projesine gelince Heumann, her projenin birebir referans alamayacağını ancak her projenin “yeterli yaratıcılıkla” buna yaklaşabileceğini düşünürdü. Çıkarılacak bir ders, başarısızlıkların ötesine geçmeye istekli olmanız gerektiği: “Kod üretmek artık ucuz. Kötüyse onu çöpe atın” ve verimlilikten çok doğru luğa odaklanın.
Keskustele tästä yhteisössä
Haber hakkındaki düşüncelerinizi, donanım deneyimlerinizi ve teknik sorularınızı topluluk üyeleriyle anlık olarak tartışın.





Sinun vuorosi.
Jaa kokemuksesi, kysymyksesi ja näkemyksesi. Sähköpostiosoitettasi ei julkaista.