ขึ้นอยู่กับความต้องการของเกมของคุณเกือบทั้งหมด มันสามารถทำงานได้อย่างสมบูรณ์แบบสำหรับเกมง่ายๆ แต่ล้มเหลวในระบบที่ซับซ้อนมากขึ้น หากเกมของคุณใช้งานได้อย่ากังวลหรือลองเปลี่ยนเป็นวิศวกรจนกว่าจะมีความจำเป็นเกิดขึ้น
สำหรับสาเหตุที่วิธีการง่ายๆอาจล้มเหลวในบางสถานการณ์จึงยากที่จะสรุปว่าในการโพสต์เดียวเนื่องจากความเป็นไปได้ไม่มีที่สิ้นสุดและขึ้นอยู่กับเกมทั้งหมด คำตอบอื่น ๆ ได้กล่าวถึงแล้วเช่นคุณอาจต้องการจัดกลุ่มความรับผิดชอบร่วมกันของวัตถุเป็นรายการแยกต่างหาก
นั่นเป็นหนึ่งในการเปลี่ยนแปลงทั่วไปที่คุณอาจทำขึ้นอยู่กับการออกแบบเกม ฉันจะใช้โอกาสอธิบายตัวอย่างอื่น ๆ (ซับซ้อนมากขึ้น) แต่จำไว้ว่ายังมีอีกหลายเหตุผลที่เป็นไปได้และวิธีแก้ปัญหา
สำหรับผู้เริ่มต้นฉันจะชี้ให้เห็นว่าการอัปเดตออบเจกต์เกมของคุณและการเรนเดอร์พวกเขาอาจมีข้อกำหนดที่แตกต่างกันในบางเกมดังนั้นจึงต้องจัดการแยกต่างหาก ปัญหาที่เป็นไปได้เกี่ยวกับการอัพเดทและการเรนเดอร์วัตถุเกม
การอัพเดท Game Objects
นี่เป็นข้อความที่ตัดตอนมาจาก Game Engine Architectureซึ่งฉันอยากจะแนะนำให้อ่าน:
ในการปรากฏตัวของการพึ่งพาระหว่างวัตถุเทคนิคการอัพเดทเป็นระยะที่อธิบายข้างต้นจะต้องปรับเล็กน้อย นี่เป็นเพราะการพึ่งพาระหว่างวัตถุสามารถนำไปสู่กฎที่ขัดแย้งกันซึ่งควบคุมลำดับของการอัพเดต
กล่าวอีกนัยหนึ่งในบางเกมอาจเป็นไปได้ที่วัตถุจะพึ่งพาซึ่งกันและกันและจำเป็นต้องมีลำดับการอัปเดตที่เฉพาะเจาะจง ในสถานการณ์สมมตินี้คุณอาจต้องคิดโครงสร้างที่ซับซ้อนกว่ารายการเพื่อเก็บวัตถุและการพึ่งพาระหว่างกัน
การแสดงผลวัตถุในเกม
ในบางเกมฉากและวัตถุจะสร้างลำดับชั้นของโหนดลูกแม่และควรแสดงในลำดับที่ถูกต้องและมีการแปลงสัมพันธ์กับพ่อแม่ ในกรณีเหล่านี้คุณอาจต้องการโครงสร้างที่ซับซ้อนกว่าเช่นกราฟฉาก (โครงสร้างต้นไม้) แทนที่จะเป็นรายการเดียว:
เหตุผลอื่น ๆ อาจเป็นเช่นนั้นโดยใช้โครงสร้างข้อมูลการแบ่งพาร์ติชันเพื่อจัดระเบียบวัตถุของคุณในวิธีที่ช่วยเพิ่มประสิทธิภาพในการดำเนินการคัดกรองมุมมอง frustum