Anno 1800’de İnşaat Yapayzekası

DevBlog_ConstructionAI_Header.jpg

Anno 1800 geliştirici günlüklerinde bu hafta oyundaki inşaat yapayzekasına dair bilgi veriliyor.

Jonas (gözlüklü olan) ve Johannes (sırıtmakta olan) olarak Anno 1800’de oynanış programcısı olarak çalışıyoruz, yaşlarımız toplamda 53 ediyor ve Ubisoft BlueByte’te yaklaşık 9 senedir çalışıyoruz. Ondan önceki 44 senede ne yaptığımızı merak ediyorsanız, tabi ki Anno oynayarak geçirdik! Bugün sizlere üzerinde aylarca çalıştığımız bir sistemden bahsedeceğiz: inşaat yapayzekası.

İnsan Davranışına Dair Bir Şeyler Öğretmek

Birçok Anno hayranı için oyunun önemli bir kısmı oyuna yüzlerce saat gömerek ideal şehir şablonunu bulmak. Adada son kalan birkaç boşluğu en iyi nasıl değerlendirebileceğini düşünmek, oraya bir hayvanat bahçesi sığdırabilir miyim acaba diye düşünmek.

Anno tecrübesinin bir diğer önemli kısmını bilgisayar tarafından kontrol edilen rakiplerle birlikte oynamak oluşturuyor. Ancak bu raddede “inanılabilir” bir yapayzeka oluşturmak bir hayli zor, çünkü yapayzeka bazı meseleleri insanlardan daha farklı olarak görüyor ve bu sebeple yapayzekayı inanılabilir kılıp oyuncular tarafından mantıklı görülen hamleler yapmasını sağlamak bize düşüyor.

Anno 1800 serinin Anno 1404 gibi eski oyunlarına geri dönüp yapayzekanın oyuncuyla aynı kuralları takip ettiği bir oyun olacak. İnşaat yapayzekası adı altında yer alan hesaplamalar oyuncu hamlelerini andırır tarzda olacak. Oyuncuya benzer bir şekilde, yapayzea komşunuzun vergiyle bir gelir edinmesi, binaları yaparak üretim yapması ve nüfusunun mutluluğunu arttırıp ihtiyaçlarını karşılayarak oyunun ileriki aşamalarına geçmesi gerekecek. Oyunun yapayzekası oluşturulurkenki birinci kuralımız, agresif olsun, dostcul olsun, tüm yapayzeka karakterlerin oyuncuyla aynı kural çatısı altında yer alması.

Anno içerik bakımından değerlendirdiğinizde büyük bir hazine gibi ve yapayzekanın tüm bu mekanikleri doğru bir şekilde kullanarak oyuncuyla rekabet etmesini sağlamak zor olabiliyor. Örneğin yapayzeka görev tamamlayamadığı için bu mekaniklerden elde edinilen ödüllerden faydalanamıyorlar, dolayısıyla bu eksiği kapatmak için yapayzekaya ihtiyaç duyduğu eşyalara erişebilmesini sağlayan bazı kaynaklar vermek gerekiyor.

Karakteristik Özellikler

Programlar anlık hesaplamalar yapıp bir sonuç üreten unsurlarken, bu programlardan Baron von Malching gibi karakterler yaratmak oldukça zor olabiliyor. Oyundaki her yapayzeka karakterin kendine has özellikleri ve davranış biçimleriyle akılda kalıcı olmasını istiyoruz, bu farklar diplomatik hamlelerinden şehirlerinin yapısına, ekonomide nelere odaklandığından her şeye kadar onların kişiliğini ve yapısını yansıtması gerekiyor.

Oyunda her karakter spesifik bir strateji izleyip bu strateji doğrultusunda kültüre mi askeriye ye mi savunmaya mı yoksa saldırıya mı odaklanacağına karar verecek. Ancak bu mekanik sadece “askeriyeye odaklanır” basitliğinde değil, hangi türdeki gemiler? nelere yatırım? hangi türdeki kültürel binalar? Eğer bir karaktere daha kırsal, tarım alanlarıyla kaplı adalar uyuyorsa bu yönde bir ayarlama yaparak onun belli kategorilerdeki üretime ağırlık vermesini sağlıyoruz. Tekrar von Malching’e dönersek, şehrine gelen turistlerle, şehrinin çekiciliğiyle pek ilgilenmeyecek ve tamamen sanayiye odaklanacak diyebiliriz.

Bu raddede bu karakterlerin sokakları nasıl biçimlendirdiği, şehrinin hangi bölgesinin evler hangi bölgesinin sanayi bölgesi olduğu gibi durumlar da devreye giriyor. Yapayzekaya kalsa her şehir otomatik olarak optimize bir şablonda inşa edilirdi bu da soğuk ve doğal olmayan bir görünüme sebep olurdu, ancak yapılan değişiklikler ve ayarlarla her karakterin kendine has bir şehir biçimlendirmesi olmasını sağladık.

Yukarıda görebileceğiniz simülasyonda yapayzekanın sınırsız kaynaklarla şehir inşa etmesini izliyorsunuz.

Bu kişisel dokunuş, davranışlar ve yapayzekanın zorluk seviyesi yapayzekanın vereceği kararları etkiliyor. Bu parametreler yapayzekanın ne kadar aceleci oynadığından daha önce yapmaya karar verdiği filo veya savunma yapısı için üretim yapacak binalardan kaçar tane yapacağına kadar her şeyi etkiliyor.

Bunu daha net göstermek için yapayzekanın inşaat stratejisine etki eden bazı faktörlerden örnek verelim:

  • Zor yapayzekalar materyalleri ellerine geçtikleri gibi değerlendirmeye çalışıyor.
  • Kolay yapayzekalar ellerinde materyale sahip olsalar bile, bir şeyi inşa etmeden önce bunun kararını vermek için bekliyor.
  • Yapayzekanın ticaret mi yoksa donanma ağırlıklı mı bir filo kurmaya meyilli olabileceğini ayarlayabiliyorsunuz.
  • Yapayzekanın ne kadar hızla genişlemeye çalışacağını, keşfettiği her adaya liman mı atacak yoksa ilk olarak ana adasının gelişmesini mi bekleyecek bunu ayarlayabiliyoruz.

Konum Puanları

Her ne kadar bu parametreler genel davranış biçimlerini oluştursa da, yapayzekanın aynı zamanda haritaya bakarak neyin nerede olmasının daha mantıklı olduğunu hesaplayabilmesi gerekiyor. Oyuncular bu kararı daha içgüdüsel olarak verse de, yapayzekanın bunu anlayabilmesi için elinde bir veri olması lazım.

Yapayzekanın ekmek üretimi için kullanacağı yel değirmeni binası için neleri dikkate aldığını birlikte inceleyelim.

  • Adada alanları olabildiğince optimize olarak kullanmaya çalışıp binalar arasında ufak boşluklar bırakmamaya çalışıyor.
  • Yel değirmeni deponun menzili içerisinde yer almalı.
  • Aynı üretim zincirinin diğer binalarına yakın yer alması fayda sağlar.
  • Üretim binası olduğu için, evlerden uzak olması fayda sağlar.

Bu faktörler doğrultusunda yapayzeka tüm adayı inceleyip her noktaya bir puan veriyor ve yapayzeka bu puanlarla nerenin en ideal olduğunu görüyor. Aynı zamanda adanın fazla kalabalık olması gibi durumlarda yapayzeka “mükemmel olmayan” bazı bölgelere razı olabiliyor. Bu raddede yapayzekanın değerlendirdiği farklı faktörler de söz konusu, ya yapayzekanın birden fazla adası varsa? Belki bu yel değirmeninin farklı bir adaya yapılması daha isabetli?

Anno1800_AIScores-2.gif
Yukarıda yapayzekanın gözleriyle puan sistemini görebiliyorsunuz.

Programcılar: Öğretmenler ve Sorun Çözücüler

Böylesi kompleks bir sistemi bir haftada yapmak mümkün değil, oyunun erken döneminde yapıp bitirmek hiç mümkün değil. Dolayısıyla programlama ekibimizin sürekli bir şekilde yapayzekayı güncellemesi gerekiyor. Oyun tasarım ekibi oyuna yeni bir şey eklediğinde yapayzeka bu yeni içeriği bilmiyorsa, buna uyum sağlayamıyor veya kullanamıyor. Burada devreye tekrar biz girip yapayzekanın bu mekaniği nasıl kullanabileceğini ona öğretiyoruz. Mesela oyuna “yangının” eklendiğini düşünün ve yapayzekanın yangının ne olduğunu anlamadığını hayal edin. Biz burada olaya dahil olup yapayzekaya “yangının kötü” olduğunu anlatıp yangınla başetmek için öncesinde itfaiye istasyonları yapması gerektiğini gösteriyoruz, eğer bunu yapmazsak yapayzeka şehrinin küle dönüşmesini izlemekle yetinecek.

Bu raddede verebileceğimiz bir başka örnek daha var, oyuna nehirleri ekledik bu da dolaylı yoldan oyuna köprülerin eklenmesini sağladığı gibi, bazı binaların da yapılamayacağı bir arazinin ortaya çıkmasına sebep oldu. Yapayzekamız nehrin ne olduğunu bilmediği için nehrin üstüne fabrika yapmaya çalışmak veya diğer taraftaki karayı tamamen görmezden gelmek gibi işlere girişti. Buradaki işimiz tamamen yapayzeka nehri anlatmak ve nerelerde köprü olmasının daha isabetli olduğunu anlayabilmesini sağlamak.

Her zaman oyuna yeni eklenen içeriklerle yapayzekayı güncelliyoruz ve yapayzekanın her zaman size, oyuncuya karşı elindeki tüm malzemeyi kullanacağından emin olmaya çalışıyoruz.

AnnoUnion_AI_Debug.gif

Yukarıdaki gifte yapayzekanın inşaat alanını nasıl gördüğünü inceleyebilirsiniz.

Anno’da birbiriyle içiçe çok sayıda mekaniği ele aldığınızda, inanılabilir isabetli bir yapayzeka oluşturmanın ne kadar zor bir iş olduğunu farkedebilirsiniz. İnşaat yapayzekası tabi ki yapayzeka karakterlerin sadece bir yönünden ibaret, bunla birlikte askeri yapayzeka ve diplomasi yapayzekası da mevcut.

Anno 1800’de inşaat yapayzekası üzerinde çalışırken topluluktan gelen geridönüşler ve yorumları dikkate alarak çalıştık. Umuyoruz yaptığımız çalışmalarla birlikte sadece inanılabilir değil, aynı zamanda eğlenceli ve güzel bir inşaat yapayzekası oluşturacağız.

Yazar: Ali Alper Duman

Sadece #strateji

Yorumla

STRATEGYTURK

Strategyturk'te strateji oyunlarından haberleri, yama notlarını, geliştirici günlüklerini ve daha birçok içeriği Türk strateji oyuncularına Türkçe bir biçimde sunuyoruz. Aynı zamanda yeni çıkan strateji oyunlarının ve eklentilerinin incelemelerini yapıyor, bu oyunlara dair sürekli olarak içerik oluşturuyoruz.

Sosyal medya sayfalarımızı takip ederek strateji oyunlarındaki gelişmelerden haberdar olabilirsiniz.

STRATEGYTURK TWITTER

Europa Universalis IV - 1.28 "Spain" Yamasındaki Yapay Zeka Geliştirmeleri #eu4 #europauniversalis4… https://t.co/LZYz0HHXOs
Hearthstone'da Ekim 2018 Kart Değişiklikleri #hearthstone https://t.co/lnSI8XWE2q https://t.co/QJRT5QiUI5

Strategyturk Flickr