พวกเขาติดตาม NPCs ใน Left 4 Dead อย่างไร


11

พวกเขาติดตามซอมบี้ NPC ใน Left 4 Dead ได้อย่างไร

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

สมมติว่าคุณวางหน่วย 4 (ควบคุมโดยผู้เล่น) ในสถานที่ที่แตกต่างกันอย่างสมบูรณ์ทั่วแผนที่ สมมติว่าคุณไม่ได้ถูกจับกลุ่มแล้วคุณก็ไม่ได้ฆ่า NPC ที่ไร้จุดหมายเหล่านี้ เกมจะติดตามซอมบี้ทั้งหมด 10 x 4 = 40 ตัวหรือไม่?

หรือความเข้าใจของฉันสมบูรณ์

เหตุผลที่ฉันถามคือถ้าฉันใช้สิ่งที่คล้ายกันบนอุปกรณ์มือถือการติดตาม NPC 40 หรือมากกว่านั้นอาจไม่ใช่ความคิดที่ยอดเยี่ยม


1
ฉันได้เห็นการนำเสนอที่ทำโดย Valve อธิบายทุกอย่างเกี่ยวกับซอมบี้ใน L4D ฉันหามันไม่เจอ
The Duck Communist

2
@ The คอมมิวนิสต์คอมมิวนิสต์ - นั่นจะมีประโยชน์มาก กรุณาโพสต์ถ้าคุณเคยพบมัน สิ่งเดียวที่ฉันสามารถหาได้ทั่วไปคือเกมคำถาม
f20k

คำตอบ:


24

คุณสนใจกระดาษที่นี่:

ระบบ AI ของ Left 4 Dead


ใช่นี่คือสิ่งที่ฉันกำลังมองหาขอบคุณ!
f20k

1
ไม่มีปัญหา. โชคดีสำหรับเราที่ devs ใจดีพอที่จะวางสิ่งพิมพ์ของพวกเขา
ChrisE

4

ฉันไม่ได้อ่านเอกสารที่ ChrisE เขียนลิงค์ไป แต่จากการสนทนาที่ฉันมีกับพนักงาน Valve หรือที่อื่นใน Development Wiki (ไม่สามารถจำได้ว่าฉัน) ฉันจำได้ว่าได้รับแจ้งว่าพวกเขามีเพียงไม่กี่หน่วยงานจริง (ผู้อำนวยการ AI); อวตารที่คุณเห็นภาพของ NPC ที่ติดเชื้อนั้นเป็นเพียง "หุ่นนิ้ว" สำหรับหน่วยงานเหล่านั้น พวกเขาทำสิ่งนี้เพื่อรักษาจำนวนการประกาศ (เอนทิตีพจนานุกรม) ให้น้อยที่สุดเนื่องจากเห็นได้ชัดว่ามี NPC จำนวนหนึ่งที่ติดเชื้อเพื่อติดตาม

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


คุณรู้หรือไม่ว่ามีเอนทิตีประเภทอื่นอยู่ที่นั่น? ผู้ติดเชื้อพิเศษจะเป็นนิติบุคคลหรือไม่? ฉันมีปัญหาในการทำความเข้าใจ "เอนทิตี" และ "หุ่นนิ้วมือ" เมื่อฉันสามารถโต้ตอบกับ NPC ที่ติดเชื้อได้
f20k

1
พิเศษเป็นนิติบุคคล วิธีที่ง่ายที่สุดในการพิจารณาว่าของจริงและของปลอมคือดูคอนโซล คุณสามารถรับความเสียหายจากผู้เล่นคนอื่นได้จากชื่อพิเศษ แต่เมื่อคุณได้รับความเสียหายจากคอมมอนส์คอนโซลจะแสดงว่าคุณได้รับความเสียหายจาก "โลก" (iirc)
Rob N

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

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

1

ฉันไม่สามารถพูดได้ว่าการใช้งาน Left 4 Dead ทำงานอย่างไร แต่ฉันสามารถบอกได้ว่าฉันควรทำอย่างไร

ฉันจะลองหาทางเลือกที่สองของคุณติดตามผู้เล่นแต่ละคนและโหลด NPC เฉพาะเมื่อผู้เล่นย้ายจุดกระตุ้นที่ผ่านมา กุญแจสำคัญในระบบเช่นนี้คือทำให้ทริกเกอร์ชี้ห่างจากผู้เล่นที่พวกเขาไม่สามารถเชื่อมโยงwalking past this fence postทริกเกอร์ได้that car to blow up, and shoot a zombie at them.

ฉันอาจมีคอลเลกชัน NPC ที่ใช้งานอยู่ซึ่งจุดที่ทริกเกอร์จะเพิ่มหรือลบ NPC ออกจากคอลเลกชัน สิ่งนี้ช่วยให้คุณใช้ทรัพยากร CPU / GPU บน NPC ที่ผู้เล่นโต้ตอบจริง ๆ แต่ให้ความยืดหยุ่นในการโหลด NPC ได้ทุกเวลา

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

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