Sementara saya setuju dengan paragraf pembuka DampeS8N (yaitu game AI hanya perlu cukup pintar untuk membuat pemain berpikir bahwa itu pintar), saya merasa bahwa pertanyaan ini perlu sedikit lebih banyak elaborasi. Struktur data yang digunakan bisa FSM untuk semua tingkatan, tetapi itu tidak benar-benar menjawab pertanyaan tentang bagaimana sistem individu bekerja.
Penafian: Saya jarang memainkan game Civilization sehingga pemahaman saya tentang gameplay terbatas. Jika ada kesalahan yang jelas, saya minta maaf. Harap perbaiki saya, dan saya akan dengan senang hati mengedit.
Saya akan mengambil kutipan dari Artikel IGN asli .
1. AI taktis
Pada level terendah, AI taktis menggunakan pasukan yang ada untuk memenangkan pertempuran pada skala lokal.
Ini mungkin bagian paling standar dari subsistem. Ada cara tak terbatas untuk melakukan ini dari menggunakan FSM, Behavior Trees (atau bahkan melakukan tindakan acak, tergantung pada kesulitan AI).
Namun, karena ini adalah permainan berbasis giliran, mirip dengan Risiko, saya pikir apa yang lebih mungkin terjadi adalah bahwa setiap unit diberi skor. Kemudian ada pengganda yang melekat pada skor ini tergantung pada variabel yang berbeda (kesetiaan, bonus medan, dll).
Hasilnya kemudian dihitung dengan sesuatu seperti ini:
If (AI unit score >> (much greater) enemy unit score) Then Completely destroy enemy unit
If (AI unit score > (somewhat greater) enemy unit score) Then Partially destroy enemy unit
If (AI unit score < (somewhat less) enemy unit score) Then Partially destroy AI unit
If (AI unit score << (much less) enemy unit score) Then Completely destroy AI unit
Masuk akal bahwa AI akan mencoba dan memaksimalkan skor ini ketika dalam pertempuran.
Tambahkan nilai epsilon (mis. Peluang kegagalan / keberhasilan acak kecil) dan Anda memiliki AI yang tampak lumayan (tidak ada yang menginginkan lawan yang sempurna, itu tidak menyenangkan!).
2. AI Operasional
Selangkah lebih maju dari itu, AI operasional memilih pertempuran mana yang harus dilawan dan memastikan bahwa pasukan yang diperlukan tersedia.
Saya pikir ada beberapa poin untuk ini:
- Mengevaluasi kekuatan saat ini
- Penguatan unit
- Mengevaluasi perkelahian mana yang harus dipilih / dihindari
Mengevaluasi Kekuatan Saat Ini - Ini hanya menjerit Peta Pengaruh kepada saya. Itu dapat dengan mudah direpresentasikan pada hex grid. Karena subsistem ini berorientasi pada pertempuran, nilai-nilai pengaruh dapat mewakili nilai-nilai kekuatan dari setiap unit di sekitarnya. Jika Anda memiliki pasukan besar yang fokus pada area kecil segi enam, nilai pengaruh akan sangat besar dan AI operasional akan mempertimbangkan hal ini saat mengevaluasi perkelahian yang harus dipilih. Jangan lupa, nilai-nilai pengaruh tentara lawan juga akan dihitung. Ini memungkinkan AI operasional untuk memprediksi potensi ancaman yang masuk.
Bala bantuan unit - Dengan menerima informasi tentang faksi yang berseberangan dari peta pengaruh, AI dapat menentukan unit mana yang paling terancam. AI kemudian dapat mengeluarkan perintah untuk menutup unit untuk pergi dan memperkuat pihak yang terancam.
Mengevaluasi perkelahian mana yang harus dipilih / dihindari - Beberapa situasi dapat terjadi di sini. Jika AI mendeteksi unit berada di bawah ancaman DAN tidak ada unit terdekat untuk membantunya bisa a) memutuskan untuk mengorbankan unit (jika mereka hanya infanteri rendah, bukan jenderal yang tak tergantikan, misalnya) atau b) Pesan unit untuk mundur. Sebaliknya, jika AI mendeteksi unit musuh yang lemah di dekat pasukan, itu bisa memerintahkan unit untuk mengeluarkan musuh ini.
Berikut makalah yang layak yang memanfaatkan peta pengaruh dalam game Strategi Waktu Nyata.
3. AI Strategis
Bergerak lebih tinggi lagi, AI strategis mengelola kekaisaran secara keseluruhan, dengan fokus pada di mana membangun kota dan apa yang harus dilakukan dengan mereka.
"Di mana saya harus membangun kota?" hanya terdengar seperti evaluasi posisi. Program catur dan permainan lain menggunakannya untuk menentukan keinginan posisi tertentu. Sebagai contoh:
Hex A: Dekat dengan sumber daya, di medan tinggi, dekat dengan sekutu, dekat dengan musuh Hex B: Jauh dari sumber daya, di medan tingkat menengah, jarak menengah dari sekutu, jauh dari musuh
Fungsi evaluasi posisi dapat mengambil tiga faktor ini seperti:
Score = Proximity to resources (closer yields a higher score) +
terrain elevation (higher yields higher score) +
proximity to allies (closer is better) +
proximity to enemies (farther is better)
Dan hexagon mana pun yang memiliki skor lebih tinggi, akan berada di tempat kota itu dibangun. Informasi lebih lanjut tentang fungsi evaluasi dapat ditemukan di sini .
Saya rasa AI strategis juga memiliki banyak strategi pseudo-prebaked dalam permainan tergantung pada jenis kemenangan AI akan terjadi.
4. Grand Strategic AI
Di puncak tangga adalah AI strategis besar, yang memutuskan bagaimana memenangkan permainan.
Saya pikir ini mungkin yang paling sederhana dari kelompok itu, dan memberi kesan bahwa itu lebih mengesankan daripada yang sebenarnya. Dalam permainan seperti ini, hanya akan ada sejumlah tipe kemenangan yang terbatas. Artikel itu menyebutkan kemenangan Penaklukan, dengan asumsi bahwa ada juga kemenangan Aliansi, dll, bisa semudah memilih secara acak salah satu jenis dan kemudian meneruskannya ke sistem lain.
EDIT: Tentu saja seperti yang ditunjukkan oleh DampeS8N, jenis peta dapat menentukan kondisi kemenangan terbaik yang harus dicapai, dalam hal ini dapat dikodekan oleh perancang atau semacam fungsi evaluasi yang melibatkan berbagai variabel.
Ringkasan
Saya pikir apa yang benar-benar penting untuk dicatat tentang sistem semacam ini adalah bahwa cara subsistem berlapis, mereka sebenarnya tidak perlu berkomunikasi banyak dengan satu sama lain. Tampaknya menjadi arsitektur top-down dengan komponen yang digabungkan secara longgar. Dari sudut pandang desain teknis bersih dan fleksibel dan mungkin mengambil inspirasi dari Emergent Behavior dan / atau Subsumption Architecture .
Saya benar-benar minta maaf atas panjang posting ini, itu berubah menjadi sedikit binatang :(
Either way, saya harap ini membantu!