MEWAKILI TAKTIK  ( Representing Tactics )

Kebanyakan real-time strategi permainan yang dibangun di sekitar sistem AI dua-lapis. Dari perspektif tingkat rendah,

unit individu dikendalikan oleh sistem aturan sederhana atau mesin negara, yang mengendalikan perilaku mereka,
interaksi sederhana dengan lingkungan, dan sebagainya. Tapi bagaimana dengan taktik? Bagaimana armies mendapatkan dibangun, dan
bagaimana mereka memerintah pasukannya di medan perang? Sering kali, lebih tinggi-abstraksi, sistem aturan kompleks
digunakan, yang menjadi sistem pakar yang memegang tubuh besar pengetahuan tentang seni perang.
Pada bagian ini kita akan menjelajahi lapisan taktis.

Sebagai contoh sederhana AI kami, kami akan menggunakan aturan klasik berupa:

FACT -> ACTION

Daftar Bahkan kami harus menyimpan semua barang-barang yang kita butuhkan untuk menguji. Sebuah sistem serupa, digunakan pada Microsoft Age of Kings. Berikut adalah, misalnya, dua aturan yang mengontrol frekuensi dari serangan komputer:

(defrule
.(game-time > 1100)
=>
.(attack-now)
.(enable-timer 7 1100)
.(disable-self)
.(chat-local-to-self “first attack”)
)
(defrule
.(timer-triggered 7)
.(defend-soldier-count >= 12)
=>
.(attack-now)
.(disable-timer 7)
.(enable-timer 7 1400)
.(chat-local-to-self “other attacks”)
)

Aturan pertama dipicu setelah 1.100 detik telah berlalu (sekitar 20 menit ke gameplay) dan sekali setiap 23 menit dari yang gelombang awal. Perhatikan bagaimana timer digunakan untuk mengontrol waktu ini kedua gelombang serangan, dan bagaimana selanjutnya serangan hanya dimulai jika 12 atau lebih prajurit yang tersedia untuk mempertahankan posisi kami.
Juga perhatikan fakta bahwa bahasa tindakan sangat simbolis. Kami perlu untuk mengimplementasikan setiap panggilan dan setiap
bahasa pemrograman kita jadi programmer AI dapat bekerja dari tingkat, nyaman tinggi abstraksi.
Bayangkan bahwa kita perlu menciptakan sebuah sistem aturan untuk pertempuran tentara Romawi yang dimulai dengan konfigurasi
ditunjukkan pada gambar 8.8. Saya pertama kali akan memberikan beberapa informasi latar belakang singkat tentang tentara Romawi pada medan perang. Dalam pertempuran Romawi, pasukan dikerahkan di garis depan dengan kurang terlatih infanteri dalam pertama
barisan dan tentara yang lebih berpengalaman di belakang mereka. Beberapa artileri dan dukungan pemanah juga tersedia.
Kavaleri itu disimpan ke minimum dan terletak di sayap untuk melakukan gerakan mengapit musuh di sekitar pasukan. Saat pertempuran dimulai, jajaran pertama dari infanteri (yang kurang terlatih tentara) maju sementara pemanah dan busur hujan proyektil pada musuh. Seperti jarak antara peringkat pertama infanteri ke musuh mencapai ambang batas, tentara melemparkan tombak mereka atau Pila menuju musuh dan terus maju sampai bentrokan akhir benar-benar terjadi. Pada saat itu, legiuner sangat berpengalaman dari kedua gelombang mulai maju ke arah musuh juga. Kemudian, setelah pertempuran singkat, infanteri kurang terlatih akan mundur melalui celah-celah dalam formasi, dan legiuner berpengalaman akan muncul dari kembali, terlibat dalam pertempuran jarak dekat dengan musuh. Pada titik ini, kavaleri dari sayap akan menagih sampai pertempuran itu diselesaikan.+

Gambar 8.8. Tentara Romawi disposisi di medan perang.

Sekarang, mari kita membangun sistem aturan untuk seperti pertempuran. Kita akan mulai dengan beberapa aturan umum yang memulai konfrontasi dan mengikuti sintaks dari Zaman sistem AI Kings untuk kesederhanaan:

(defrule
.(true)
=>
.(shoot-catapults)
.(shoot-arrows)
.(disable-self)
)
(defrule
.(true)
=>
.(enable-timer 1 30)
.(disable-self)
)

Kedua aturan pertama memulai pertempuran. Menyatakan aturan pertama bahwa kedua panah dan ketapel harus terus menembak seluruh pertempuran. Aturan kedua hanya digunakan untuk menunda kemajuan gelombang pertama sebesar 30 detik. Kami mengatur timer sehingga memicu setelah 30 detik, menandakan awal kemajuan infanteri. Melihat bagaimana kita menggunakan fakta yang benar setiap kali kita ingin mengungkapkan aturan yang selalu tersedia untuk eksekusi. Juga perhatikan bagaimana kita memerlukan konstruk seperti menonaktifkan diri secara manual menghapus aturan, sehingga tidak diperiksa di lanjut eksekusi loop:

(defrule
.(timer-triggered 1)
=>
.(attack-first-wave)
.(disable-timer 1)
.(disable-self)
)
(defrule
.(first-wave-distance < 100)
.(have-pilum)
=>
.(throw-pilum)
)
(defrule
.(first-wave-distance < 20)
=>
.(engage-combat)
)
(defrule
.(first-wave-distance < 20)
=>
.(attack-second-wave)
.(disable-self)
)

Terakhir dua aturan memungkinkan kita untuk mulai pertempuran (aturan 3, yang dapat diaktifkan berulang-ulang) dan untuk memberitahukan kedua gelombang yang kita meminta bantuan mereka (aturan empat, yang dinonaktifkan setelah aktivasi pertama). Sekarang, aturan-aturan ini harus menyediakan Anda dengan contoh praktis tentang bagaimana AI taktis dirancang.
Tapi contoh ini hanya menunjukkan bagian dari gambar. Setelah semua, pertempuran koreografer memiliki berurutan didefinisikan
pola, dan sistem aturan yang besar ketika perilaku paralel harus dimodelkan. Sekarang, bayangkan kekuatan seperti sistem di mana aturan berlaku tidak untuk tentara secara keseluruhan, tetapi untuk skuadron tertentu. Setiap tim akan mengevaluasi sistem pakar, dan perilaku yang kompleks akan muncul dari kesederhanaan jelas.
Berikut adalah ketika pilihan harus dibuat atau keseimbangan harus ditemukan. Apakah kita akan menerapkan taktik kami sebagai aturan dan maka sebagai sistem, sangat reaktif muncul, atau akan kita memilih untuk tindakan urutan seperti pada sebelumnya
Contoh Romawi? Sistem sekuensial semua tentang menghafal tindakan CPU dan belajar bagaimanamengalahkan mereka. Gameplay muncul entah bagaimana lebih sulit untuk menguasai karena memerlukan keterampilan lebih dari memori.

Dalam Penutupan
AI taktik adalah bidang besar yang berlangsung selamanya. Kami telah difokuskan pada tiga bidang: Temuan jalan (individu dan
berbasis kelompok), analisis taktik, dan representasi taktis. Tetapi para peserta banyak yang tersisa bagi pembaca untuk
mengeksplorasi: belajar, adaptasi, dan banyak dunia nyata taktik militer.

About iqbalsabas

Seorang mahasiswa yang sedang menggapai impian..

Tinggalkan komentar