Tahap pertama dalam pengembangan game saya adalah pengembangan mesin RTS. Saya berencana untuk menulis serangkaian posting tentang masalah yang muncul dan solusinya di blog ini. Dalam posting ini saya akan memberi tahu Anda bagaimana saya mengatur perilaku unit.
Berpikir tentang di mana memulai mesin RTS ini secara umum, saya sampai pada kesimpulan bahwa itu layak dimulai dengan spesifik dan pindah dari itu ke abstraksi. Aplikasi pertama yang muncul di pikiran adalah pengumpulan sumber daya, atau lebih tepatnya, ekstraksi kayu.
Biasanya proses ini dalam sebagian besar strategi terdiri dari kenyataan bahwa karyawan, setelah menerima keputusan untuk memotong pohon, pergi ke pohon, untuk beberapa waktu gelombang kapak di dekatnya dengan kapak, kemudian pergi ke gudang dan mulai lagi.
Artinya, prosesnya terlihat seperti ini:

Sehingga gambar ini benar-benar dapat mengklaim nama robot, tidak memiliki kondisi untuk transisi antara negara dan keadaan awal dan akhir.
Semuanya sederhana di sini: mesin diinisialisasi dengan keadaan "Saya akan memotong", dan akhir pekerjaan terjadi selama perubahan. Kita dapat mengekspresikan transisi antar negara menggunakan kondisi berikut: "mencapai pohon", "memotong setumpuk penuh kayu bakar", "mencapai gudang", "sumber daya yang menyerah". Jika jawabannya ya, mesin masuk ke status berikutnya, jika negatif, tetap dalam kondisi saat ini.

Di masing-masing negara otomat, tindakan yang sesuai dipanggil selama iterasi. Serangkaian tindakan juga dapat dilakukan selama transisi antar negara.
Misalnya, ketika iterasi dalam status βSerahβ, sumber daya dari ransel unit akan ditransfer ke toko sumber daya pemain, dan ketika beralih dari status βGoing to chopβ ke status βRubleβ, animasi yang sesuai akan dimulai.
Saya juga mencatat bahwa berjalan itu sendiri bukan operasi "atom", itu ditemukan dalam banyak perilaku dan itu sendiri adalah perilaku, dan karena itu perilaku ekstraksi pohon sebenarnya menggunakan perilaku berjalan di dalam dirinya sendiri. Artinya, otomat baru dapat diperoleh dengan menggunakan komposisi beberapa automata terbatas lainnya.

Dengan menulis perilaku dengan cara ini, kita mendapatkan batas arsitektural antara detail implementasi perilaku dan kebijakan tingkat tinggi untuk mengelola perilaku ini. Implementasi perilaku pada dasarnya menjadi plug-in untuk sisa permainan, yaitu, perubahan di dalamnya tidak akan memengaruhi kebenaran kerja logika tingkat tinggi.
Perilaku ini bekerja dengan memanggil metode iterasi dari peristiwa Pembaruan objek tipe Unit (peristiwa ini menembak setiap frame). Untuk berkomunikasi dengan seluruh dunia, metode IStateMachineListener dipanggil.
Ini adalah contoh konstruksi mesin negara di game saya. Setelah menerima tim konstruksi, unit pergi ke titik yang ditentukan, dan kemudian memasuki keadaan konstruksi langsung, memindahkan unit bangunan ke gedung. Ketika bangunan telah mengakumulasi cukup unit konstruksi, mesin konstruksi berakhir dan unit menerima perilaku baru, perilaku standar.
Itu saja. Jika Anda suka atau tidak suka format ini, maka tulislah di komentar!