ไดรเวอร์ AI ในเกมแข่งรถ


17

ฉันสงสัยว่าฉันจะควบคุมรถในเกมแข่งรถได้อย่างไร

ตัวแทน AI ของฉันควรควบคุมรถด้วยคำสั่งเช่น "เค้นที่ 0.35, หมุนพวงมาลัยที่ 0.5 ขวา, เบรคที่ 0.0" หรือไม่ หรือฉันควรจะคำนวณเส้นโค้งที่รถติดไว้ล่วงหน้าและภาพเหมือนการเปลี่ยนล้อหน้าเป็นเพียงการทำให้ทุกอย่างดูสอดคล้องกันหรือไม่ หรือมีวิธีอื่นใด


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

1
ใช่บางอย่างเช่นโหนดไปตามแทร็กพร้อมพวงมาลัยชนิด boids
MichaelHouse

1
นี่คือบทความเกี่ยวกับ AI ในการชุมนุม 2 ของ Colin McRae
gre_gor

@gre_gor นี่เป็นบทความที่มีประโยชน์มากขอขอบคุณ!
dargemir

คำตอบ:


16

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

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

นั่นเป็นเรื่องง่าย มีอะไรอีกหรือ

ทั้งสองตามเส้นทางที่คำนวณไว้ล่วงหน้าและการควบคุมรถอย่างเป็นระบบมีการใช้ในอุตสาหกรรมเกม คำตอบคือใช้ทั้งสองอย่าง

ก่อนอื่นฉันต้องการพูดถึงว่า "การคำนวณเส้นโค้ง" อาจหมายถึงสองสิ่ง:

  • การสร้างฟังก์ชั่นที่จะแสดงผลตำแหน่งบนเส้นโค้งโดยมีพารามิเตอร์ว่าคุณต้องการสืบค้นไกลแค่ไหน

  • การสร้างเส้นทางเข้าใจว่าเป็นรายการของจุด (หรือคำแนะนำและข้อมูลการควบคุมอื่น ๆ ) ที่จะปฏิบัติตาม

อดีตจะมีประโยชน์สำหรับการทำนายหรือในการจำลองทางฟิสิกส์บางอย่าง แต่เมื่อเราพูดถึงการควบคุมวัตถุสิ่งหลังคือแนวทางที่แนะนำ

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


  • การติดตามเส้นทางที่คำนวณล่วงหน้าแล้ว: สิ่งนี้มีประโยชน์สำหรับภาพยนตร์หรือฉากที่ทำซ้ำได้ ตัวอย่างเช่นใน GTA San Andreas ภารกิจการไล่ล่าเป้าหมายการไล่ล่าและรถยนต์ทุกคันตามเส้นทางที่กำหนดไว้ล่วงหน้า (เพื่อให้แน่ใจว่าเป้าหมายการไล่ล่าสามารถหลีกเลี่ยงการจราจร※) แต่ทันทีที่คุณรบกวนพวกเขาพวกเขากลับไปที่การควบคุม AI ในกรณีนี้ AI จะต้องค้นหาเส้นทางเพื่อไปยังที่ที่มันควรจะไปตามเส้นทางปกติ

    ※: ในความเป็นจริงมันถูกบันทึกไว้แล้ว การบันทึกและเล่นเป็นหนึ่งในคุณสมบัติใหม่ของเอ็นจิ้นเกม GTA SA

  • ควบคุมโดย AI:

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

    สำหรับเกมง่ายๆคุณอาจต้องมีสองพฤติกรรมที่น่าสนใจ: 1) ถ้ามันอยู่บนแทร็กจากนั้นทำตามแทร็กเพื่อหลีกเลี่ยงรถคันอื่นและอุปสรรคใด ๆ และ 2) หากมันไม่ได้อยู่บนแทร็ก

    ในขั้นตอนนี้มันไม่ไกลจากการติดตามเส้นทาง (แทร็ก) แต่เนื่องจากเส้นทางไม่ได้เป็นเส้นเราไม่ได้พูดถึงเส้นทาง แต่อยู่ใกล้กับมัน (ในขณะที่หลีกเลี่ยงรถคันอื่นและอุปสรรคใด ๆ ) หมายความว่า AI ต้องแก้ปัญหา "การบังคับเลี้ยวการเบรกและการเร่งความเร็ว"

    สำหรับเกมที่ทันสมัยรถจะต้องถูกจำลองด้วยฟิสิกส์ (เพื่อแก้ไขการชนและรักษาความสมจริง) ด้วยเหตุนี้การวนซ้ำของเกมจะทำให้รถมีการอัพเดทตามความเร็วและความเร่งของมันรวมถึง "การบังคับเลี้ยวการเบรกและการเร่งความเร็ว" (tweaks to speed) จะถูกนำไปใช้เพื่อติดตามพฤติกรรมปัจจุบัน

    ฉันยังต้องการพูดถึงว่าเกมสมัยใหม่อาจมีพฤติกรรมที่ซับซ้อนกว่าเช่น AI อาจเลือกที่จะชนรถคันอื่นหรือปิดกั้นทางของพวกเขา ในความเป็นจริง AI อาจเลือกที่จะใช้ตามรูปแบบของการเรียนรู้ของเครื่องบางอย่าง แต่ฉันพูดนอกเรื่อง

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


เกี่ยวกับอนิเมชั่นมันไม่ใช่ความคิดที่ดีที่จะจำลองฟิสิกส์สำหรับล้ออย่างอิสระ หากคุณทำเช่นนั้นอาจเพิ่มความสมจริงให้กับเกม แต่จะทำให้ประสิทธิภาพลดลง โดยปกติเกมจะเคลื่อนไหวล้อตามพฤติกรรมแทนที่จะแสดงพฤติกรรมในแง่ของการเคลื่อนไหวของล้อและจำลองผลที่ตามมา

แน่นอนคุณอาจจำเป็นต้องพิจารณาเพิ่มเติมในสิ่งที่ล้อขัดกับพื้น และบางทีการเคลื่อนไหวช่วงล่าง


นี่เป็นคำตอบที่ยอดเยี่ยมมากขอบคุณมาก
dargemir

0

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

สิ่งนี้มีเอฟเฟกต์ที่ดีมากมาย:

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

นี่เป็นกรณีพิเศษของการแยก MVCโดยวิธีการ


2
ฉันชอบคำตอบนี้ แต่คำแถลงสุดท้ายนั้นไร้สาระ ลบออกและคุณมีจุดจากฉัน ความกังวลแยกกันอยู่ไหม? - แน่นอน แต่ MVC ใช้ไม่ได้กับบริบทของคำตอบทั้งหมดของคุณ
วิศวกร

1
นอกจากข้อเท็จจริงที่ว่ามุมมองการดูไม่ได้กล่าวถึงในคำถามหรือคำตอบทำไมคุณคิดว่ามันไร้สาระที่จะใส่เฟรมนี้เป็น MVC
Russell Borogove
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.