คุณจะจำลอง“ เส้นทางกลิ่น” ในเกมได้อย่างไร?


11

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

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

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


ป้อมปราการคนแคระกำลังทำอะไรบางอย่างในรุ่นถัดไป
รัสเซล

คำตอบ:


10

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

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

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

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

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

สำหรับความสมจริงพิเศษ:

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

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


9

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

กวดวิชา / คำอธิบายฉันพบว่ามีประโยชน์

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