ทรัพยากรที่ดีที่สุดในการออกแบบและพัฒนาเกมแบบมัลติเธรดหรือเกมเอ็นจิ้นคืออะไร?


44

ทรัพยากรที่ดีที่สุดในการออกแบบและพัฒนาเกมแบบมัลติเธรดหรือเกมเอ็นจิ้นคืออะไร? เห็นได้ชัดว่านี่เป็นที่ที่คอมพิวเตอร์มุ่งหน้าฉันตั้งใจจะศึกษาหัวข้อนี้และฉันต้องการทราบว่ามีแหล่งข้อมูลและตัวอย่างอะไรบ้าง


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

@ Genemlock ดีใจที่คุณทันเวลา จะไม่ต้องการคำถามนอกหัวข้อที่นี่
Ricket

คำตอบ:



24

อย่าครั่นคร้ามกระทู้ชุดโดย Intel ค่อนข้างดี มันมี 3 ส่วนพื้นฐานที่ครอบคลุมใน 1.5 คนแรก

สรุปสิ่งที่ครอบคลุมใน 1.5 แรก:

หลีกเลี่ยงการสลายตัวตามหน้าที่

ป้อนคำอธิบายรูปภาพที่นี่

ก่อนอื่นพวกเขาไม่แนะนำให้ใช้ Function Decomposition ฟังก์ชั่นการสลายตัวเป็นเพียง "ใส่ AI ในหนึ่งกระทู้ใส่เสียงในหัวข้ออื่นใส่กราฟิกในหัวข้อที่ 3"

แบบนั้นแบบนี้

ป้อนคำอธิบายรูปภาพที่นี่

นั่นคือไม่ดี ™ คุณต้องการใช้Data Decompositionแทน

ใช้การสลายตัวของข้อมูล

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

ป้อนคำอธิบายรูปภาพที่นี่

มันเป็นเหมือนคนกลุ่มหนึ่งกำลังกินพิซซ่า ทุกคนใช้เวลาชิ้นหนึ่งจนพิซซ่าเสร็จ

ป้อนคำอธิบายรูปภาพที่นี่

แน่นอนตอนนี้ฉันหิว



5

นี่คือการโพสต์บล็อกที่ให้ตัวอย่างในทางปฏิบัติในการบริหารงาน มันอนุมานความรู้เกี่ยวกับการออกแบบเครื่องยนต์แบบขนานในส่วนของคุณ แต่คุณอาจพบว่ามันมีประโยชน์ในฐานะ 'การอ่านขั้นสูง'


1

ฉันคิดว่าคุณควรมองหาวิธีการทำงานหรืองานตาม

Game Engine Gems มีบทความ 2 หรือ 3 บทความในหัวเรื่อง

มีการนำเสนอสองสามเรื่องในการประชุมที่แตกต่างกัน ฯลฯ

ตัวอย่างเช่น "Parallel Futures ของ Game Engine" โดย Johan Andersson

ลองดูที่ GDC Vault ที่มีงานนำเสนอและวิดีโอเต็มรูปแบบเกี่ยวกับเรื่องในส่วนที่ว่าง http://www.gdcvault.com/

PS ไม่สามารถโพสต์ลิงก์โดยตรงอีกต่อไปเนื่องจากเป็นผู้ใช้ใหม่ ds


0

หนังสือGame Engine Architectureยังมีข้อมูลบางอย่างเกี่ยวกับวิธีการออกแบบเอ็นจินเกมด้วยการสนับสนุนเธรดหลายเธรด

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