apa yang dapat dilakukan untuk meningkatkan AI strategi waktu nyata game gila?

12

Saya mengobrol dengan teman saya tentang apakah AI bisa dibuat atau tidak yang bisa mengalahkan manusia tanpa sumber daya curang dalam permainan strategi waktu nyata. AI yang akan bermain hampir sempurna. AI dari game saat ini memiliki banyak area yang dapat ditingkatkan, kebanyakan dari mereka bergantung pada kecurangan sumber daya, pengembangan basis awal yang lebih baik karena itu, dan menyerang dalam gelombang.

Namun, pertanyaannya adalah apa yang perlu dilakukan untuk memperbaiki hal ini untuk mendapatkan AI terbaik. Juga, jika Anda memiliki contoh permainan di mana fitur tertentu digunakan, itu akan bagus.

Sunting: Ada sedikit klarifikasi yang bisa saya berikan untuk mereka yang belum membaca judul atau beberapa paragraf yang menjelaskan masalah tersebut. Ini tentang game strategi waktu nyata dan AI utama. Itu berarti Strarcraft, Warcraft, General, Red Alert, Age of Empires, AI War dll. Game yang memiliki lebih dari satu tingkat kesulitan, tetapi fokusnya di sini adalah pada tantangan pamungkas.

tenpn memiliki pos fantastis yang diisi dengan sumber daya hebat. Terima kasih, tenpn! Saya berharap lebih banyak orang akan berkontribusi ke arah itu.

altvali
sumber
6
Sungguh pertanyaan ini tidak masuk akal tanpa kasus tertentu. Semua game memiliki cara yang berbeda dalam mengimplementasikan AI, tergantung pada mekanisme permainan yang terlibat, dan 'cara meningkatkannya' akan sangat bervariasi. Paling tidak ini harus Wiki Komunitas, karena tidak ada jawaban 'benar' di sini.
MrCranky
2
Lebih jauh ke yang pertama: Pertimbangkan bahwa Catur adalah permainan strategi.
Rushyo
1
Mengapa kamu mau? Membuat AI yang sempurna untuk permainan Pong benar-benar sepele, dan sama sekali tidak menyenangkan untuk dimainkan. Tujuan dari permainan AI bukanlah untuk mengalahkan pemain, karena itu adalah pemain (bukan komputer) yang seharusnya bersenang-senang.
Ian Schreiber
1
Ian: OP berbicara tentang sesuatu yang sangat berbeda dari Pong. Sangat mudah untuk membuat AI Pong yang tidak ada duanya, atau AI Tic-Tac-Toe. Catur dapat dibawa ke AI yang hanya bisa dikalahkan oleh yang sangat, sangat, sangat baik. Tapi RTS adalah ballgame yang berbeda.
The Communist Duck
2
Anda mungkin tertarik dengan algoritma STRIPS .
user712092

Jawaban:

12

Ini semacam pertanyaan yang sulit dijawab. Untuk menyatakan apa yang perlu ditingkatkan, Anda perlu memiliki AI yang dikenal untuk bekerja. Namun berikut adalah beberapa contoh RTS AI dari aigamedev.com (diperlukan pendaftaran):

Sayangnya sebagian besar hal yang sangat baik ada di balik paywall.

Solusi AI umum adalah Perencana Tindakan Berorientasi Sasaran, yang menggunakan aturan untuk membentuk rencana untuk memuaskan tujuan. Sudah ada beberapa saat sekarang tapi sangat keren. Ada gambaran umum singkat (pdf) yang tersedia di situs Jeff Orkin tentang bagaimana itu diterapkan pada FPS, tetapi prinsip yang persis sama (dengan aturan dan tujuan berbeda) berfungsi untuk RTS.

Banyak RTS akan menggunakan pusaka GOAP, dengan level yang berbeda menerima tujuan dari level di atas, dan memusatkan perhatian pada level detail yang berbeda dari medan perang. Saya membaca artikel yang bagus tentang beberapa AI hex hex wargame WWII yang disusun seperti ini, tetapi untuk semua itu adalah google saya tidak dapat menemukan tautannya sekarang. Bintang emas untuk siapa saja yang dapat membantu saya.

Tentu saja efektivitas GOAPs dan perencana lainnya bergantung pada seberapa baik Anda mengurai dunia game Anda, dan seberapa halus tindakan dan sasaran Anda.

Teknologi umum lainnya termasuk Utility arsitektur (pdf) untuk penilaian dan prioritas, dan papan tulis untuk parsing dunia game.

tenpn
sumber
6

Intinya, jika Anda punya AI

yang bisa mengalahkan manusia tanpa sumber daya curang dalam permainan strategi waktu nyata

maka Anda memiliki permainan tidak ada yang akan bermain karena mereka tidak bisa melewati level pertama.

Bagian tersulit dari pemrograman AI adalah membuat AI dapat dikalahkan, tetapi dikalahkan oleh seseorang dengan sedikit keterampilan. Buatlah terlalu mudah untuk dikalahkan dan pemain akan ditunda karena kurangnya tantangan, buat terlalu sulit dan lagi, orang akan muak dengan dipukuli sepanjang waktu.

Jadi ini bukan tentang membuat AI yang kompleks (yang tidak sulit, setelah semua, AI dapat memproses segala sesuatu dalam area bermainnya secara bersamaan sedangkan pemain hanya dapat memproses apa yang ada di layar), tetapi lebih lanjut tentang membuat game yang seimbang.

Mendesis
sumber
1
Untuk memperjelas, membuat AI yang dapat mengalahkan manusia tidak sulit karena AI dapat mengontrol unitnya dengan granularitas yang lebih baik daripada yang bisa diharapkan oleh manusia mana pun (karena kendala UI). Manusia membutuhkan waktu beberapa detik untuk bereaksi terhadap peristiwa, memilih dan memerintahkan unit, sedangkan AI dapat memperbarui pesanan untuk setiap unit secara individual setiap 'putaran game' sebagai respons terhadap peristiwa apa pun. Namun dalam praktiknya, ini tidak dilakukan karena akan membuat permainan menjadi membosankan. Bagian yang sangat sulit adalah membuat AI cukup bodoh untuk dikalahkan.
Skizz
3
Untuk mengklarifikasi klarifikasi - membuat AI yang tidak terkalahkan tidaklah sulit; membuat AI yang dapat dikalahkan, menantang dan menarik adalah jauh, jauh lebih sulit.
Skizz
3

Banyak yang bisa dilakukan tetapi reaksi langsung saya terhadap pertanyaan ini adalah pertanyaan tandingan: mengapa ada orang yang menginginkan AI RTS utama? Dan mengapa orang ini tidak bermain online saja, melawan lawan manusia lain?

Intinya adalah: itu bukan masalah untuk membuat AI tak terkalahkan, itu masalah membuatnya berpikir cukup cepat (misalnya. Itu harus mengambil jalan pintas) untuk dapat bermain melawan 3 atau bahkan 7 lawan AI pada peta yang sama dengan komputer biasa. Bahkan hari ini, dan besok, dan saya berharap itu tidak akan berubah bahkan sepuluh tahun dari sekarang.

Masalah berikutnya adalah: selama AI mengikuti aturan yang ketat, itu akan dapat dieksploitasi. Bahkan aturan fuzzy akan membuatnya rentan terhadap eksploitasi. AI harus belajar, dan harus membuat kesalahan - disengaja dan tidak disengaja. Itu juga perlu mengejutkan Anda. Dan kemudian Anda bermain melawan manusia lain. Karena AI bahkan tidak mendekati menyalin cara berpikir manusia baik algoritmik maupun dalam hal kekuatan pemrosesan, Anda jauh lebih baik tidak membuang-buang waktu Anda pada satu pemain AI yang hampir tidak terlalu menyenangkan untuk dimainkan melawan yang lain manusia, jika hanya untuk faktor sosial yang terlibat.

LearnCocos2D
sumber
1

Apa yang Anda definisikan sebagai 'kecurangan sumber daya' adalah seperti 'meningkatkan keseimbangan' dalam game balap. 'Boost' digunakan untuk mencoba dan menjaga paket dalam jarak yang relatif dekat satu sama lain untuk menciptakan ilusi perlombaan yang ketat. Jika pemain tidak berada dalam posisi terdepan, hal itu dapat membuat pemain CPU tetap terlihat, dan jika pemain berada dalam posisi memimpin itu membuat tekanan terus dengan menempatkan lawan langsung di ekor Anda, bahkan jika CPU itu sendiri adalah driver biasa-biasa saja.

Dalam RTS Anda melihat kumpulan nilai yang dapat diatur secara optimal. Anda tahu persis berapa lama untuk mendapatkan sumber daya, berapa biaya barang bangunan, peta waktu traversal, dll.

Jika Anda adalah orang yang telah membuat tabel dan memiliki info yang tersedia bagi Anda, itu hanya masalah jumlah data untuk menemukan rasio terbaik untuk output.

Tetapi seberapa menyenangkan bermain melawan musuh yang selalu melakukan hal yang persis sama berdasarkan konteks lapangan bermain?

Jadi, Anda menambahkan kekacauan. Anda memberikan AI efisiensi pada skala geser. Anda memilikinya melecehkan pemain. Jika pemain tampak melakukan terlalu baik, Anda memiliki AI sedikit curang dan memberikan beberapa sumber daya atau bala bantuan tambahan untuk menjaga pemain tetap pada langkah mereka.

Anda ingin pemain merasakan kepuasan menghadapi lawan yang menantang, daripada memukul AI yang lemah atau dibantai oleh Hal9000. Kesempurnaan lawan CPU terletak pada ketidaksempurnaannya. :)

Casey Wagner
sumber
2
Dan berbeda, tetapi terkait: Sangat menyenangkan jika AI terkadang melakukan hal-hal yang secara teknis bukan pilihan terbaik mereka, tetapi menambah sedikit kesenangan dalam permainan, seperti menggunakan unit atau gerakan yang tidak biasa (mis. Pasukan yang jatuh di belakang pangkalan pemain )
Bart van Heukelom
0

Satu hal besar adalah Anda harus mengikuti perkembangan strategi gim. Perkembangan apa pun tidak akan memungkinkan AI memenangkan pertandingan Starcraft 1 (dalam permainan adil) jika berpikir pasukan inti marinir adalah cara untuk memainkan game Terran vs Terran.

Tidak hanya ini akan mencegah AI dari dipukuli secara konsisten karena pilihan strategi usang, tetapi memiliki repertoar pendekatan yang lebih besar untuk permainan akan membuat AI lebih menarik, jika AI membuat pilihan yang layak di sepanjang jalan.

Pohon strategi kaya bahkan memungkinkan slider kesulitan; mis. Zerg AI yang gila akan cenderung mengambil pendekatan yang fleksibel yang dapat beradaptasi dengan musuh dan berkembang dengan cepat ketika diberi kesempatan, tetapi pada tingkat kesulitan normal cenderung mengambil bangunan yang lebih kaku dan kurang rentan terhadap ekspansi massal.

pengguna64554
sumber