Pola untuk perilaku balap AI

9

Jadi katakanlah Anda memiliki AI balap spline-based. Anggap saja sudah dapat menangani dasar-dasar pengereman dan kemudi di sekitar trek.

Bagaimana Anda menyusun dan menerapkan penghindaran tabrakan, menyalip, menyusun, memblokir, dan perilaku lainnya sehingga mobil Anda tetap kompetitif tetapi membuat balapan yang menarik?

Tautan ke makalah / implementasi akan luar biasa.

tenpn
sumber
jenis mesin apa yang Anda gunakan,
Harshal Benake

Jawaban:

7

Pernahkah Anda melihat Steering Behaviors For Autonomous Characters ? Saya akan mempertimbangkan algoritma "CrowdPathFollowing" untuk tetap di jalur dan menghindari tabrakan. Anda mungkin dapat mencampur dalam perilaku "Alur Mengikuti Bidang" untuk menyusun, meneruskan, dan memblokir - buat bidang aliran mengikuti lintasan pemain yang lalu dan yang diproyeksikan, tetapi bagilah di sekitar lokasi saat ini.

      /-------------\
 ----<  [playerCar]  >-----
      \-------------/

Itu harus menyebabkan AI cenderung mengikuti langsung di belakangnya dan bergerak langsung di depan untuk memblokir, namun mendorong melewati yang bersih.

ASHelly
sumber
1
Saya mengetahui boids, tapi ini referensi yang bagus. Saya agak takut pada banyak perilaku (tetap di jalur balap, menghindari mobil, blok, konsep, dll.) Berinteraksi dengan cara yang terlalu rumit untuk disempurnakan, dan berakhir dengan tabrakan tepi kasus sesekali. Ini bagus untuk pejalan kaki, tetapi merupakan bencana besar bagi mobil balap yang harus terus bergerak.
tenpn
Saya telah bekerja dengan OpenSteer API yang mengimplementasikan banyak hal ini. Saya merasa cukup mudah untuk menyetel. Dalam kasus Anda, saya akan membuat berat "SteerToAvoidCollision" sangat tinggi. Saya tidak tahu kendaraan apa yang Anda gunakan untuk balapan, tetapi saya pikir jika Anda melakukannya dengan benar untuk sebagian besar kasus, maka benjolan atau bash yang tersisa karena case edge mungkin cukup realistis ....
AShelly
Apakah itu kendaraan kemudi atau yang lainnya? Saya takut situasi yang menyebabkan masalah seperti dua kendaraan di depan ke kiri dan satu di depan ke kanan. Vektor rata-rata akan menghasilkan gerakan yang benar, meskipun itu mungkin akan membuat Anda bersentuhan dengan kendaraan kanan.
tenpn
Saya sebagian besar bekerja dengan pejalan kaki, jadi saya tidak bisa bersumpah itu akan berhasil. Satu hal yang perlu diingat adalah itu tidak harus menjadi campuran perilaku - itu bisa menjadi warisan. Jadi Anda dapat menghindari tabrakan mengambil prioritas yang lebih tinggi untuk hal lain. Jika Anda menggambarkan mobil hanya akan berjalan dengan benar sampai jalur yang diprediksi memotong jalur mobil sebelah kanan, di mana menghindari tabrakan itu menjadi kekuatan utama. Anda juga dapat menambahkan kondisi khusus: misalnya, jika tidak ada jalur aman ditemukan di N frame, tambahkan pengereman keras.
AShelly
2

Ada sebagian sesi tentang hal itu pada konferensi Dev Game AI tahun ini di Paris. Anda dapat menemukan slide dan ringkasannya di sini:

http://aigamedev.com/open/coverage/paris10-report/#session9

slicedlime
sumber
1
Tautan ke ppt adalah 404.> _ <
tenpn
@tenpn: Ini pptx
Firas Assaad
ta - pendekatannya menarik tetapi kode yang sedang saya kerjakan sebenarnya lebih maju!
Tenpn
1

Anti-Pattern: Lawan mengadaptasi kecepatan mereka

Sayangnya saya tidak dapat memberikan pola Anda, tetapi saya ingin memberi nama anti pola. Tolong jangan mencoba untuk menyesuaikan kecepatan driver AI ke salah satu pemain manusia. Gagasan di balik ini adalah untuk menciptakan kondisi balap yang adil untuk amatir serta pro dan untuk mengabaikan kebutuhan berbagai tingkat kesulitan (dan implementasinya).

Namun, apa yang terdengar bagus di atas kertas ternyata buruk dalam praktiknya dan seri MotoGP gagal menerapkan perilaku ini. Itu berakhir di lawan mengemudi pada 5mp / jam ketika Anda berdiri diam selama beberapa detik dan ketidakmungkinan untuk mengetahui apakah Anda telah meningkatkan dalam permainan (umpan balik yang sangat buruk)

Dave O.
sumber
Terima kasih. Saya berbicara secara khusus tentang perilaku balapan yang menarik di sini daripada menyeimbangkan atau tingkat kesulitan, tetapi saya akan mengingatnya.
Tenpn
5
Hampir semua gim balap mencakup beberapa bentuk karet gelang untuk menjaga pemain tetap beraksi, atau menjaga AI tetap dekat dengan pemain bagus. Triknya adalah bersikap halus dengan itu dan tahu kapan harus mematikannya. Begitu pemain melihat mereka merasa ditipu.
wkerslake
Situasi MotoGP kedengarannya seperti masalah mengambilnya terlalu jauh, daripada masalah dengan karet-banding pada umumnya. Bukan tidak masuk akal bagi pengemudi di depan untuk mengemudi dengan lebih hati-hati dan mobil di belakang untuk mencoba lebih keras untuk menutup celah, dan saya pikir ada nilai dalam memodelkannya seperti itu dan menyajikannya secara transparan kepada pemain.
Jibb Smart
Ini adalah posting yang menarik tentang topik: gamasutra.com/view/feature/3920/... Pada dasarnya mereka menempatkan Anda dalam 3 kelompok pembalap AI dan memungkinkan Anda maju dari grup ke grup selama perlombaan.
Felsir