Saya membuat game aksi berbasis peta 2D dengan desain interaksi yang sama seperti Diablo II. Dengan kata lain, pemain mengklik di sekitar peta untuk memindahkan pemain mereka. Saya baru saja selesai bergerak pemain dan saya pindah ke pathfinding.
Dalam permainan, musuh harus mengisi karakter pemain. Ada juga lima jenis medan berbeda yang memberikan bonus gerakan berbeda. Saya ingin AI memanfaatkan bonus medan ini saat mereka mencoba menjangkau pemain.
Saya diberitahu untuk memeriksa algoritma pencarian A * (http://en.wikipedia.org/wiki/A*_search_algorithm). Saya melakukan permainan ini dalam HTML5 dan JavaScript, dan menemukan versi dalam JavaScript: http://www.briangrinstead.com/blog/astar-search-algorithm-in-javascript Saya mencoba mencari tahu cara men-tweak itu meskipun.
Di bawah ini adalah gagasan saya tentang apa yang perlu saya ubah. Apa lagi yang perlu saya khawatirkan?
- Ketika saya membuat grafik, saya perlu menginisialisasi array 2D yang saya berikan dengan traversal peta yang sesuai dengan jenis medan yang berbeda.
- di graph.js: definisi "GraphNodeType" perlu dimodifikasi untuk menangani 5 jenis medan. Tidak akan ada dinding.
- di astar.js: Skor g dan h perlu dimodifikasi. Bagaimana saya harus melakukan ini?
- di astar.js: isWall () mungkin harus dihapus. Gim saya tidak memiliki dinding.
- di astar.js: Saya tidak yakin apa ini. Saya pikir ini menunjukkan simpul yang tidak valid untuk diproses. Namun, kapan ini akan terjadi?
- Pada tingkat tinggi, bagaimana cara mengubah algoritme ini dari "oh, apakah ada tembok di sana?" untuk "akankah medan ini membawaku ke pemain lebih cepat daripada medan di sekitarku?"
Karena waktu, saya juga berdebat menggunakan kembali algoritma Bresenham saya untuk musuh. Sayangnya, bonus gerakan medan yang berbeda tidak akan digunakan oleh AI, yang akan membuat permainan menjadi membosankan. : / Saya benar-benar ingin memiliki ini untuk prototipe, tapi saya bukan pengembang dengan perdagangan atau saya seorang ilmuwan komputer. : D
Jika Anda mengetahui kode apa pun yang melakukan apa yang saya cari, silakan bagikan!
Kiat periksa kewarasan untuk ini juga dihargai.