ฉันควรคาดการณ์เมื่อใดและควรแก้ไขเมื่อใด


16

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


22
มีคนสองประเภท ผู้ที่สามารถคาดการณ์จากข้อมูลที่ไม่สมบูรณ์
Almo

2
@Almo และชนิดอื่น ๆ คืออะไร? กรุณาบอกฉันฉันต้องรู้!
DJMcMayhem

4
@DJMcMayhem ... และผู้ที่ชื่นชอบการรับประทานปลานิ้ว
user253751

4
ฉันไม่เข้าใจคำถาม คุณสามารถอธิบายวิธีหนึ่งในการ "สอดแทรก" จุด {(1, a), (2, b)} เพื่อทำนาย c ใน (3, c) ได้หรือไม่? แล้วคุณจะประมาณค่าอย่างไร
user541686

คำตอบ:


29

คุณแก้ไขเมื่อคุณรู้ว่า 'ก่อน' และ 'หลังจาก' ค่า

ตัวอย่างเช่น: ในเกมแบบจุดแล้วคลิกผู้เล่นอยู่ที่ตำแหน่ง X และจากอินเทอร์เฟซเขาคลิกที่จุด Y คุณต้องแก้ไขการกระจัดระหว่าง X และ Y เพราะคุณรู้ค่าทั้งสอง

คุณคาดการณ์เมื่อคุณคาดเดาสิ่งที่จะเป็นมูลค่าในอนาคตขึ้นอยู่กับสิ่งที่คุณรู้อยู่แล้ว

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

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


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

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

โอ้ตกลงดังนั้นการคาดการณ์จะถูกใช้เมื่อคุณต้องการให้ลูกค้าคาดการณ์ว่าจะเกิดอะไรขึ้น ถ้าเช่นนั้นแล้วประเด็นของการแก้ไขคืออะไรถ้าคุณสามารถคาดการณ์เพื่อให้เกมอยู่ใกล้กับเวลาจริงได้? ดังนั้นสำหรับเช่น FPS ผู้เล่นจะได้รับการคาดการณ์และผู้เล่นคนอื่นจะถูกแก้ไขหรือไม่
J leong

โดยทั่วไปแล้วเซิร์ฟเวอร์ทำทุกอย่าง: มันสอดแทรกในสิ่งที่รู้และจากนั้นมันจะประมาณค่าและส่งสิ่งเหล่านี้ไปยังลูกค้าเพื่อให้พวกเขามาถึงทันเวลาเพื่อนำเสนอต่อผู้เล่น ใน FPS การแก้ไขจะใช้เพื่อแสดงสิ่งต่าง ๆ เช่น projectiles, AI และอื่น ๆ เมื่อดำเนินการ Frame B (มาจาก Frame A) จะทำการแทรกค่าสำหรับสถานะของ Frame B; มันยังสามารถเริ่มการทำนาย Frame C โดยการแก้ไขค่าที่ทราบแต่จะต้องประเมินค่าที่ไม่รู้เกี่ยวกับ (อินพุตของผู้เล่น) จากนั้นจะส่งสถานะ "ในอนาคต" ให้กับลูกค้า
Vaillancourt

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

14

การแก้ไขจะกระทำเมื่อคุณมีทั้งค่าเริ่มต้นและค่าสิ้นสุดและคุณต้องการประเมินสิ่งที่เกิดขึ้นระหว่างค่าเริ่มต้นและค่าสิ้นสุด ตัวอย่างจะย้ายผู้เล่นจากตำแหน่ง A ไปยังตำแหน่ง B ในการเคลื่อนที่ของของไหล

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


2

สอดแทรกเสมอเมื่อคุณสามารถ

เมื่อคุณมีข้อมูลไม่เพียงพอที่จะแก้ไขแล้วคุณต้องคาดการณ์

มันง่ายจริงๆไม่คิดมากเกินไป :)

หากต้องการอธิบายเพิ่มเติมอีกเล็กน้อย:

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

จะเกิดอะไรขึ้นถ้าคุณคาดการณ์ตำแหน่งค้างคาวและแสดงให้เห็นว่ามันถูกที่แล้วและตีกลับที่ลูกบอลจากนั้นตระหนักว่าหลังจากนั้นคุณผิดและมันไม่ได้ตีกลับที่ลูก? ไม่มีวิธีที่ดีในการจัดการสถานการณ์นั้น


Oh ok ดังนั้นใน pong ผู้เล่นจะทำนายไม้พายและไม้พายอื่น ๆ
J leong

ขึ้นอยู่กับว่าคุณจะใช้งานอย่างไร ดูการแก้ไขของฉันสำหรับข้อมูลเพิ่มเติม
ทิม B

2

คุณสอดแทรกเพื่อค้นหาสถานะระหว่างค่าที่ทราบและคุณคาดการณ์เพื่อค้นหาสถานะในอนาคต

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

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

ความแตกต่างระหว่างทั้งสองคือว่าคุณมีข้อมูลที่ถูกล้อมรอบทั้งสองด้านหรือด้านเดียวเท่านั้น สมมติว่าผู้เล่นกได้ประกาศตำแหน่งความจริงของพวกเขาสำหรับ t = 0 และ t = 1 แล้ว ผู้เล่น B ยิงเลเซอร์ที่ t = 0.5 ในหลาย ๆ สถานการณ์ผู้เล่น A ประกาศตำแหน่งของพวกเขาที่ t = 1 สามารถเกิดขึ้นได้ก่อนที่ผู้เล่น B จะเหนี่ยวไก ทำไม? ในหลาย ๆ เกมการตอบสนองของการควบคุมนั้นน้อยกว่าความสมบูรณ์แบบในทันที ในการจำลองการแข่งรถตำแหน่งของผู้เล่นส่วนใหญ่ถูก จำกัด ด้วยฟิสิกส์ของยานพาหนะที่กำลังเคลื่อนที่ คุณอาจเลือกที่จะประกาศ "ตำแหน่งในอนาคต" เพราะคุณรู้ว่าคุณไม่สามารถคัดท้ายทั้งหมดในช่วงเวลาสั้น ๆ หากคุณมีข้อมูลในอนาคตคุณสามารถแก้ไขระหว่างสองค่าได้

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

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

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


1

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

หรือเพื่อใส่ไว้ในแผนภาพง่าย ๆ :

A - - - - - B - - - - - C - - - - - D

ป.ร. ให้ไว้ ณ จุดข้อมูลAและCคุณสามารถสอดแทรกและคาดการณ์BD


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

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

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

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

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


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

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

โดยยากฉันหมายความว่าการแก้ไขให้ทฤษฎีบทพื้นฐานของแคลคูลัสถอยกลับ การคาดการณ์ไม่ได้ A และ C บอกคุณว่า B เป็นที่ไหนที่ทำให้ C เป็นไปได้ A. การขอ D กำลังขอให้ทำนายอนาคต สำหรับทุกสิ่งที่คุณรู้ C คือที่ที่ผู้เล่นเสียชีวิต ข้อใดน่าเชื่อถือและยอมรับได้มากกว่า: การประมาณค่าหรือการประมาณค่า เหตุใดการคาดการณ์มีความเสี่ยงมากกว่าการแก้ไข
candied_orange

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

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

0

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

สอดแทรก: ในระหว่างประมาณ: นอก

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

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