nihai deli gerçek zamanlı strateji oyunu AI geliştirmek için ne yapılabilir?


12

Bir arkadaşımla, gerçek zamanlı bir strateji oyununda kaynak hile yapmadan herhangi bir insanı yenebilecek bir AI'nin yaratılıp yaratılamayacağı konusunda bu sohbetim oldu. Neredeyse mükemmel oynayacak bir AI. Bugünün oyunlarının yapay zekası geliştirilebilecek birçok alana sahip, çoğu kaynak hile, bu nedenle daha iyi bir erken gelişme ve dalgalara saldırmaya dayanıyor.

Yine de soru, nihai AI'yi elde etmek için bu konuda iyileştirmek için ne yapılması gerektiğidir. Ayrıca, belirli bir özelliğin kullanıldığı bir oyun örneğiniz varsa, harika olurdu.

Düzenleme: Başlığı veya sorunu açıklayan birkaç paragrafı okumamış olanlar için sağlayabileceğim az bir açıklama var. Bu, gerçek zamanlı strateji oyunları ve nihai yapay zeka ile ilgilidir. Bu, Strarcraft, Warcraft, Generaller, Red Alert, Empires Çağı, AI Savaşı vb. Anlamına gelir.

tenpn harika kaynaklarla dolu harika bir gönderiye sahiptir. Teşekkürler tenpn! Keşke daha fazla insanın bu yönde katkıda bulunmasını diliyorum.


6
Gerçekten bu soru belirli bir durum olmadan mantıklı değil. Tüm oyunların, ilgili oyun mekaniğine bağlı olarak AI'yi uygulamanın farklı yolları vardır ve 'bunları nasıl geliştirirsiniz' büyük ölçüde değişecektir. En azından bu Topluluk Wiki olmalı, çünkü burada 'doğru' cevap yok.
MrCranky

2
Birincisine ek olarak: Satranç'ın bir strateji oyunu olduğunu düşünün.
Rushyo

1
Neden istiyorsun? Pong oyunu için mükemmel bir AI yapmak kesinlikle önemsizdir ve karşı oynamak kesinlikle eğlenceli değildir. AI oyununun amacı oyuncuyu yenmemek, çünkü eğlenmesi gereken oyuncu (bilgisayar değil).
Ian Schreiber

1
Ian: OP, Pong'dan çok farklı bir şeyden bahsediyor. Rakipsiz bir Pong AI veya Tic-Tac-Toe AI yapmak kolaydır. Satranç, sadece çok ama çok iyilerin yenebileceği bir yapay zekaya götürülebilir. Ancak RTS farklı bir top oyunu.
Komünist Ördek

2
STRIPS algoritması ile ilgileniyor olabilirsiniz .
user712092

Yanıtlar:


12

Cevaplanması biraz zor bir soru. Neyin iyileştirilmesi gerektiğini belirtmek için, çalışabileceğiniz bazı bilinen AI'lara sahip olmanız gerekir. Ancak aigamedev.com adresinden RTS AI bazı örnekleri aşağıdadır (kayıt gereklidir):

Ne yazık ki, gerçekten iyi şeyler çoğu ödeme duvarının arkasında.

Yaygın bir AI çözümü, hedefleri tatmin etmek için planlar oluşturmak için kuralları kullanan Hedef Odaklı Eylem Planlayıcı'dır. Bir süredir oldu ama çok havalı. Orada bir var kısa bir genel bakış bir FPS uygulanma şeklini hakkında Jeff Orkin sitesinde mevcut (pdf), ancak (farklı kurallar ve hedefleri olan) tam olarak aynı prensip RTSS için çalışır.

Birçok RTS, farklı düzeylerde yukarıdaki seviyeden hedefler alan ve savaş alanının farklı ayrıntı düzeyleriyle ilgilenen GOAP'lerin mirasçılarını kullanacaktır. Böyle yapılandırılmış bazı İkinci Dünya Savaşı hex savaş oyunu AI hakkında harika bir makale okudum, ama google için tüm şimdi bağlantı bulamıyorum. Bana yardım edebilecek herkes için altın yıldız.

Tabii ki GOAP'lerin ve diğer planlayıcıların etkinliği oyun dünyanızı ne kadar iyi ayrıştıracağınıza ve eylemlerinizin ve hedeflerinizin ne kadar rafine olduğuna bağlıdır.

Diğer yaygın teknoloji, puanlama ve öncelikler için faydalı mimarileri (pdf) ve oyun dünyasını ayrıştırmak için tahtaları içerir .


6

Mesele şu ki, eğer bir AI'niz varsa

Gerçek zamanlı strateji oyununda kaynak hile yapmadan herhangi bir insanı yenebilir

o zaman hiç kimsenin oynayamayacağı bir oyun var, çünkü birinci seviyeyi geçemediler.

AI programlamanın en zor kısmı AI'yı yenilebilir, ancak biraz yetenekli biri tarafından yenilebilir yapmaktır. Dövmeyi çok kolay hale getirin ve oyuncular bir meydan okuma eksikliğiyle ertelenecek, çok zor hale getirecek ve tekrar, insanlar her zaman dövülmekten bıkacaklar.

Bu yüzden karmaşık AI oluşturmakla ilgili değil (sonuçta, AI, oyun alanındaki her şeyi aynı anda işleyebilirken, bir oyuncu sadece ekranda olanları işleyebilir), ancak daha dengeli bir oyun oluşturmakla ilgili.


1
Açıklığa kavuşturmak gerekirse, herhangi bir insanı yenebilecek bir yapay zeka yapmak o kadar zor değildir, çünkü AI birimlerini herhangi bir insanın umabileceğinden (UI kısıtlamaları nedeniyle) daha iyi bir ayrıntı düzeyinde kontrol edebilir. Bir insan olaylara tepki vermek, birimleri seçmek ve komuta etmek için saniyeler alırken, AI herhangi bir olaya tepki olarak her bir 'oyun dönüşünü' her birimin siparişlerini tek tek güncelleyebilir. Ancak pratikte bu, oyunu sıkıcı hale getireceği için yapılmaz. Gerçekten zor kısmı yapay zekayı yenmek için yeterince aptal hale getirmektir.
Skizz

3
Açıklığa kavuşturmak için - rakipsiz AI yapmak o kadar da zor değil; katlanılabilir, zorlu ve ilgi çekici yapay zekayı yapmak çok daha zor.
Skizz

3

Bir çok şey yapılabilir ama bu soruya hemen tepki göstermem bir karşı soruydu: neden nihai RTS yapay zekâsını isteyen biri olsun ki? Ve bu kişi neden sadece başka bir insan rakibe karşı çevrimiçi oynamıyor?

Püf noktası şudur: AI rakipsiz hale getirmek için sorun değil, onu yeterince hızlı düşünmek yapma problem (. Örneğin önerilen sahiptir 3'e karşı oynamak muktedir veya a ile aynı harita üzerinde bile 7 AI rakipleri kestirmeleri) sıradan bilgisayar. Bugün ve yarın bile ve on yıl sonra bile değişmeyeceğini düşünüyorum.

Sonraki konu: AI katı kurallara uyduğu sürece sömürülebilir olacaktır. Bulanık kurallar bile onu istismarlara karşı savunmasız hale getirecektir. AI, kasıtlı ve kasıtsız olmak üzere hatalar yapmak zorunda kalacaktı. Ayrıca sizi şaşırtmak gerekir. Ve sonra başka bir insana karşı oynuyorsun. AI, bir insanın hem algoritmik hem de işlem gücü açısından düşünme şeklini kopyalamaya bile yaklaşmadığından, tek bir oyuncu AI'da zamanınızı boşa harcamaktan çok daha iyi değilsiniz. insan, yalnızca ilgili sosyal faktörler içinse.


1

'Kaynak aldatma' olarak tanımladığınız şey yarış oyunlarında 'dengeleme dengelemesi' gibidir. 'Güçlendirme', sıkı bir yarış yanılsaması yaratmak için paketi birbirine nispeten yakın tutmaya çalışmak için kullanılır. Oyuncu kurşun değilse, görünürde CPU oyuncu tutabilir ve oyuncu eğer olduğunu kurşun CPU kendisi vasat bir sürücü olsa bile, kuyruğunda doğrudan rakiplerini koyarak üzerindeki baskıyı tutar.

Bir RTS'de, en uygun şekilde ayarlanabilen bir değerler koleksiyonuna bakıyorsunuz. Bir kaynak edinmenin ne kadar sürdüğünü, yapı öğelerinin maliyetini, harita geçiş sürelerini vb. Tam olarak bilirsiniz.

Tabloları oluşturan ve sizin için hazır bilgilere sahip olan sizseniz, çıktı için en iyi oranları bulmak için verileri zorlayan bir sayı meselesidir.

Ancak oyun alanının içeriğine göre her zaman aynı şeyi yapan bir düşmana karşı oynamak ne kadar eğlenceli?

Yani kaos eklersiniz. Yapay zekaya kayan bir ölçekte verimlilik verirsiniz. Oyuncuya taciz ettin. Oyuncu çok iyi gidiyor gibi görünüyorsa, AI'yı biraz aldatırsınız ve oyuncuyu ayak parmaklarında tutmak için biraz ekstra kaynak veya takviye verirsiniz.

Oyuncunun zayıf bir yapay zekaya atmak veya Hal9000 tarafından katledilmek yerine zorlu bir rakiple karşı karşıya kalmanın memnuniyetini hissetmesini istiyorsunuz. CPU rakibinin mükemmellik kusurunda yatıyor. :)


2
Ve farklı, ama ilgili: AI bazen teknik olarak en iyi seçeneği olmayan şeyler yaparsa, ancak oyuna sıra dışı birimler veya hareketler (örneğin oyuncunun üssünün arkasındaki hava atışı birlikleri) gibi biraz eğlence katmak güzeldir. )
Bart van Heukelom

0

Büyük bir şey, oyunun stratejik gelişimine ayak uydurmanız gerektiğidir. Hiçbir gelişme, bir çekirdek deniz ordusunun Terran ve Terran oyunu oynamanın yolu olduğunu düşünürse, AI'nın Starcraft 1 maçını (adil oyunda) kazanmasına izin vermez.

Bu, eski stratejiyi seçmesi nedeniyle yapay zekanın sürekli olarak dövülmesini engellemekle kalmaz, aynı zamanda yapay zeka yol boyunca uygulanabilir seçimler yaparsa, oyuna daha fazla yaklaşım repertuarına sahip olmak AI'yı daha çekici hale getirecektir.

Zengin bir strateji ağacı bir zorluk kaydırıcısına bile izin verir; örneğin çılgın Zerg AI, düşmana adapte olabilen ve fırsat verildiğinde hızla genişleyebilen esnek yaklaşımlar alma eğiliminde olacaktır, ancak normal zorluk seviyesinde daha sert yapılar seçmesi ve kitle genişlemelerine daha az eğilimli olması muhtemeldir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.