ฉันได้รับการจัดการกับปัญหาการกระเพื่อมอัตราเฟรมกับเกมของฉันเมื่อเร็ว ๆ นี้และดูเหมือนว่าทางออกที่ดีที่สุดจะเป็นที่แนะนำโดย Glenn Fiedler (Gaffer ในเกม) ในคลาสสิกFix Your Timestep! บทความ.
ตอนนี้ - ฉันใช้ขั้นตอนเวลาที่แน่นอนสำหรับการอัปเดตของฉันแล้ว ปัญหาคือฉันไม่ได้ทำการแก้ไขที่แนะนำสำหรับการเรนเดอร์ ผลที่สุดคือฉันได้รับสองเท่าหรือข้ามเฟรมหากอัตราการแสดงผลของฉันไม่ตรงกับอัตราการอัปเดตของฉัน สิ่งเหล่านี้สามารถสังเกตเห็นได้ชัดเจน
ดังนั้นฉันจึงต้องการเพิ่มการแก้ไขในเกมของฉัน - และฉันสนใจที่จะรู้ว่าคนอื่นมีโครงสร้างข้อมูลและรหัสของพวกเขาเพื่อสนับสนุนสิ่งนี้อย่างไร
เห็นได้ชัดว่าฉันจะต้องจัดเก็บ (ที่ไหน / อย่างไร?) ข้อมูลสถานะเกมสองชุดที่เกี่ยวข้องกับโหมดแสดงภาพของฉันเพื่อให้สามารถแก้ไขระหว่างพวกเขาได้
นอกจากนี้ - นี่เป็นสถานที่ที่เหมาะสำหรับเพิ่มเธรด ฉันคิดว่าเธรดการอัปเดตสามารถทำงานในสถานะเกมที่สามได้โดยปล่อยให้อีกสองสำเนาเป็นแบบอ่านอย่างเดียวสำหรับเธรดการแสดงผล (นี่เป็นความคิดที่ดีใช่ไหม)
มันดูเหมือนว่าจะมีสองหรือสามรุ่นของรัฐของเกมสามารถนำประสิทธิภาพการทำงานและ - ไกลที่สำคัญกว่า - ความน่าเชื่อถือและผลิตพัฒนาปัญหาเมื่อเทียบกับมีเพียงรุ่นเดียว ดังนั้นฉันจึงสนใจเป็นพิเศษในวิธีการลดปัญหาเหล่านั้น
โดยเฉพาะอย่างยิ่งผมคิดว่าเป็นปัญหาของวิธีจัดการกับการเพิ่มและลบวัตถุออกจากสถานะเกม
ในที่สุดดูเหมือนว่าบางรัฐอาจไม่จำเป็นต้องทำการเรนเดอร์โดยตรงหรืออาจจะยากเกินกว่าที่จะติดตามเวอร์ชั่นต่าง ๆ ของ (เช่น: เอ็นจิ้นฟิสิกส์ของบุคคลที่สามที่เก็บสถานะเดี่ยว) - ดังนั้นฉันสนใจที่จะทราบ ผู้คนจัดการข้อมูลประเภทนั้นภายในระบบดังกล่าว