(Cmpe540 projesi, şekiller için dosyaya bakınız)
Giriş: Oyun Yapay Zekası (AI) nedir?
Bilgisayar oyunlarında Yapay Zeka (AI), genellikle rasyonel düşünebilen ve aynı zamanda insan gibi hareket edebilen bilgisayar oyuncuları yaratmak anlamına gelir. Oyun AI’sının ilk sorunları, en iyi hamleyi oynayan zorlayıcı bilgisayar oyuncuları yaparak çözüldü. Ancak oyunlar daha fazla hayal gücü içermeye başladığında, insan gibi davranan ve yanıt veren karakterler tasarlama gibi yeni sorunlar ortaya çıktı.
Geleneksel oyunlar, bir grup oyuncu tarafından oynanır; birkaç örnek arasında satranç, saklambaç, futbol yer alır. Buna karşılık, birçok bilgisayar oyunu tek oyunculu olarak tasarlanmıştır, bu da etkileşim sorununu gündeme getirir. Oyuncu, oyunu belirli sonuçlar üreten deterministik bir makine olarak algılarsa, bu artık bir oyun gibi hissettirmeyebilir. Bu sorunu çözmek için, AI programcıları, oyunlarda insan oyuncular illüzyonunu yaratmak amacıyla rasyonel ajanlar oluştururlar. Oyuncu, zeki ve rasyonel rakiplere karşı kazanma mücadelesiyle karşılaştığında, oyun daha çok bir oyun gibi hissettirir.
İlk bilgisayar oyunları, akıllı rakiplerin gerçek oyunun simülasyonu için yeterli olduğu düzenli tahta oyunlarının dijital versiyonlarıydı. Ancak bilgisayar grafikleri, sesler ve giriş teknolojilerinin gelişmesiyle yeni imkanlar ortaya çıktı. Oyunlar hikayeler, kurgular, sahneler ve karakterler içermeye başladı. Göreceli olarak basit soyutlamalar olan tahta oyunlarının aksine, bilgisayar oyunları sürekli karmaşıklaşan bir fantazi dünyası yaratmaya başladı. Ancak elbette bu dünyaların derinliği yalnızca oyun ve sanat tasarımcılarının hayal gücüne değil, aynı zamanda oyun karakterlerinin yapay zihinlerine de bağlıydı.
Bu noktadan itibaren, oyun AI’sının giderek daha akıllı ve gerçekçi davranışları modellemesi gerekmeye başladı.
Oyunlarda Yapay Zeka Uygulamaları
Oyunlarda yapay zekanın birçok farklı uygulaması bulunmaktadır. Her biri farklı yapay zeka sorunlarına sahip olan birçok oyun türü, geniş bir oyun yapay zekası spektrumu yaratır. Birçok uygulama olasılığına rağmen, oyun yapay zeka algoritmaları ve teknolojileri, grafik veya fizik gibi oyunların diğer unsurlarına kıyasla çok yavaş ilerlemektedir.
Oyun yapay zekasının uygulanması, oyunlardaki yapay zeka ajanlarına hayat vermeyi içerir. Bu görevi, insan davranışını doğrudan taklit etmek kolaydır, çünkü ajanların yalnızca oyun bağlamında zeki olmaları beklenir.
Bazı algoritmalar, oyun yapay zekasının belirli uygulamalarında oldukça faydalı bulunmuş ve yaygın olarak kullanılmaktadır. Bu algoritmalar, oyunlardaki bazı yapay zeka sorunlarını o kadar iyi çözmüştür ki, artık bu sorunlar yapay zeka alanında değerlendirilmemektedir. Çarpışma algılama, yol bulma, görünürlük algılama gibi sorunlar aslında yapay zeka algoritmaları gerektirir, ancak genellikle “fizik” ya da “ağaç araması” gibi farklı isimlerle anılırlar. Yapay zeka, algılama ve akıl yürütmeden karar verme ve davranışa kadar insan zekasının her seviyesini içermekle birlikte, daha çok insan beyninin üst düzey işlevleriyle ilişkilidir.
Birçok oyun türü ve yapay zekaya ihtiyaç duyan çeşitli oyun rolleri vardır. Oyundaki düşmanlar, oyuncunun müttefikleri, diğer karakterler veya birimler, oyun içinde herhangi bir rasyonel ajan, yapay zeka kullanır.
Oyun Rolleri
Oyun, kuralları ve sınırlı dünyasıyla farklı türde yapay zekaların test edilmesi için bir oyun alanı gibidir. Bu farklı yapay zeka sorunları pratikte oyun rolleri olarak sunulur. Bu oyun rolleri, oyun yapay zekasında belirli sorun alanlarını tanımlar. Bilinen yapay zeka rollerinden bazıları taktiksel düşmanlar, iş birliği yapan partnerler, destek karakterleri, stratejik rakipler ve birimlerdir.
Taktiksel Düşman
Taktiksel düşmanlar, en çok birinci şahıs nişancı (FPS) veya üçüncü şahıs nişancı (TPS) oyunlarında kullanılır. İlk ünlü FPS oyunu Wolfenstein, en etkili olanı ise Doom olup, her ikisi de id Software tarafından geliştirilmiştir. İlk FPS oyunlarında taktiksel düşmanlar, oyuncuyu görene kadar durarak beklerdi. Gördüklerinde, oyuncuya ateş etmeye başlarlardı. Bazen ateş etmeyi kesip etrafta dolanırlardı. Genellikle “canavarlar” olarak adlandırılan bu yaratıkların bir hafızası ya da hayatta kalma güdüsü yoktu. Haritanın içsel bir temsiline sahip değillerdi; yalnızca bulundukları odaya aitlerdi. Zihinsel durumları, silah yerine iğne taşıyan bir sivrisineğe benzetilebilir; sürekli gelip oyuncuyu rahatsız ediyorlardı.
Yıllar geçtikçe grafik açısından daha iyi FPS oyunları geliştirildi, ancak “canavar yapay zekası” aynı kaldı. Ancak diğer bir alanda, yani çok oyunculu FPS oyunlarında bilgisayar oyuncularını, diğer bir deyişle “bot”ları simüle etme çabası vardı. İşlemci gücü arttıkça ve oyuncular zeki düşmanlara daha fazla önem vermeye başladıkça, bu botların zekası da ilerledi. Gerçek taktiksel düşmanlara dönüştüler; vuruyor, kaçıyor, saklanıyor ve keskin nişancılık yapıyorlardı. Bu gelişim, yeni algoritmaların uygulanması sonucunda gerçekleşti. Yeni botlar, alanın içsel bir haritasına sahipti. Haritanın belirli noktalarını görünürlük, güvenlik ve diğer soyut kriterler açısından değerlendirerek davranışlarını şekillendiriyorlardı.
Partner (İş Birlikçi Karakter)
Partner karakterleri modellemek, oyuncuyla koordinasyon sağlamayı gerektirir. Genellikle partner karakterler basittir; yalnızca oyuncuyu takip ederler ve yakınlardaki düşmanlara ateş ederler. Bu uygulama yalnızca yol bulma ve düşman algılama için zekaya ihtiyaç duyar. Daha karmaşık bir modelleme, oyuncunun partnerlerine emir verebilmesini sağlamaktır.
Partnerlik düşmanlar için de uygulanabilir. Genel anlamda, bu “takım davranışı” olarak bilinir. Takım davranışı iki şekilde uygulanır. İlk yöntemde, her karakter bağımsız hareket eder, ancak etrafına bakınır ve bir takım arkadaşı gördüğünde ona göre davranır. Takım davranışı, bireysel üyeler arasındaki etkileşimlerin bir sonucu olarak ortaya çıkar. İkinci yöntemde ise yapay zeka, bir üye gibi değil, lider gibi düşünür. Üyelerin bilgisi merkezileştirilir ve küresel bir planlama yapılır; bu da daha organize taktiklerin uygulanmasını sağlar.
Destek Karakteri
Bir oyundaki destek karakterleri, bir filmdeki yan rollere benzer. Macera ve rol yapma oyunlarında oyuncu, oyunun hikaye akışını takip etmek için destek karakterlerle etkileşime girer. Bu karakterler, oyuncunun sormasına izin verilen sorulara önceden programlanmış cevaplar verir. Çok karmaşık yapay zeka kullanmazlar, ancak daha gelişmiş tekniklerle daha iyi destek karakterleri de modellenebilir. Örneğin, bir oyundaki oyuncu olmayan karakterler (NPC), bazı olaylar hakkında bilgi sahibi olabilir ve bu bilgileri birbirlerine aktarabilirler; oyuncuya ya da oyundaki diğer karakterlere yönelik bazı tutumları olabilir.
Stratejik Rakip
Stratejik rakipler, oyun yapay zekasının en bariz ve ilk kullanım alanıdır. Oyuncu, aslında bir algoritma olan bir rakip tarafından zorlanır. Satranç gibi tahta oyunlarında planlama ve öngörü kolayca kullanılabilir. Olasılık içeren oyunlarda ve oyuncuya daha fazla özgürlük tanınan oyunlarda ise ileriye bakmak ve buna göre hareket etmek çok zorlaşır. Oyunun gerçek zamanlı olması, bir zaman kısıtlaması getirir ve görevi daha da zorlaştırır.
Stratejik kararlar, çoğu diğer karar türlerinden daha derindir. Satranç gibi mükemmel bilgiye sahip oyunlarda doğrudan akıl yürütme mümkündür. Ancak belirsizlik ve bilgi eksikliği, zeki bir karar verici ajan oluşturmayı zorlaştırır. Birçok strateji oyununda, programcılar kolay yolu seçerek “hile” yapar ve oyun yapay zekasına, oyun kurallarında izin verilenden daha fazla bilgi verirler. Bu, daha zorlayıcı bir yapay zeka sağlar, ancak oyuncuyu da rahatsız edebilir. Daha iyi bir oyunda, oyuncunun rakibini “aldatabilmesi” gerekir. Bu, yalnızca belirsizlik altında akıl yürütme uygulanmışsa mümkündür. Bilgisayar oyuncusu, bazı oyun bilgilerine “inanabilir” ancak kesin olarak bilemez. Bu tür bir akıl yürütme için Bayesian Ağlar veya Dempster-Schafer Teorisi kullanılabilir.
Birim
İlk strateji oyunlarındaki birimler yapay zeka gerektirmiyordu; yalnızca onlara ne yapmaları gerektiğini söylüyordunuz. Ancak strateji oyunları pusu kurma ya da kaynak toplama gibi daha karmaşık konuları içermeye başladığında, birimler basit sonlu durum makineleri haline geldiler. Ayrıca, gerçek zamanlı animasyonlar daha canlı karakterler yaratmayı mümkün kıldı.
Bazı “tanrı” oyunlarında, birimler oyuncunun birimleri bile değildir; bunun yerine bağımsız ajanlardır. Örneğin, Dungeon Keeper’da yaratıklarınıza ne yapmaları gerektiğini söylemezsiniz; sadece etrafta dolaşırlar, bir düşman gördüklerinde saldırırlar. Bir yaratığın yerini değiştirebilir veya bir tanesinin içine girip onun gözlerinden görebilirsiniz. Black & White oyununda ise oyuncu insanları doğrudan kontrol edemez; yalnızca bir kişinin yerini değiştirebilir veya bir meslek verebilir. Bunun dışında bilgisayar kontrollü insanlar ne yapacaklarına kendileri karar verir. Oyuncunun yaratığı da vardır, ancak oyuncu ona bir tasma kullanarak sınırlı ölçüde kontrol sağlayabilir. The Sims oyununda ise yapay insanlar sınırlı ölçüde “özgür irade”ye sahiptir.
Sonuç
Bilgisayar oyunları ve yapay zeka araştırmaları bir madalyonun iki yüzü gibidir. Yapay zeka araştırmalarının meyveleri bilgisayar oyunlarına hayat verirken, bilgisayar oyunları da gelecekteki yapay zeka araştırmaları için yeni zorluklar sağlar. Ancak elbette bu ikisi arasında önemli farklar vardır. Örneğin, oyunlar endüstriye yöneliktir, oysa yapay zeka araştırmaları bu odak noktalarına sahip değildir. Yapay zeka araştırmaları en iyi çözümlere odaklanırken, oyunlar daha pratik çözümler gerektirir.
Gelecekte oyun karakterleri daha da zeki hale geldikçe, oyunlar daha ilginç ve gerçekçi olacak. Yeni yapay zeka teknikleri ayrıca daha “zeki” oyun türleri yaratabilir. Günlük insan ilişkileri ve duyguları oyunlara daha fazla entegre edilebilir. Oyunlar oyuncudan öğrenebilir ve buna göre davranabilir. Oyunlar kendilerini otomatik olarak haritalar, canavarlar ve diğer oyun öğeleri üreterek genişletebilir.
Oyun yapay zekası, gelişime açık birçok taze dalı olan genç bir ağaç gibidir. Ağacın yaprakları, yapay zeka araştırmalarının ışığına açıkça açılmıştır.
Artificial Intelligence in Computer Games
Introduction: What is game AI?
In computer games, Artificial Intelligence generally means creating computer players that can think rationally and also can act humanly. First problems of game AI were solved by making challenging computer players that play the best move. But as the games involved more imagination, new problems emerged such as designing humanly behaving and responding characters.
Games are traditionally played by a group of players. Few examples are chess, hide-and-seek, football. In contrast, many computer games are single-player. So, there is a problem of interactivity in computer games. If the player perceives the game to be a deterministic machine, giving predictable outcomes, it probably will no longer feel like a game. To solve this problem, AI programmers create rational agents in the game to give the illusion of human players. If the player is faced by the challenge to win against intelligent rational opponents, the game feels more like a game.
First computer games were digitized versions of regular board games in which intelligent opponents were adequate for the simulation of the real game. But the development of computer graphics, sounds and input technologies opened the way to new possibilities. Games began to have stories, plots, scenes and characters. Unlike board games, which were relatively simple abstractions, computer games began to create a constantly complexifying realm of fantasy worlds. But of course the deepness of these worlds not only depended on the imaginations of game and art designers, but also the artificial hearts and minds of the characters in the game. Since then, game AI has been required to model more and more intelligent and realistic behaviour.
Applications of AI in games
There are many different applications of AI in games. Many game genres, each having different set of AI problems, create a wide spectrum of game AI. Despite its many application possibilities, AI algorithms and technologies advance very slowly, compared to the technologies in other aspects of games, such as graphics or physics.
Application of game AI involves giving life to artificially intelligent agents in games. This task is easier to directly imitate human behaviour, because the agents are only expected to be intelligent in the context of the game.
There are some algorithms that proved to be useful and are widely used in certain applications of game AI. These algorithms solved some of the AI problems in games so well that some of these problems are not considered in the AI area anymore. Problems like collision detection, pathfinding, visibility detection in fact do require artificially intelligent algorithms, but they are generally given different names such as physics or tree searching. AI is mostly related with higher order functions of the human brain, although it contains every level of human intelligence from perception and reasoning to deciding and behaving.
Many game genres exist, and there are several game roles that require AI techniques. Enemies, allies of the player, other characters or units, any rational agent in the game uses artificial intelligence.
Game roles
The game, with its set of rules and limited world, is like a playground for testing different kinds of artificial intelligence. These different AI problems are practically presented as game roles. These game roles define certain areas of problems in game AI. Well-known AI roles are tactical enemies, partners, support characters, strategic opponents and units.
Tactical enemy
Tactical enemies are most frequently used in first-person (FPS) or third-person (TPS) shooter games. The first well-known FPS is Wolfenstein, and the most influential one is Doom, both by id software. In first FPS games, tactical enemies simply waited standing until they see the player. When they did, they started firing their guns at the player. They sometimes stopped firing and walked around. Generally called “monsters,” these creatures neither had a memory, nor the motive to flee to survive. They did not have an internal representation of the map; they simply belonged to the room they were in. Maybe their mind can be compared to that of a mosquito, having a gun instead of a proboscis, continuously coming and disturbing the player.
As years passed, FPS games with better graphics were developed, but the “monster AI” seemed the same. But there was another effort to simulate computer players, in other words “bots,” in multiplayer FPS games. As the CPU power increased, and the players started giving more importance to intelligent enemies, these bots’ intelligence advanced further. They became real tactical enemies, hitting, running away, hiding and sniping. This is a result of new algorithms applied. New bots have an internal map of the area. They behave according to their evaluations of certain points in the map in terms of visibility, safety and other abstract criteria.
Partner
Modeling partner characters require coordination with the player. Generally, partner characters are simple. They only follow the player as he goes, and shoot nearby enemies. This implementation only requires intelligence for pathfinding and detecting enemies. A more complex modeling can be allowing player to issue orders to his partners.
Partnership can also be applied to enemies. To generalize, it is squad/team behavior. Team behavior is implemented in two ways. In the first solution, each character behaves independently, but they also look around and if they see a teammate, they behave accordingly. Team behavior is a result of interactions between the individual members. In the second implementation, AI thinks not like a member, but the leader. Knowledge of members is centralized, and a global planning is made, which allows more organized tactics.
Support character
Support characters in a game are similar to the minor roles in a movie. In the adventure and role-playing games, the player generally interacts with the support characters to follow the storyline of the game flow. These characters have preprogrammed responses to the questions player is allowed to ask. They do not use very sophisticated AI, but better support characters can be modeled with more advanced techniques. For example, non-player characters (NPCs) in a game may know about some events and tell them to each other; they may have some attitudes towards the player or other characters in the game.
Strategic opponent
Strategic opponents are the most obvious and first use of game AI. The player is challenged by an opponent, which is in fact an algorithm. In board games like chess, planning and predicting can easily be used. In probabilistic games and games that the player has more freedom, it becomes very difficult to look ahead and act accordingly. The game being real-time, puts a time constraint and makes the task even more difficult.
Strategic decisions are deeper than most other types of decisions. In games with perfect information like chess, direct reasoning is possible. But uncertainty and lack of information make it harder to implement an intelligently deciding agent. In many strategy games, the programmers pick the easy way and “cheat,” meaning that game AI is given more information than what is allowed in the game. This really makes more challenging AI, but it can also annoy the player. In a better game, the player must be able to “deceive” his opponent. This is only possible if reasoning under uncertainty is implemented. The computer player may “believe” in some game information but not know for sure. Bayesian Networks or Dempster-Shafer Theory can be used for this kind of reasoning.
Unit
Units in first strategy games did not require AI. They just did what you told them to do. But as strategy games began to involve more complex issues such as ambushing or resource gathering, units became simple finite state machines. Also, the real-time animations made it possible to create more lively characters.
In some “god” games, units are not player’s units at all; they are instead independent agents. For example, in Dungeon Keeper, you did not say your creatures what to do. They just hung around and attacked if they saw an enemy. You could change the placement of a creature, or you could get into one and control it, seeing through its eyes. In Black & White, the player even cannot control the people; he can only change placement of a person or give a profession to a person. Other than that, the computer people decide what to do. There is also the player’s creature, which has more freedom, except that the player may control it using a leash. The Sims is another example where artificial people have “free will” in a limited scale.
Conclusion
Computer games and AI research are like two sides of one medal. Fruits of AI research give life to computer games, and computer games provide new challenges for future AI research. But of course, there are many differences between these two. For example, games are industry-oriented whereas AI research is not. AI research mainly focuses on the optimum and best solutions, whereas games require more practical solutions.
In the future, as game characters get more and more intelligent, games will get more interesting and more realistic. New AI techniques may also create new and more “intelligent” genres of games. Everyday human relations and emotions may be used more in gameplay. Games may be able to learn from the player, and behave accordingly. Games may enlarge themselves by automatically generating maps, monsters and other game elements.
Game AI is like a young tree, with many fresh branches open to development. Leaves of the tree are wide open to the light of AI research.






























Geri bildirim: İtikat — derleme | YERSİZ ŞEYLER