Melakukan AI game 4X yang lumayan

8

Saya mengkodekan game 4X yang agak "sederhana" (jika game 4X bisa sederhana). Ini ruang lingkup indie, dan saya bertanya-tanya apakah ada cara untuk menghasilkan AI yang lumayan tanpa saya menghabiskan waktu berbulan-bulan untuk mengkodekannya.

Permainan ini memiliki tiga bagian pengambilan keputusan utama; pengeluaran poin produksi, pengeluaran poin pergerakan dan pengeluaran poin teknologi (pada dasarnya ada 3 'mata uang' yang berbeda, mata uang yang tidak digunakan pada akhir gilirannya tidak disimpan)

  • Habiskan Poin Produksi
    • Tingkatkan planet (tingkatkan teknologi dan produksinya)
    • Bangun kapal (3 jenis)
  • Pindahkan kapal dari planet ke planet (biaya Poin Gerakan)
    • Pindah untuk menyerang
    • Pindah ke benteng
  • Research Tech (sebagian dapat meneliti teknologi yaitu, seperti dalam Master of Orion)

Rencana bagiku saat ini adalah pendekatan brute force. Pada dasarnya ada 4 opsi luas untuk pemain -

  1. Tingkatkan planet ke produksi dan output teknologinya

  2. Taklukkan planet sebanyak mungkin

  3. Amankan sebanyak mungkin planet

  4. Dapatkan teknologi tertentu sesegera mungkin

Untuk setiap keputusan, saya akan mengulangi opsi yang mungkin dan menghasilkan skor; dan kemudian AI akan memilih keputusan dengan skor tertinggi. Saat ini saya tidak tahu bagaimana 'memadukan keputusan'. Misalnya, AI ingin memperbarui dan menaklukkan planet pada saat yang bersamaan. Saya kira saya dapat memiliki logika lain yang melakukan optimasi brute force pada kombinasi dari 4 keputusan tersebut ....

Setidaknya, itulah rencanaku jika aku tidak bisa memikirkan yang lebih baik. Apakah ada cara yang lebih cepat untuk membuat AI lumayan? Saya tidak perlu yang sangat bagus, untuk menyaingi Deep Blue atau semacamnya, hanya sesuatu yang memiliki ilusi kecerdasan.

Ini adalah pertama kalinya saya melakukan AI pada skala ini, jadi saya tidak berani mencoba sesuatu yang terlalu besar. Sejauh ini saya memiliki pengalaman dengan FSM, DFS, BFS dan A *

Extrakun
sumber
2
Cara yang benar untuk mendekati masalah ini adalah dengan melakukan penelitian sendiri. Terapkan apa yang Anda gambarkan dan lihat seberapa baik kerjanya. Kemudian jadikan itu lebih baik. Setelah Anda merasa memiliki algoritma yang baik, implementasikan kembali AI untuk menggunakan struktur baru. Saya menyarankan membangun ini dalam bahasa scripting seperti Lua, untuk membuatnya lebih mudah untuk membuang kode lama.
Nicol Bolas
Untuk memperjelas, saya bisa mencoba menerapkan apa yang ada dalam pikiran saya. Saya hanya ingin tahu apakah ada cara lain untuk membuat AI selain min-maxing atau metode tradisional 'iterate-and-compute-best-score'.
Extrakun

Jawaban:

4

Sepertinya Anda bisa mencoba Minimax untuk "mencampur" keputusan Anda. Ada pembicaraan di Game AI Conf tahun lalu oleh programmer di belakang Green Corp, dan itulah yang mereka gunakan untuk membangun AI mereka. Mereka membutuhkan banyak waktu untuk memperbaikinya, tetapi hasilnya bagus.

Laurent Couvidou
sumber
1

Jika cukup baik untuk membangkitkan minat (dan Anda harus berasumsi itu akan terjadi, atau Anda dapat berhenti sekarang), dan itu mendukung jaringan, tindakan terbaik untuk hal semacam ini adalah:

  • membangunnya multipemain tanpa AI apa pun
  • memastikan bahwa setiap data yang dikirim ke klien dapat dengan mudah "dipahami" oleh AI
  • buat AI yang sangat sederhana, yang memungkinkan semacam skrip, atau banyak opsi konfigurasi
  • memungkinkan pemain untuk memodifikasi skrip AI, mengikat mereka ke permainan, dan membiarkan AI bermain melalui jaringan, seolah-olah itu adalah pemain nyata

Melakukannya, bagian yang sulit adalah membiarkan AI dituliskan dan digunakan dengan cara ini, dan Anda hanya akan "mengalihdayakan" optimasi AI yang sebenarnya kepada para pemain.

Ini tidak hanya akan memberi Anda AI yang jauh lebih baik, tetapi juga akan menambah banyak nilai pada gim itu sendiri!

o0 '.
sumber