BTÖ 716 Eğitsel Bilgisayar Oyunları Tasarımı Yapay Zeka DERS SORUMLUSU: HAKAN TÜZÜN HAZIRLAYAN: ÖMER DEMİR 2015-2016 BAHAR EĞITIM -ÖĞRETIM DÖNEMI HACET TEPE ÜNIVERSITESI EĞITIM FAKÜLTESI BILGISAYAR VE ÖĞRETIM TEKNOLOJILERI EĞITIMI BÖLÜMÜ Genel Bakış 1 • Yapay zeka farklı bağlamlarda farklı şeyler anlamına gelebilir. • Akademik bağlamda yapay zekan Turing testini geçebilen sistemler olarak tanımlanmaktadır. • Turing testinde, bir ekran aracılığı ile kullanıcılar sorular sorarlar. Bu sorular yapay zeka tarafından cevaplanır. Eğer kullanıcı cevapların bir insan tarafından üretildiğini düşünürse, sistem Turing testini geçer. Genel Bakış 2 • Oyun geliştiricileri, oyucuların rakiplerini kontrol etmek için geliştirilen kodlara yapay zeka demektedirler. • Yapay zeka araştırmalarında temel amaç insan zekasını taklit etmektir. • Yapay zekanın kalitesi oyunun ne kadar eğlenceli ve zor olduğunu belirler. Eğer oyuncular unreal tournament oynarlar ve rakibin bot veya insan olduğunu ayırt edemezlerse, Bot’un yapay zekası Turing testini geçmiş demektir. Genel Bakış 3 • Eğer bilgisayar oyunu bir spontane olarak oynanan bir tiyatro oyunu ise, oyuncu ana karakterin yöneticisidir. • Diğer tüm karakterler ise yapay zeka tarafından kontrol edilir. Oyun yapay zekasının amacı • Oyuncular, farklı tipteki oyunlardan farklı güçlerde yapay zeka beklemektedirler. ◦ Centipede gibi klasik arkade oyunlarında neredeyse hiç yapay zekaya gerek yoktur. ◦ FPS oyunlarında bir miktar yapay zeka gerekmektedir. ◦ The Sims gibi oyunlarda ise yapay zeka oyunun kendisidir. The Sims oyununun başarısı tamamıyla yapay zekasının gücüne bağlıdır. Oyuncuyu zorlamak 1 • Oyunculara mantıklı bir zorluk yaşatmak herhangi bir bilgisayar oyunundaki yapay zekanın ilk amacı olmalıdır. • Centipede oyunundaki böcekler size dokunursa ölürsünüz ancak sizin onları vurmanız gerekir. • Doom oyununda düşmanların cephanesi bitmez ama sizin biter ve ayrıca düşmanlar size karanlıkta görebilir. • Aslında bu tip oyun özellikleri düşmanların çok zeki olmadıkları gerçeğini telafi etmek için vardır. Robotron 2084 oyunundaki zorluk oyuncuların artan sayıdaki rakipler ile dövüşmesi gerekliliğinden kaynaklanır. Oyuncuyu zorlamak 2 • StarCraft gibi RTS oyunlarında zorlayıcı bir yapay zeka oluşturmak oldukça zordur. • Alpha Centauri gibi gibi TBS oyunlarında ise bu durum daha da zordur. • TBS oyunları düşünce odaklıdır; bu nedenle yapay zeka işlemci gücünü kullanamaz ve hileler yapmaya başlar. Alpha Centauri gibi bir sıra tabanlı strateji oyunu için zorlayıcı bir yapay zeka geliştirmek oldukça zor olabilir çünkü oyuncuların kendisi ile aynı güç ve zayıflığa sahip bir rakip ile dövüşmesi beklenmektedir. Aptalca şeyler yapma (Not Do Dumb Things ) • Oyuncular bir düşmanın bir ağacın etrafından dolaşmayı başaramadığını gördüklerinde inanmamanın askıya alınması (suspension of disbelief) bozulur. • Yapay zekanın aptalca şeyler yapma kotası yapay zekanın ne tip zekayı temsil etmesi gerektiği ile doğrudan ilişkilidir. • Marathon 2 oyununda, oyuncular insanlarla değil uzaylılar ve robotlarla savaşırlar bu nedenle düşmanların bir miktar aptalca şeyler yapmaları kabul edilebilir. Marathon 2 oyununda uzaylılar ile savaşırken, oyuncu rakiplerin ne kadar zeki olabileceğine dair beklentisini düşürür. Tahmin Edilemez Ol (Be unpredictable) • İnsanlar tahmin edilemezlerdir. Bu nedenle insanlar multi-player oyunları oynamak isterler. • Yapay zekanın amacı her zaman mantıklı davranmak olmamalıdır. İnsanlar bazı durumlar mantıksız davranırlar. • Yapay zekanın da bazen mantıksız davranması yapay zekayı tahmin edilemez yapar. Tetris oyununun ihtiyacı olan tek yapay zeka rastgele sayı üreticidir. Tahmin Edilemez Ol 2 • Yapay zeka tasarımcıları düşmanları tahmin edilemez yapmak için «Fuzzy logic» kullanırlar. • Fuzzy logic temelde birkaç mantıklı ihtimali ele alır ve bu ihtimallere biraz rastgelelik ekler. Hikaye Anlatımına Yardım Et (Assist Storytelling) • Örnek olarak, Bir RPG oyununda, oyuncu bir kasabayı işgal ettiğinde kasaba halkının kafelere ve işlerine gittiklerini görmek istemez. Kasaba halkının oyuncuyu gördüklerinde güvenli bir yere kaçmaları beklenir. • Damage incorporated oyununda, oyuncuların kişisel özellikleri bulunmaktadır. Bu özelliklere göre takım arkadaşları savaştan kaçabilir ve taraf değiştirebilirler. Damage incorporated oyununda, yapay zeka oyuncunun takım arkadaşları aracılığıyla oyunun hikayesini anlatmakta önemli bir rol oynar. Hikaye Anlatımına Yardım Et 2 • The Suffering oyununda, oyuncular oyunda karşılaştıkları dost canlısı insan karakterlere davranışları temelinde oyunun sonunu belirlerler. • Oyuncular, oynanamaz insan karakterleri görmezden gelebilirler, öldürebilirler ve bu karakterlerle işbirliği yapabilirler. The Suffering oyununda, yapay zeka oynanamaz karakterin davranışını oyuncunun eylemleri temelinde değiştirir. Yaşayan bir dünya yaratmak • Yapay zeka sadece oyuncuya tehdit oluşturmak yerine yaşayan bir dünya yaratmaya da odaklanmalıdır. • GTA 3 bu duruma iyi bir örnektir. Meyilli Oyun Alanı (The Sloped Playing Field) • Yapay zeka programcıları sıklıkla yapay zekanın oyuncu ile eşit seviyede olması gerektiğinden bahsederler. • Yapay zeka programcıları bunu rakip sayısını ve hit-point’i arttırmak ve rakiplere bütün harita bilgilerini vermek gibi hileli yöntemlerle yapmaktadırlar. • Ancak bunu diğer yöntemlerle yapmak oldukça maliyetlidir. • Ayrıca daha zor rakiplerleri yenmek oyunculara daha fazla keyif verir. Gerçek Nasıl Çok Gerçektir? (How Real is Too Real) • Oyunlar, gerçekten sapacak şekilde gerçek olmamalıdır. • Bazen gerçek olmayan durumlar ilginç ve keyifli oldukları için oluşturulurlar. • James Bond filmlerinde Bond her zaman bir noktada yakalanır ve kötü karakter onu yavaş şekilde öldüren bir alete bağlar. Bu sırada ona bütün planlarını anlatır. • Bir düşmanın çok az canı kaldığında ve rakibi öldürme şansının olmadığını anladığında kaçıp saklanması çok mantıklıdır. Ama bu oyun mekaniğini kötü etkiler. Yapay zeka ajanları ve çevresi (AI Agents and Their Environment) • Yapay zekalar tüm durumlarda başarılı değillerdir. Örneğin, bazıları açık alanda, diğerleri ise kapalı alanda iyidirler. • Önce seviye tasarımının mı yoksa yapay zekanın mı geliştirilmesi gerektiği bir sorun teşkil etmektedir. İki tarafın da iletişim içerisinde olup beraber hareket etmesi gerekmektedir. • Örnek olarak, The Suffering oyunundaki oynanamayan karakterler kapıları açamıyorlardı ve bu nedenle aptal gibi görünüyorlardı. En sonunda onlara bu özelliğin de verilmesi gerektiğine karar verdik. Damage Incorparated oyununda yapay zeka ajanını doğru düzgün çalıştırmak seviyelere pek çok değişiklik yapmayı gerektirdi. Ne Kadar İyi Yeteri Kadar İyidir (How Good is Good Enough) • Yapay zekanın daha da geliştirilmesi gerekliliği, yapay zeka hatalarının oyunu ne kadar etkilediği ile ilişkilidir. Eğer yapay zeka hatası nedeniyle oyun bitiyorsa bu çok kötüdür. Eğer hata nedeniyle oyun biraz kolaylaşıyorsa oyuncular bu duruma göz yumabilirler. • Constellation kuramına göre, hiç bir anlamı olmasa bile, insanlar her türlü eyleme anlam yükleme eğilimdedirler. Bu nedenle yapay zekanın yaptığı rastgele eylemler çok mantıksız olmaması kaydı ile oyuncunun düşmanın bir şeyler yapmak üzere olduğunu düşünmesine yol açar. Damage Incorporated gibi takım arkadaşları ile oynanan bir oyunda yapan zeka ajanlarının oyuncunun beklediği gibi davranmaması oyuncunun oyunu oynama yeteneğine ciddi bir zarar verir. Yazma (Scripting) • Pek çok durumda yapay zekanın spontane olarak düşünüp karar vermesine gerek yoktur. Bazı önceden belirlenmiş noktalarda, eğer bu noktalar bir kez oynanacaksa, yazılmış eylemler gerçekleştirilebilir. • Bu önceden yazılmış eylemler bazı noktalarda kodlamayı kolaylaştırken aynı zamanda yapay zekanın daha zeki görünmesini sağlar. • Örneğin, eşlik eden karakterin konuşması, saklanması ve ani saldırılar. The Suffering oyunu yapay zeka ajanlarını olduğundan daha zeki göstermek için pek çok yazılmış yapay zeka eylemi kullanmıştır. Yapay aptallık • Oyuncular, oyunları genelikle yapay zekaya değil yapay aptallığa sahip olduğu için eleştirir. • Ancak yapay zekanın amacının oyuncuyu zorlamak ve eğlendirmek olduğu düşünüldüğünde pek çok iyi tasarlanmış bilgisayar oyunlarının bunu başardığı görülür. • Pek çok oyuncu single-player oyunlar oynamaktadır bu nedenle programcıların yapay zekanın oyuncuları zorlamak ve eğlendirmek için neler yapması gerektiği üzerinde çalışması gerekir. Kaynakça • Rouse, R. (2005). Game design theory and practice (2. Edition). Texas, USA: Wordware Publishing.