Ini mungkin semacam pertanyaan sepele, tapi saya kesulitan memahami ini. Akan sangat menghargai bantuan Anda.
Dalam pengembangan game menggunakan desain berorientasi objek, saya ingin memahami bagaimana agen AI mengakses informasi yang mereka butuhkan dari dunia game untuk melakukan tindakan mereka.
Seperti yang kita semua tahu, dalam game sangat sering agen AI perlu 'memahami lingkungan mereka' dan bertindak sesuai dengan apa yang terjadi di sekitar mereka. Misalnya, agen mungkin diprogram untuk mengejar pemain jika dia cukup dekat, menghindari rintangan saat bergerak (menggunakan perilaku kemudi Menghindari Rintangan), dll.
Masalah saya adalah saya tidak yakin bagaimana melakukannya. Bagaimana agen AI dapat mengakses informasi yang dibutuhkannya tentang dunia game?
Salah satu pendekatan yang mungkin adalah bahwa agen hanya meminta informasi yang mereka butuhkan langsung dari dunia game.
Ada kelas yang disebut GameWorld. Ini menangani logika game penting (loop game, deteksi tabrakan, dll), dan juga memegang referensi ke semua entitas dalam game.
Saya bisa membuat kelas ini menjadi Singleton. Ketika seorang agen membutuhkan informasi dari dunia game, ia hanya mendapatkannya langsung dari instance GameWorld.
Misalnya, agen mungkin diprogram ke Seek
pemain ketika dia dekat. Untuk melakukan ini, agen harus mendapatkan posisi pemain. Jadi itu hanya dapat meminta langsung: GameWorld.instance().getPlayerPosition()
.
Agen juga bisa mendapatkan daftar semua entitas dalam game, dan menganalisisnya untuk kebutuhannya (untuk mencari tahu entitas apa yang dekat, atau apa pun): GameWorld.instance().getEntityList()
Ini adalah pendekatan yang paling sederhana: agen menghubungi kelas GameWorld secara langsung dan mendapatkan informasi yang mereka butuhkan. Namun, ini adalah satu-satunya pendekatan yang saya tahu. apakah ada yang lebih baik?
Bagaimana pengembang game yang berpengalaman mendesain ini? Apakah pendekatan "dapatkan daftar semua entitas dan cari apa pun yang Anda butuhkan" naif? Pendekatan dan mekanisme apa yang ada untuk memungkinkan agen AI mengakses informasi yang mereka butuhkan untuk melakukan tindakan mereka?