AI เกมที่ซับซ้อนสำหรับเกมกลยุทธ์แบบเลี้ยว


26

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

ฉันสนใจเป็นพิเศษในการจัดระเบียบ AI ของอารยธรรม V! ตามวิกิพีเดียเกมใช้ระบบ AI ที่แตกต่างกันสี่แบบสำหรับเลเยอร์ที่แตกต่างกันของ AI ของเกม:

  • ยุทธวิธี AI ควบคุมแต่ละหน่วย
  • ฝ่ายปฏิบัติการ AI ดูแลด้านการสงครามทั้งหมด
  • กลยุทธ์ AI จัดการอาณาจักรทั้งหมด
  • AI เชิงกลยุทธ์ที่ยิ่งใหญ่กำหนดเป้าหมายระยะยาวและกำหนดวิธีการชนะเกม

แนวคิดนี้ดูเหมือนว่าเหมาะสมที่จะได้รับ AI ที่ซับซ้อนและทำให้ฉันอยากรู้ว่าระบบ AI ที่แตกต่างกันเหล่านี้ทำงานอย่างไร (และทำงานร่วมกัน) AI ยุทธวิธีน่าจะเข้าใจได้ง่ายที่สุดเพราะมันจัดการการตัดสินใจสำหรับหน่วยเดียว (การเคลื่อนไหวการโจมตีการซ่อมแซมการหลบหนี ฯลฯ ) แต่ฉันคิดว่าระบบ AI อื่น ๆ นั้นเป็นที่ที่น่าสนใจจริงๆ ตัวอย่างเช่น AI การปฏิบัติงานทำอะไรและทำเช่นนั้นได้อย่างไร ฉันแน่ใจว่าสิ่งเหล่านี้เป็นความลับที่ดีที่สุดที่เก็บรักษาไว้โดย Firaxis Games แต่มันก็ยอดเยี่ยมมากที่จะได้รับการสนทนาเริ่มต้นเพื่อหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้

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

คำตอบ:


19

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

ข้อจำกัดความรับผิดชอบ: ฉันเล่นเกมอารยธรรมแทบจะไม่ดังนั้นความเข้าใจในการเล่นเกมจึงมี จำกัด หากมีข้อผิดพลาดที่ชัดเจนฉันขอโทษ โปรดแก้ไขฉันและฉันยินดีจะแก้ไข

ฉันจะได้รับราคาจากต้นฉบับบทความจีเอ็น

1. ยุทธวิธี AI

ในระดับต่ำสุด AI ยุทธวิธีใช้กองกำลังใกล้จะชนะการต่อสู้ในระดับท้องถิ่น

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

อย่างไรก็ตามเนื่องจากเกมนี้เป็นเกมเทิร์นเบสซึ่งคล้ายกับความเสี่ยงฉันจึงคิดว่าสิ่งที่น่าจะเกิดขึ้นคือแต่ละหน่วยจะได้รับคะแนน จากนั้นจะมีตัวทวีคูณแนบกับคะแนนนี้ขึ้นอยู่กับตัวแปรที่แตกต่างกัน (ความจงรักภักดี, โบนัสภูมิประเทศ ฯลฯ )

ผลลัพธ์จะถูกคำนวณโดยบางสิ่งเช่นนี้:

If (AI unit score >> (much greater) enemy unit score) Then Completely destroy enemy unit
If (AI unit score > (somewhat greater) enemy unit score) Then Partially destroy enemy unit
If (AI unit score < (somewhat less) enemy unit score) Then Partially destroy AI unit
If (AI unit score << (much less) enemy unit score) Then Completely destroy AI unit

มันสมเหตุสมผลที่ AI จะพยายามและเพิ่มคะแนนนี้เมื่ออยู่ในการต่อสู้

เพิ่มค่า epsilon (เช่นโอกาสสุ่มล้มเหลว / ความสำเร็จเล็กน้อย) และคุณมี AI ที่ดูดี (ไม่มีใครต้องการคู่ต่อสู้ที่สมบูรณ์แบบนั่นไม่ใช่เรื่องสนุก!)

2. ปฏิบัติการ AI

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

ฉันคิดว่ามีสองประเด็นในเรื่องนี้:

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

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

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

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

นี่คือกระดาษที่ดีที่ใช้ประโยชน์จากแผนที่มีอิทธิพลในเกม Real Time Strategy

3. กลยุทธ์ AI

การเคลื่อนไหวยิ่งสูงขึ้น AI เชิงกลยุทธ์จะจัดการอาณาจักรโดยรวมโดยมุ่งเน้นที่การสร้างเมืองและสิ่งที่จะทำกับพวกเขา

"ฉันจะสร้างเมืองได้ที่ไหน" ฟังดูเหมือนการประเมินตำแหน่ง โปรแกรมหมากรุกและเกมอื่นใช้เพื่อกำหนดความต้องการของตำแหน่งที่กำหนด ตัวอย่างเช่น:

Hex A: ใกล้กับทรัพยากร, บนพื้นที่สูง, ใกล้กับพันธมิตร, ใกล้กับศัตรู Hex B: ห่างไกลจากแหล่งข้อมูล, ในภูมิประเทศระดับกลาง, ระยะทางปานกลางจากพันธมิตร, ห่างจากศัตรู

ฟังก์ชันการประเมินตำแหน่งสามารถใช้ปัจจัยสามประการดังนี้:

Score = Proximity to resources (closer yields a higher score) + 
terrain elevation (higher yields higher score) + 
proximity to allies (closer is better) + 
proximity to enemies (farther is better)

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

ฉันคิดว่า AI เชิงกลยุทธ์ยังมีกลยุทธ์หลอก prebaked ในเกมขึ้นอยู่กับประเภทของชัยชนะที่ AI กำลังทำอยู่

4. กลยุทธ์เชิงกลยุทธ์ระดับสูง

ที่ด้านบนสุดของบันไดคือกลยุทธ์ที่ยิ่งใหญ่ของ AI ซึ่งจะตัดสินว่าจะชนะเกมได้อย่างไร

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

แก้ไข: แน่นอนตาม DampeS8N ประเภทของแผนที่สามารถกำหนดเงื่อนไขชัยชนะที่ดีที่สุดที่จะไปซึ่งในกรณีนี้มันอาจเป็น hardcoded โดยนักออกแบบหรือฟังก์ชั่นการประเมินผลการเรียงลำดับตัวแปรในตัวแปรที่แตกต่างกัน

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

ฉันขอโทษจริงๆสำหรับความยาวของโพสต์นี้มันกลายเป็นสัตว์ร้าย :(

ฉันหวังว่ามันจะช่วยได้!


2
"ฉันคิดว่านี่อาจจะง่ายที่สุดในกลุ่มและมันก็ให้ความรู้สึกที่น่าประทับใจมากกว่าที่เป็นจริง" ฉันจะไม่แน่ใจเกินไป มีความแตกต่างระหว่างการตัดสินใจเพียงเพื่อชัยชนะและการตัดสินใจว่าใครจะประกาศสงครามไม่ว่าเราจะขยายออกไปมากเกินไปและต้องฟ้องเพื่อสันติภาพซึ่งเป้าหมายคือจุดอ่อนที่สุดในการโจมตีหน่วยที่เราต้องสร้างขึ้น ทรัพยากรเชิงกลยุทธ์ที่เหมาะสมที่จะทำให้กองทัพของเราแข็งแกร่งหาวิธีที่จะทำให้เกิดสองศัตรูที่จะต่อสู้กัน ฯลฯ ช่วงนี้เป็นจำนวนมากที่มีความซับซ้อนมากกว่าที่คุณให้เครดิต
Nicol Bolas

1
ว้าวและฉันคิดว่าคำตอบของฉันเริ่มยาวขึ้นเล็กน้อย ฮ่า ๆ. แสดงที่ดี
DampeS8N

1
สิ่งหนึ่งที่ควรสังเกตคือ Civ ไม่มีเงื่อนไขชัยชนะอย่างง่าย มีหลายวิธีที่จะชนะ สร้างสิ่งมหัศจรรย์วิทยาศาสตร์ก้าวหน้าพิชิตการทูตและอื่น ๆ การเลือกที่จะไปมักจะยากมากและอาจเปลี่ยนแปลงตามเงื่อนไขของแผนที่ ตัวอย่างเช่นคุณอาจค้นพบว่าบางคนที่คุณเพิ่งพบเจอนั้นเป็นวิธีที่นำหน้าคุณในด้านวิทยาศาสตร์และคุณจะต้องละทิ้งเส้นทางนั้นและตั้งถิ่นฐานใหม่ บ่อยครั้งที่ความสำเร็จเกิดขึ้นเพื่อเปิดทางเลือกของคุณให้นานที่สุดเท่าที่จะทำได้
DampeS8N

@ NicolBolas มันอาจจะซับซ้อนกว่านั้นมาก แต่ประเด็นทั้งหมดที่คุณทำดูเหมือนจะเป็นความรับผิดชอบของ AI ระดับล่าง การตัดสินใจว่าใครจะประกาศสงครามกับ -> ปฏิบัติการ เป้าหมายที่อ่อนแอที่สุดในการโจมตี -> Operational / Tactical การรับทรัพยากรที่เหมาะสม -> การปฏิบัติงาน / ยุทธศาสตร์ นี่เป็นสิ่งที่คาดเดาได้ทั้งหมด แต่มันจะทำให้รู้สึกว่าระบบที่ต่ำกว่ามีความรับผิดชอบต่อกลยุทธ์ที่เฉพาะเจาะจงเพื่อให้แน่ใจว่าการมีเพศสัมพันธ์ในระดับต่ำสุด
Ray Dey

1
@RayDey: AI ระดับสูงสุดจำเป็นต้องมีส่วนร่วมในสิ่งต่าง ๆ เช่นการได้มาซึ่งทรัพยากรเพราะต้องตัดสินใจว่าจะรับได้อย่างไร การเจรจาต่อรองสามารถได้รับมัน การขยายไปยังทรัพยากรสามารถทำได้ ระดับปฏิบัติการไม่ใช่สถานที่ที่เหมาะสมในการตัดสินใจว่าควรต่อสู้กับมันหรือไม่เมื่อเทียบกับยุทธวิธีอื่น ๆ การมีเพศสัมพันธ์เป็นสิ่งจำเป็นสำหรับเกมเช่นอารยธรรม ทุกอย่างมีผลต่อทุกสิ่งทุกอย่างในเกมนั้น คุณไม่สามารถมี AI ที่มีประสิทธิภาพในการตัดสินใจโดยไม่ต้องแต่งงานกันมากมาย แม้ว่าที่อาจอธิบายได้ว่าทำไม Civ V ของ AI คือ ... ไม่สดใสโดยเฉพาะอย่างยิ่ง;)
โรล Bolas

9

โดยทั่วไป AI ในเกมไม่ควรคิดว่า 'ซับซ้อน' มันคือทั้งหมดที่เกี่ยวกับการได้รับสิ่งที่คุณต้องการด้วยความพยายามน้อยที่สุด ชื่อของเกมคือการเกิดขึ้น

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

คุณได้ย้อนลำดับของความยากลำบากเช่นกัน องค์ประกอบที่ยากที่สุดของ Civ AI คือ AI ยุทธวิธีตามด้วย Operational ยุทธศาสตร์น่าจะง่ายมากและยิ่งใหญ่ AI ก็ยังง่ายกว่า

การสื่อสารระหว่างส่วนประกอบต่าง ๆ เป็นเหมือนระบบคำรามและไม่ชอบการสื่อสารที่แท้จริง จากระดับสูงถึงระดับต่ำจะมีลักษณะเช่นนี้:

แกรนด์เอไอ

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

AI ชั้น

จากนั้นดูที่สิ่งที่พร้อมใช้งานสำหรับการใช้ข้อมูลเดียวกันจำนวนมาก มันเกี่ยวกับการพยายามบรรลุเป้าหมายโดยรวม แต่ก็ยังกังวลเกี่ยวกับรายละเอียดเพิ่มเติมของเกม ฉันกำลังตกอยู่ในภาวะสงคราม? ฉันมีคนหิวโหยหรือไม่? เป็นต้น มันอาจเป็นเครื่องจักรไฟไนต์สเตจอาจเป็นFuzzy Logic (ซึ่งจริงๆแล้วเป็นเพียงวิวัฒนาการของ FSM) สมมติว่ามันเป็น FSM แบบง่าย ๆ มันจะถามคำถามข้างต้นตามลำดับที่กำหนดเกณฑ์บางอย่างมันจะตัดสินสิ่งต่าง ๆ ที่จำเป็นต้องเกิดขึ้นในรอบนี้ ฉันอยู่ในภาวะสงครามจัดสรรเงินสำหรับฝึกทหาร คนของฉันกำลังหิวโหยสร้างยุ้งฉางที่นี่แทนที่จะสร้างสิ่งที่เป็นวิทยาศาสตร์

การเลือกหน่วยที่จะสร้างอาจเป็นส่วนหนึ่งของ Strat AI หรือ Op AI ขึ้นอยู่กับว่าเราแยกสิ่งต่าง ๆ อย่างไร

แย้มยิ้ม

จะใช้หน่วยที่มีอยู่และจะกำหนดให้พวกเขาย้ายเข้าสู่แนวรบที่แตกต่างกัน มันจะตัดสินใจรูปร่างโดยรวมของความขัดแย้งที่ซึ่งหน่วยใหม่จะมุ่งหน้าเมื่อมีการปรับใช้ มันอาจเป็น FSM เช่นกัน มันอาจสังเกตเห็นว่าศัตรูที่อยู่ด้านหน้ากำลังโจมตีด้วยยูนิตที่อ่อนแอต่อหน่วย B และจะส่งยูนิต B ที่นั่นมากกว่าไปยังอีกหน่วยหนึ่งด้านหน้าที่แข็งแกร่งต่อยูนิต B โดยจะออกคำสั่งทั่วไปให้กับยูนิตที่มีขนาดใหญ่ การโจมตีที่จะ ล่าถอย. เป็นต้น

ยุทธวิธี AI

เป็นหน่วยเฉพาะ หน่วยแต่ละประเภทจะตอบสนองต่อคำสั่งทั่วไปต่างกัน หน่วยที่ตั้งใจจะฆ่าตัวตายอาจเพิกเฉยต่อคำสั่งถอย หน่วยที่มี wusses อาจถอยแม้เมื่อบอกให้ต่อสู้ โดยทั่วไป Civ จะเบามากในเรื่องแบบนี้ โดยทั่วไปหน่วยทั้งหมดใน Civ จะปฏิบัติตามคำสั่งของพวกเขา เนื่องจากคำสั่งซื้อที่ใหญ่กว่าที่พวกเขาอยู่ภายใต้พวกเขาเป็น (ดูรูปแบบที่นี่?) FSM ฉันบาดเจ็บหรือเปล่า ฉันควรออกไปข้างนอกและรักษา ฉันมีข้อได้เปรียบในสถานที่นี้หรือไม่? โจมตี. ฉันใกล้จะโจมตีหรือไม่ ถอยไป. และความซับซ้อนของ FSM นี้ไม่จำเป็นต้องมากไปกว่า 3 สิ่งเพื่อให้มีประสิทธิภาพและน่าเชื่อถือเหมือนอัจฉริยะ

สามารถปรับปรุงได้หรือไม่

ใช่แน่นอน คำถามคือถ้าผู้เล่นจะสังเกตเห็น และ 99% ของเวลาที่พวกเขาจะไม่

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


doohicky จาก Bayesian - ยอดเยี่ยม
Brian Broom
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.