ขั้นตอนเหล่านี้ที่คุณกล่าวถึงมักจะกระทำในเครื่องมือแยก มันเป็นเพียงเกมเอ็นจิ้นธรรมดา ๆ ที่มีพวกมันในครั้งเดียว ลำดับของคุณ
for each object
do physics
do game logic
draw
กลายเป็น
call physics subsystem
call game logic subsystem
call drawing subsystem
เครื่องยนต์ฟิสิกส์ดูแลตำแหน่งและขนาด
เครื่องยนต์เกมลอจิกดูแลการตีความสิ่งที่ฟิสิกส์เครื่องยนต์เปลี่ยน (เขาอาจขัดขวางจุดบาง ... ), สิ่งที่ตัวละครเป้าหมายมีและสิ่งที่พฤติกรรมของพวกเขาควรจะทำสคริปต์เขาทำงานที่กำหนด (ซึ่งคิดว่าฟังก์ชั่น)
เครื่องมือวาดภาพวาดสิ่งที่วัตถุที่มองเห็นได้และเขารู้ว่าวัตถุที่มองเห็นได้เพราะเครื่องยนต์ Quake ชนิดของการโกงที่นี่ (ดูส่วนการวาด)
คำแนะนำของฉันสำหรับคุณคือการศึกษาว่าการจำลองสถานการณ์ทำได้อย่างไรแทนที่จะใช้เอ็นจิ้นเกม มีการพัฒนาเกมขนาดใหญ่เกี่ยวกับการพัฒนาเกมและเอ็นจิ้นเกมทำในภาษาที่จำเป็น (เนื่องจากประเพณีและความเร็ว) ดังนั้นฉันจึงให้ความกระจ่างกับฉันมากขึ้นที่จะได้รับหนังสือเรียนที่ดี (แทนที่จะเป็นทฤษฎี) และจากนั้นดูเครื่องยนต์ (ฝึกหัด) แทนที่จะดูเครื่องยนต์และปริศนาเป็นเวลาหลายชั่วโมงว่าพวกเขาทำมันอย่างไร
ฟิสิกส์
ความคิดทั้งหมดของการทำซ้ำทุกหน่วยงานและทำ {คิดว่าวาด} อาจนำไปสู่ปัญหา จะมีความขัดแย้งเป็นต้น ฉันเชื่อว่า Valve มี Havok และฉันคิดว่า Havok จะดูแลฟิสิกส์ที่ถูกต้องเพียงพอ
คิด
คิดว่าฟังก์ชั่นจะทำงานเมื่อเวลาในเกมเท่ากับเวลาในการคิดต่อไป มันใช้วิธีนี้ใน Quake engine และ Quake engine เป็นพื้นฐานสำหรับเครื่องยนต์ Half Life มันไม่ได้ทำงานทุกครั้ง
ภายในควรเป็นการวนซ้ำอย่างง่าย ๆ ผ่านรายการของเอนทิตีและตรวจสอบว่าเวลาผ่านไปเพื่อเรียกฟังก์ชันคิด ความซับซ้อนของเวลาจะเป็น O (N) โดยที่ N คือจำนวนเอนทิตี
หากมีหน่วยงานจำนวนมากคุณควรวัดว่าจะปรับปรุง fps มากแค่ไหน โปรดทราบว่าเนื่องจากกฎหมายของ Amdahlจึงอาจมองไม่เห็นการเร่งความเร็ว ฉันหมายถึงคุณทำซ้ำรางรายการทั้งหมดและลดและตรวจสอบหนึ่งหมายเลข
ฉันจะเร่งความเร็วโดยการจัดเรียงเอนทิตีโดยคิดต่อไป (สร้างรายการตัวชี้ไปยังเอนทิตีและเรียงลำดับในแต่ละครั้งไม่ใช่อาเรย์ของเอนทิตีเนื่องจากเอนทิตีอาจเปลี่ยนการคิดถัดไปของพวกเขาทุกเวลา 1) ในรายการ)
นอกจากนี้คุณยังควรมีลักษณะที่O (1) การจัดตารางเวลาในลินุกซ์
วาด
เอ็นจิ้นดึงสิ่งที่มองเห็นได้โดยประมาณจากพื้นที่ซึ่งเป็นกล้อง ระดับเกมแบ่งพาร์ติชันเป็นต้นไม้และพื้นที่เป็นใบไม้ของต้นไม้นั้น ฉันจะไม่รบกวนคุณโดยมีรายละเอียดเกี่ยวกับเรื่องนี้ ... ดังนั้นหากมองเห็นเอนทิตีมันจะถูกใส่เข้าไปในกลุ่มของเอนทิตีที่มองเห็นได้และถูกดึงออกมา
พวกเขาเก็บสิ่งที่พื้นที่เป็นพื้นที่ที่มองเห็นได้ มันถูกเรียกว่า"ชุดศักยภาพที่มองเห็นได้", PVSสั้น ๆ มีการสร้างภาพของ PVSเป็นแคปซูลสีเขียวเป็นผู้เล่นและรอบตัวเขาจะแสดงสิ่งที่ PVS ของเขามี
<some commercial engine>
นั้น?