Saya punya proyek untuk membuat game strategi real-time dari awal. Saya masih pada tahap perencanaan awal, tetapi saya telah sedikit pemrograman untuk melihat mekanik.
Saya tahu cara memprogram. Saya juga punya ide bagus tentang bagaimana saya akan menyusun kelas-kelas game dan AI berbasis aturan (mesin negara) untuk pemain komputer.
Saya ingin mengembangkan Doktrin, yang akan memberikan perilaku spesifik pada unit tertentu (tetapi dapat digunakan pada banyak unit pada saat yang sama), seperti Scout, Ikuti Rute Misi, tahan Posisi (serang musuh yang mendekat atau mundur jika kewalahan) , dll ...
Doktrin hanya akan berlaku untuk unit, sehingga akan memiliki perspektif unit, dan tidak menyadari situasi peta keseluruhan.
Computer AI akan menganalisis seluruh peta yang terlihat dan memutuskan soctrine yang akan ditetapkan masing-masing unit tergantung pada seperangkat aturan lain.
Saya melakukan ini di C # dengan OpenGL.
Untuk saat ini, saya tidak punya banyak, hanya beberapa hal dalam ujian sebelum saya memulai konsepsi utama saya. Saya memiliki loop game di mana semua pemrosesan game (di mana saya akan memanggil pembaruan pembaruan, pertempuran, rendering, dll, satu demi satu) akan terjadi, itu disebut sangat sering jika acara Application.Idle.
Sekarang, saya bertanya-tanya. Karena akan ada banyak hal untuk diproses di gameloop, haruskah Komputer AI dan Unit memilih tindakan mereka dalam loop itu atau akankah itu terlalu lambat?
Jika saya ingin semuanya simultan, haruskah saya membuat utas terpisah untuk AI komputer? Atau bahkan utas terpisah untuk setiap unit?
Saya tidak punya banyak pengalaman dengan multi-threading. Apa yang akan menjadi pendekatan terbaik untuk ini?