รูปแบบสำหรับการแข่งพฤติกรรม AI


9

สมมติว่าคุณมี AI แข่งแบบอิสระ สมมติว่าสามารถจัดการกับพื้นฐานของการเบรกและหมุนพวงมาลัยได้

คุณจะจัดโครงสร้างและใช้การหลีกเลี่ยงการชนการแซงร่างการปิดกั้นและพฤติกรรมอื่น ๆ อย่างไรเพื่อให้รถยนต์ของคุณยังคงแข่งขันได้

ลิงก์ไปยังเอกสาร / การใช้งานจะยอดเยี่ยม


คุณใช้เครื่องยนต์แบบไหน
Harshal Benake

คำตอบ:


7

คุณเคยเห็นพฤติกรรมการกำกับสำหรับตัวละครอิสระหรือไม่? ฉันจะพิจารณาอัลกอริทึม"CrowdPathFollowing"สำหรับการติดตามและหลีกเลี่ยงการชน คุณอาจผสมในพฤติกรรม"ติดตาม Field Flow"สำหรับการร่างผ่านและปิดกั้น - ทำให้Field Flow เป็นไปตามเส้นทางที่ผ่านมาและที่คาดการณ์ไว้ของผู้เล่น แต่แยกรอบตำแหน่งปัจจุบันของเขา

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

นั่นน่าจะทำให้ AI นั้นมีแนวโน้มที่จะตามหลังเขาไปข้างหน้าและเคลื่อนที่ไปข้างหน้าเพื่อขวางกั้น


1
ฉันตระหนักถึง boids แต่มันเป็นการอ้างอิงที่ดี ฉันกลัวพฤติกรรมหลายอย่าง (อยู่ในเส้นทางแข่งรถหลีกเลี่ยงรถยนต์บล็อกร่าง ฯลฯ ) การโต้ตอบในรูปแบบที่ซับซ้อนเกินกว่าจะฟังและจบลงด้วยการปะทะกันของคดีขอบ นี่เป็นสิ่งที่ดีสำหรับคนเดินเท้า แต่เป็นหายนะสำหรับรถแข่งที่ต้องเคลื่อนที่ต่อไป
tenpn

ฉันทำงานกับ OpenSteer API ซึ่งใช้สิ่งนี้มากมาย ฉันพบว่ามันง่ายต่อการปรับแต่ง ในกรณีของคุณฉันจะทำให้น้ำหนัก "SteerToAvoidCollision" สูงมาก ฉันไม่ทราบว่าคุณกำลังแข่งรถคันไหน แต่ฉันคิดว่าถ้าคุณทำให้ถูกต้องสำหรับกรณีส่วนใหญ่แล้วการชนหรือการทุบตีครั้งคราวที่เหลือเนื่องจากกรณีขอบอาจเป็นจริงสวย ....
AShelly

นั่นคือพวงมาลัยรถยนต์หรืออย่างอื่นใช่ไหม ฉันกลัวสถานการณ์ที่ทำให้เกิดปัญหาเช่นรถสองคันไปทางซ้ายของคุณและอีกคันอยู่ทางขวาของคุณ เวกเตอร์เฉลี่ยจะส่งผลให้เกิดการเคลื่อนไหวที่ถูกต้องแม้ว่าอาจทำให้คุณสัมผัสกับยานพาหนะทางขวา
tenpn

ฉันทำงานกับคนเดินเท้าเป็นส่วนใหญ่ดังนั้นฉันไม่สามารถสาบานได้เลยว่ามันจะได้ผล สิ่งหนึ่งที่ต้องจำไว้คือมันไม่จำเป็นต้องมีการผสมผสานของพฤติกรรม - มันสามารถเป็นทายาท ดังนั้นคุณสามารถหลีกเลี่ยงการชนกันได้โดยให้ความสำคัญกับสิ่งอื่นมากขึ้น ในกรณีที่คุณอธิบายว่ารถจะไปทางขวาจนกว่าเส้นทางที่คาดการณ์จะตัดเส้นทางของรถทางขวาซึ่งเวลาที่หลีกเลี่ยงการชนนั้นจะกลายเป็นแรงแทนที่ คุณยังสามารถเพิ่มเงื่อนไขพิเศษได้เช่นหากไม่พบเส้นทางที่ปลอดภัยในเฟรม N ให้เพิ่มการเบรกอย่างหนัก
AShelly

2

มีบางส่วนเกี่ยวกับเรื่องนั้นในการประชุม AI Game Dev ในปีนี้ที่กรุงปารีส คุณสามารถค้นหาสไลด์และสรุปได้ที่นี่:

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


1
ลิงก์ไปยัง ppt คือ 404> _ <
tenpn


ta - แนวทางของเขาน่าสนใจ แต่รหัสที่ฉันใช้งานในปัจจุบันนั้นสูงกว่าจริง ๆ !
tenpn

1

ต่อต้าน - รูปแบบ: ฝ่ายตรงข้ามปรับความเร็วของพวกเขา

น่าเสียดายที่ฉันไม่สามารถให้รูปแบบคุณได้ แต่ฉันต้องการตั้งชื่อรูปแบบการต่อต้าน โปรดอย่าพยายามปรับความเร็วของไดรเวอร์ AI ให้เข้ากับผู้เล่นคนใดคนหนึ่ง แนวคิดเบื้องหลังนี้คือการสร้างเงื่อนไขการแข่งรถที่ยุติธรรมสำหรับมือสมัครเล่นรวมถึงข้อดีและละทิ้งความต้องการของระดับความยากหลายระดับ (และการนำไปใช้)

อย่างไรก็ตามสิ่งที่ฟังดูดีบนกระดาษกลับกลายเป็นว่าน่ากลัวในทางปฏิบัติและชุด MotoGPล้มเหลวอย่างน่าสังเวชที่จะใช้พฤติกรรมนี้ มันจบลงที่ฝ่ายตรงข้ามขับรถด้วยความเร็ว 5mp / h เมื่อคุณหยุดนิ่งเป็นเวลาสองสามวินาทีและเป็นไปไม่ได้ที่จะบอกได้ว่าคุณพัฒนาขึ้นในเกมหรือไม่


ขอบคุณ ฉันกำลังพูดถึงพฤติกรรมการแข่งขันที่น่าสนใจโดยเฉพาะที่นี่มากกว่าการปรับสมดุลหรือระดับความยาก แต่ฉันจะจำไว้
tenpn

5
เกือบทุกเกมแข่งรถรวมถึงแถบยางบางรูปแบบเพื่อให้ผู้เล่นดำเนินการหรือให้ AI อยู่ใกล้กับผู้เล่นที่ดี เคล็ดลับคือการบอบบางด้วยและรู้ว่าเมื่อไหร่ที่จะปิด เมื่อผู้เล่นสังเกตเห็นพวกเขารู้สึกว่าถูกโกง
wkerslake

สถานการณ์ MotoGP ดูเหมือนจะเป็นปัญหาที่นำมาไกลเกินไปแทนที่จะเป็นปัญหากับแถบยางโดยทั่วไป ไม่มีเหตุผลสำหรับผู้ขับขี่ด้านหน้าขับรถด้วยความระมัดระวังและรถยนต์ด้านหลังเพื่อพยายามปิดช่องว่างให้หมดไปและฉันคิดว่ามันมีค่าในการสร้างแบบจำลองด้วยวิธีนั้นและนำเสนอสิ่งนั้นกับผู้เล่นอย่างโปร่งใส
Jibb Smart

นี่คือโพสต์ที่น่าสนใจในหัวข้อ: gamasutra.com/view/feature/3920/…โดยทั่วไปแล้วพวกเขาจะนำคุณเข้าสู่กลุ่มนักแข่ง AI 3 กลุ่มและให้คุณเลื่อนจากกลุ่มหนึ่งไปอีกกลุ่มหนึ่งในระหว่างการแข่งขัน
Felsir
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.