İnsan gibi botlar yapmak!

League of Legends’ın geliştirici blogunda yayınlanan bir yazıda botlara daha fazla insansı davranış eklediklerini açıkladılar. Bu yeni güncelleme ile birlikte botlar yetenek atışlarından kaçabilecek. Olağanüstü durumlarda durum değerlendirmesi yapıp ona göre hareket edebilecekler. Tabii ki her zamanki gibi yine orman oynayabilecek zekaya sahip değiller ve sıçra kullanamıyorlar. Fakat bunlar üzerinde çalıştığını açıklayan Riot ekibi bu eksikler üzerine bir program yazma aşamasında olduklarını da belirtti. Detaylı bilgiye aşağıdan ulaşabilirsiniz.

Selamlar!

Yeni League of Legends geliştirici blogu yazısına hoş geldiniz. Bu sefer şampiyonların oynanışından biraz farklı bir konuyu, botları işleyeceğiz. İster inanın ister inanmayın, bot oyunları League of Legends oyun süresinin oldukça büyük bir kısmını oluşturuyor. Kısa süre önce, botların davranışlarını insanlarınkine biraz daha yaklaştıracak bir dizi değişikliği devreye soktuk. Bu güncellemenin perde arkası, ilginizi çekebilir diye düşündük.

Geliştirici blogunu oturtmak için görüş ve düşüncelerinize ihtiyaç duyuyoruz. Bu arada daha iyi, insana daha çok benzeyen botların nasıl yapıldığını gelin beraber öğrenelim. Şimdi sahneyi, botları güncelleme projemizin arkasındaki beyinlerden biri olan Tasarım Analisti RoamingNumeral’a bırakıyoruz. Haydi bakalım!

 Pwyff


Botları Neden Güncelledik?

Bot maçları, 30. seviye oyuncuların bile oynadığı oyunların göz ardı edilemeyecek bir kısmını oluşturuyor. Robotik dostlarımızla geçirilen bu uzun zamanın daha ilgi çekici olabileceğini düşündük.

Hem Yapay Zekaya Karşı, hem gerçek oyunculara karşı oynayan sihirdarlara botlar hakkındaki fikirlerini sorduk. Çıkan en açık sonuç, daha “zor” değil; “insana daha çok benzeyen” botlar olması gerektiğiydi. Yani hareketleri daha zor kestirilebilen; son vuruşu yapmak ve kombo tutturmak gibi oyuncuların odaklandığı öğelere öncelik veren botlar. Bu veriye dayanarak, ayrıca bu tür değişiklikler ileride daha zor botları daha ilginç hale getireceği için, botları insanlara yaklaştırmayı kendimize hedef belirledik.

Ayrıca oyuncular, botların gücü ve tehlikeyi gerçek oyuncularla aynı şekilde algılamadığını belirttiler. Haklıymışlar.

Tehdit Değerlendirmeyi Geliştirme

Tehdit değerlendirme; botların, kendilerinin ve rakiplerinin ne kadar güçlü olduğunu belirlemekte kullandıkları sistemin adı. Botların oyundaki tüm kararlarının altında bu sistem yatar.

Önceki sistemlerimiz, özellikle birinci şahıs bakış açısından oynanan savaş oyunlarında (FPS) çok sık kullanılan bir sistemdi. Bot, gelecekteki davranışlarını ne kadar hasar aldığına göre belirler. Örneğin çok hasar alırsa kaçar, çünkü ölecektir.

Bu mantık FPS’lerde işe yarasa da, League of Legends daha farklı çalışır. Veigar ne kadar büyüsü varsa hepsini bir botun kafasına attığında bot hayatta kalırsa, aslında kaçmaması gerekir. Çünkü o anda bütün büyüleri bekleme süresine girmiştir, savunmasız haldedir ve o küçük @$!#!nun ağzını burnunu kırma vakti gelmiştir.

Yeni sistemlerimiz artık bu tür durumlarla, sadece botun kalan canını değil; aynı zamanda hem botun hem de yakınındaki rakiplerin kaç büyüsü kaldığını dikkate alarak başa çıkacak. Bot tehdit değerlendirme sisteminin genelinde oldukça büyük bir gelişim gözlemledik (kusura bakma Veigar).

Bununla beraber, artık botların her şeyi güllük gülistanlık değil tabii. LoL, insanlar tarafından oynanmak üzere tasarlanan bir oyun olduğu için, bu bizi bazı sorunlarla karşı karşıya bıraktı. Örneğin; oyuncular büyü tanımlarını ve ipuçlarını okudukları için, büyülerin ne işe yaradığını bilirler. Ama oyunun kendisinde bu bilgi yoktur. Dolayısıyla, botlar üzerlerine büyü atılmakta olduğunu anlasalar da, bu büyünün ne işe yarayacağını anlayamıyorlar.

Örnek verecek olursak; Morgana Ruh Prangası’nı kullandığında, bir program sürekli olarak birinin bağı koparıp koparmadığını kontrol eder ve büyü bittiğinde bağı koparmayan herkesi sersemletip, onlara hasar verir. Ancak Morgana ultisini kullanmadan önce oyun (ve elbette botlar), Ruh Prangası’nın hasar verip sersemleteceğini bilemez.

Bu nedenle, bu güncelleme şampiyonların ne kadar hasar verebileceğini oldukça kabataslak hesaplamak zorunda. Botlar, bazen alacakları hasarı doğru hesaplayamadıkları için kazanabilecekleri bir çatışmadan kaçmaya devam edecek. Tıpkı bazen oyuncuların da yaptığı gibi 😉

Ormanı ve Duvarlardan Atlamayı vs. NedenYapmadık

Çünkü botlar duvarların nerede olduğunu, hatta NE olduğunu bile bilmiyor (yazık yahu).

Bu da yine LoL’un insanlar tarafından oynanmak üzere yapılmış olmasıyla alakalı. Bir insan, bir yolun neden kıvrılarak gittiğini anlar: çünkü ortasında duvar vardır! Ama bir bot, sadece kendisine gitmesi için çizilmiş bir yol olduğunu bilir. O yolun üstünde bir engel olduğu için öyle çizilmiş olduğunu bilmez ve o engelin çeşidinin ne olduğunu (duvar, minyon grubu vb.) da anlayamaz.

Bu yüzden, Sıçra veya benzeri yeteneklerle duvarlardan atlamak, botlar için son derece zordur. Duvarların ne kadar kalın olduğunu ya da dar bir alandan sıyrılıp geçmeyi anlatabilecek bir kodun nasıl yazılacağı bilinmeden, bunu otomatik yaptırmak hemen hemen imkansıza yakındır. Bu tür davranışları gerçekleştirilebilir kılmak, çok çok ileri tarihlerde oyunun yer şekli sistemleri değiştirildikçe mümkün olabilecek.

Ormancılık da benzer nedenlere bağlı. Ormancılık, uzaklıktan başka nedenlerden dolayı güvenli ya da optimal olan yolları kullanmaya dayanır. Botların yer şekillerini algılama biçimini değiştirmezsek, ormancı bir bot yapmak ormana bedavadan 300 altın koymaktır.

Bu iki özelliğin de botlarda bulunmasının harika olduğunu düşünüyoruz ve bu yönde çalışacağız, ancak önce bunları mümkün kılacak özellikleri geliştirmemiz gerek. Şimdilik, botları oyuncularla boy ölçüşmeye biraz daha yaklaştıracak başka davranışlara odaklanmayı seçtik.

Yetenek Atışlarından Kaçınmak

Botların oyunculardan en büyük farkı, iki kaşlarının ortasına doğru atılmış yetenek atışlarından bile çoğu zaman kaçınmamaları. Bu davranışı düzeltmek istedik, ama tahmin edin neyle karşılaştık: Evet, botlar nasıl yer şekillerini “göremiyorlarsa”, yetenek atışlarını da göremiyorlar.

Annie Bot eskiden, Nidalee’nin Mızrak Atışı’nı böyle görüyordu:

Annie Bot Ağa Bağlı…

Taranıyor…

Hedef: Nidalee

Can Puanım: Çok

Hedefin Q’su: Var

Eylem: Mekanik canımın çektiği kadar minyon biçmek

——————-

Taranıyor…

Hedef: Nidalee

Can Puanım: Çok

Hedefin Q’su: YOK

Eylem: Minyon biçmeye devam

——————-

Taranıyor…

Hedef: Nidalee

Can Puanım: AZ

Hedefin Can Puanı: Çok

Hedefin Q’su: YOK

Eylem: LAN N’OLUYOR! AHA CANIM BİTTİ! NIDALEE OP RIOT NERF PLS! (Kaçar)

Neyse ki Riot Case, botların zaten aldığı bilgileri kullanarak gelen yetenek atışlarından kaçınabilmesini sağladı. Botlar artık rakiplerinin ne tarafa dönük olduğuna ve hangi yeteneklerin beklemede olduğuna bakarak bazı durumlarda atışlardan kaçınmayı deneyebilecek.

Mızrak Atışı artık Annie’ye böyle görünecek:

Annie Bot Ağa Bağlı…

Taranıyor…

Hedef: Nidalee

Can Puanım: Çok

Hedefin Q’su: Var

Eylem: Minyon biç

——————-

Taranıyor…

Hedef: Nidalee

Can Puanım: Çok

Hedefin Q’su: YOK

[BÜYÜ KULLANIMI TESPİT EDİLDİ]

Büyü Yetenek Atışı Mı: EVET

Hedef Bana Mı Dönük: EVET

Eylem: AYNEN KAÇAYIM

——————-

Taranıyor…

Hedef: Nidalee

Can Puanım: Çok

Hedefin Q’su: YOK

EYLEM: GEL PİSİ PİSİ GEL SEN HELE GEL (Saldır)

Bu sistem elbette mükemmel değil. Örneğin Anivia’nın Buz Kütlesi tam menzilini katedene ya da yeniden etkinleştirene kadar beklemeye girmez. Ahri’nin Aldatan Küre’si hem giderken hem dönerken vurur, dolayısıyla botlar dönüşteki darbeden kaçınmayı beceremeyebilir. Sistem henüz tüm büyülere uygun değil, ama yine de hiç kaçamamalarından iyidir!

Bot Kombolarını ve Yapılandırmalarını Güncellemek

Botları insanlara benzetmekte bir diğer aşama da, büyü kombolarına ve eşya yapılandırmalarına ilgi göstermekti. Kalite kontrol sorumlumuz Riot Afic, Elmas seviyede oyun bilgisiyle botların daha çağdaş kombolar yapıp, daha mantıklı eşyalar çıkmalarına yardımcı oldu.

Dipnot: Artık Annie Sıçra-sersemlet-Tibbers çakabiliyor. Hadi hayırlı kaçışlar.

Daha İnsansı Botlar

Bu kadar değişiklik elbette kodu da ağırlaştırdı. Ekibimizin mühendisleri RiotAaronMike ve RiotWooTang, sunucunun yükünü etkilemeden güncellemeyi dağıtabilmemizi sağladı.

Botların daha etkin çalışmasını sağlayan bir değişiklik de, çevreyi tarama sıklıklarının bağlama göre değişmesi. Başlangıç seviyesi botlar eskisinin üçte biri sıklıkta, Orta seviye botlarsa tehdit seviyesine göre %50-%100 daha seyrek ya da sık tarama yapacak. Bunlar elbette yavaş denecek seviyeler değil, ancak eskisi gibi insanüstü hızla tepki veremiyorlar.

Bütün bu değişiklikler ve ayarlar sayesinde botların insanlara biraz daha yaklaştığını umuyoruz. Botlarımız henüz Elmas, hatta Gümüş seviyesinde bile değiller. Ama şimdilik sorunumuz bu değil. Botları, oyuncuların ilk oyunlarına daha uygun hale getirmek istiyoruz. Bu projenin bilgileri de gelecek!

 RoamingNumeral

Bu yazıyı arkadaşlarınla paylaş!
Yazar

GameXNow

GameX Dijital Eğlence ve Oyun Fuarı'nın resmi oyun haber sitesi!