Merhaba e-bergi okurları. Hepimizin merakla beklediği Global Game Jam’e sayılı günler kaldı. Dünya’nın dört bir yanından binlerce oyunsever, aynı anda, aynı tema üzerine oyun yapmaya çalışacak. Geçtiğimiz ay ise Ludum Dare’ın 28. Game Jam etkinliği düzenlendi. Bu Game Jam’lerde bir oyunu tamamlamak için yarışmacılara tanınan süre 48 saat. 48 saat içinde 3-4 kişilik gruplar gayet güzel oyunlar çıkarabilmekte. Peki ya bir “yapay zeka”ya oyun yapmasını öğretsek nasıl olurdu? Goldsmiths Üniversitesi’nde bir araştırmacı olan Michael Cook bu soruya cevap bulmak için ANGELINA adını verdiği “oyun yapan yapay zeka” projesine başladı. Birçoğumuz için imkansız görünebilecek bu proje, az önce bahsettiğim Ludum Dare 28’e bile katıldı. Efendim, biri Skynet mi dedi?

Michael Cook bu projeye 2010 yılının kasım ayında doktora (PhD) tezi olarak başladı. Cook’un amacı yapay zekaya bir oyunun sadece görsellerini, sadece seslerini veya sadece mekaniklerini değil, tüm parçalarını birden oluşturabilmesini öğretmekti. Ve ANGELINA HTML5 tabanlı, basit web oyunları ile başlayarak Dünya’ya gözlerini açtı. ANGELINA’nın İlk oyunları “After Squad” ve “Revenge” son derece basit ve tatmin etmeyen oyunlardı. Ancak insan eli değmeden yapılan ilk oyunlar olduğunu düşününce, iyi bir başlangıç olduğunu söyleyebilirim.

Cook 2011 yılında ANGELINA’ya yeni oyun türleri ve mekanikleri öğretmeye başladı. İlk olarak platform oyunu dediğimiz, Mario benzeri oyunları öğretti. Platform tabanlı ilk oyunu “Santa’s Snowfight Escape!” oyun siteleri ve teknoloji dergileri tarafından olumlu yorumlar aldı. Oyun son derece basitti, tek yapmanız gereken zıplayarak kar toplarından kaçmak ve güçlendirmeleri alarak kızağa ulaşmaktı. Tek bölümlük bir platform oyunu için son derece iyi. ANGELINA’nın yaptığı oyunları kronolojik sırayla oynadığınızda oyun yapımı konusundaki gelişimini rahatlıkla tespit edebilirsiniz. (Evet, ANGELINA’nın yaptığı oyunlar oynanabilir ve ücretsiz. Bu linkten ulaşabilirsiniz: http://www.gamesbyangelina.org/games/ ) ANGELINA’nın ilk oyunlarında sadece görseller ve mekanikler varken, yavaş yavaş ses ve görüntü efektleri, bir kaynaktan esinlenmeler başladı. Hatta ANGELINA kendi başına oyun hakkında açıklama yazmayı bile öğrendi. The Guardian’dan Obama ve Karzai arasındaki gerginlik hakkında bir haber okuyup, bundan etkilenerek oyun yapmışlığı bile var.

ANGELINA bu teknolojide bir ilk olduğu için takdir ediliyordu. Ama Cook, bunu biraz da hileli yoldan başarmıştı. Belli başlı şablonları kullanarak birbirinin çok benzeri oyunlar yaptırıyordu. Oyunlarda sadece zıplama ve güçlendirme mekanikleri vardı. ANGELINA bu güçlendirme mekaniğini Cook’un seçtiği parametrelere göre belirliyor, ve her seferinde karakterin ne kadar güçleneceğini değişik şekillerde sunuyordu. Cook bu durumun farkındaydı. Bu yüzden 2012 yılında yeni bir işe koyuldu ve kendisinin Mechanic Miner (Mekanik Bulucu) dediği sistemi geliştirdi. Bu sistem, adından da anlaşılacağı gibi, ANGELINA’ya kendi oyun mekaniklerini yapmayı öğretiyordu. Bir programcı oyun yaparken mekanikleri sayısal değerler ve kodlar üzerinde tasarlar. Yani ekrandaki karakterin zıplaması için belirli bir koordinattaki konumunun artırılması, yürümesi için başka bir düzlemdeki konumunun değişmesi gerekir. ANGELINA’nın Mechanic Miner’ında ise işler tam tersine işliyor. Reflection denilen programlama tekniği ile veriler ve değişkenler kodun yazıldığı ilk haliyle kalmıyor, çalışma sırasında (run-time) algoritmanın çözümüne göre kod yeniden yazılıyor. Kulağa biraz karışık gelmiş olabilir. Cook, Reflection’ı şu sözlerle anlatıyor: “Normal programlar verilen talimatları sırasıyla uygularken, ANGELINA’da kullandığım reflection yeni talimatlar ekleyebiliyor veya var olan talimatı değiştirebiliyor. Bu muazzam bir güç!”.

Peki ANGELINA’nın Mechanic Miner’ı nasıl çalışıyor? İlk olarak çözülemeyecek bir sorun, problem tasarlanıyor. Bir platform oyununda yüksek bir duvarı geçmeyi baz alalım. Sonra bu problemi çözmek için rastgele bir değişken seçiliyor. Mesela seçilen değişken y koordinatındaki konumu, veya karakterin can barı olabilir. Bu değişkenin değeri kullanıcıya verilen bir tuş ile değiştirilebiliyor ve problemin çözümünün sağlanıp sağlanılmayacağına bakılıyor. Eğer can barı seçildiyse, canın azalıp artması problemin çözümü için yeterli olmuyor. Ama y koordinatındaki komut değişkeni seçildiyse karakter zıplayarak duvarın üstünden geçebiliyor.

2012 itibari ile kendi oyun mekaniklerini tasarlamayı öğrenen ANGELINA, uzun bir geliştirme sürecine girdi.

Ta ki geçen ay düzenlenen Ludum Dare 28’e kadar. ANGELINA ilk kez bir Game Jam’e katıldı ve programcıların yaptığı oyunlarla karşılaştırıldı. Game Jam’in teması “You Only Get One” (Sadece Bir Hakkın Var)dı. ANGELINA ise tek canımızın olduğu, yaptığı açıklamaya göre huzursuz bir çoçuğun başından geçenleri anlatan bir oyun tasarladı. İtiraf etmek gerekirse, oyunu ilk oynadığımda fazlasıyla gerildim. Duvarların kırmızı olması, arka plandaki gemi ve çan sesleri, gergin bir atmosfere neden oluyordu. ANGELINA’nın açıklamada belirttiği gibi, tüm görsel ögeler ve sesler internetten kendisi tarafından bulunmuştu. Bu oyunun en önemli yönü ise ANGELINA’nın yaptığı ilk First Person (Birincil Şahıs Kameralı) oyun olmasıydı. Yorumculara göre ANGELINA’nın yaptığı oyun, Game Jam’deki bir çok oyundan çok daha iyi görünüyordu. Michael Cook da Kotaku’da yaptığı açıklamada duvarların kırmızı olması gibi atmosferi kuvvetlendiren bazı durumların tesadüfi oluştuğunu, ama bu gibi bağlantıların da zamanla sağlanacağını söylüyordu. Kimse ANGELINA’dan milyon dolarlık yapımlarla yarışmasını beklemiyor. Ama şu noktada ANGELINA’yı bir indie game developer (bağımsız oyun yapımcısı) olarak görmek hiç de yanlış olmaz.

Yazı boyunca ANGELINA’dan bahsederken istemsizce bir insandan bahseder gibi yazdım. Doğrusu, ANGELINA’nın tek eksiği insan olmaması. Yapılan oyunlar teoride bir oyun. Fakat bir yapay zeka tarafından tasarlandığını belli ediyor. Yine de, bir programcının bile oyun geliştirmeyi öğrenmesi yıllar sürerken, 4 yaşındaki ANGELINA’dan yeni Braid’i yapmasını beklemek haksızlık olur. Karmaşık ve gelişmiş mekanikleri yazmayı öğrendiği zaman ANGELINA’nın adından fazlaca söz ettireceği kesin. Kim bilir, belki EA Games ANGELINA’yı da satın alır?

(Dipnot: ANGELINA aslında “A Novel Game-Evolving Labrat I’ve Named ANGELINA” cümlesinin baş harflerinden oluşuyor. Yani kendi içinde recursive bir isme sahip)

Kaynakça: