Kiat untuk membangun AI untuk gim balap 2D

10

Saya memiliki proyek sekolah untuk membangun AI untuk game balap 2D di mana ia akan bersaing dengan beberapa AI lain ( tanpa tabrakan ).

Kami diberi gambar bitmap hitam dan putih dari trek balap, kami diizinkan untuk memilih statistik dasar untuk mobil kami (penanganan, akselerasi, kecepatan maks, dan rem) setelah kami menerima peta. AI terhubung ke server gim dan memberikannya beberapa kali angka kedua untuk akselerasi dan kemudi saat ini. Omong-omong, bahasa yang saya pilih adalah C ++. Pertanyaannya adalah:

Apa strategi atau algoritma terbaik (karena saya ingin mencoba dan menang)? Saat ini saya memikirkan beberapa ide yang ditemukan di internet dan satu atau dua ide saya sendiri, tetapi saya ingin sebelum saya mulai memberi kode bahwa perspektif saya adalah salah satu yang terbaik. Buku bagus apa yang ada tentang hal itu? Situs apa yang harus saya rujuk?


sumber
1
Itu akan tergantung pada keakuratan simulasi fisika. Jika tidak ada fisika, saya akan pergi dengan kecepatan penuh setiap saat ... jika tidak, saya akan mulai melambat sebelum setiap belokan dan mempercepat 2/3 melalui belokan.
Nate

Jawaban:

2

Siapkan AI dasar, lalu atur API untuk menangani mobil Anda sendiri. Jika Anda bisa mengalahkannya, Anda harus mengatur algoritma perekaman yang kemudian dapat secara positif memperkuat AI Anda. Ini bisa menjadi jaringan saraf untuk mengubah tindakan AI Anda. Seperti pengereman bertahap ke sudut dll.

Apakah Anda diizinkan menggunakan perpustakaan eksternal di proyek Anda? Jika demikian, saya sarankan Anda melihat FANN . Ini adalah perpustakaan jaringan saraf yang cepat; untuk menyelamatkan Anda menulis sendiri. Jika Anda memerlukan kode sumber, Anda selalu dapat menulisnya sendiri, namun butuh beberapa saat.

kaviar melambat
sumber
1
Tampak berlebihan bagi saya.
o0 '.
2
@ Lo'oris Jelas, terutama karena ini mungkin proyek sekolah yang cukup sederhana dengan jumlah waktu terbatas untuk menciptakan solusi, saya tidak berpikir belajar yang diawasi adalah cara untuk menyelesaikan ini, hanya demi kepraktisan.
Ray Dey
Ini tidak terlalu sulit untuk diatur, dan tergantung pada level subjek yang OP lakukan, pendekatan ini mungkin tidak perlu berlebihan. Ini adalah apa yang saya akan (dan telah lakukan), menyenangkan, dan bisa sangat sederhana untuk mencapai hasil yang efektif. Bagian tersulit adalah menentukan apa yang harus dilakukan dalam pra-pemrosesan ...
deceleratedcaviar
2

Jika Anda dapat memproses ulang peta sebelum menjalankan AI, maka hitung saja garis balap terbaik melalui segmen peta.

Posting ini di GameDev.net memiliki sejumlah saran.

The AI Wisdom buku memiliki BANYAK artikel tentang balap AI. Saya pasti akan merekomendasikan mereka, terutama yang pertama yang memiliki artikel yang menggambarkan bagaimana Anda dapat mewakili peta sebagai struktur data dalam AI Anda.

Metode lain yang saya lihat adalah pembelajaran penguatan sederhana (Q-learning), yang mungkin akan membutuhkan beberapa ribu iterasi untuk mendapatkan jalur yang optimal. Ini dijelaskan dalam makalah ini: http://www.cs.ubc.ca/~zhijin/540report.pdf

Ray Dey
sumber
1

Berikut ini adalah referensi yang sangat baik untuk mengemudi AI: Steering Behaviors for Autonomous Characters . Diposting di sini untuk referensi semua orang. Ada banyak informasi untuk Anda mulai, tetapi juga banyak informasi, jadi jangan terlalu macet dalam detailnya.

DrDeth
sumber