ฉันจะทำให้ข้อความที่ผ่านระหว่างเธรดในเอ็นจินแบบมัลติเธรดยุ่งยากน้อยลงได้อย่างไร?
เอ็นจิ้น C ++ ที่ฉันกำลังทำงานอยู่นั้นแบ่งออกเป็นหลายเธรดขนาดใหญ่ (สำหรับการสร้างเนื้อหาขั้นตอนของฉัน), การเล่นเกม (สำหรับ AI, สคริปต์, การจำลอง), ฟิสิกส์และการแสดงผล เธรดสื่อสารกันผ่านวัตถุข้อความขนาดเล็กซึ่งส่งผ่านจากเธรดไปยังเธรด ก่อนที่จะก้าวด้ายจะประมวลผลข้อความที่เข้ามาทั้งหมด - การปรับปรุงเพื่อการแปลงเพิ่มและลบวัตถุ ฯลฯ บางครั้งหนึ่งเธรด (รุ่น) จะสร้างบางสิ่งบางอย่าง (ศิลปะ) และส่งผ่านไปยังเธรดอื่น (เรนเดอร์) สำหรับเจ้าของถาวร ในช่วงต้นกระบวนการและฉันสังเกตเห็นสิ่งที่สอง: ระบบการส่งข้อความยุ่งยาก การสร้างชนิดข้อความใหม่หมายถึงคลาสย่อยคลาสคลาสพื้นฐานของข้อความการสร้าง enum ใหม่สำหรับประเภทของมันและการเขียนตรรกะสำหรับวิธีที่เธรดควรตีความชนิดข้อความใหม่ มันเป็นความเร็วในการพัฒนาและมีแนวโน้มที่จะเกิดข้อผิดพลาดแบบผิดพลาด (Sidenote- การทำงานกับสิ่งนี้ทำให้ฉันรู้สึกว่าภาษาไดนามิกที่ยอดเยี่ยมสามารถเป็นเช่นนั้นได้!) มีวิธีที่ดีกว่าในการทำเช่นนี้? ฉันควรใช้บางอย่างเช่น boost :: bind เพื่อทำให้เป็นอัตโนมัติหรือไม่ ฉันเป็นห่วงว่าถ้าฉันทำอย่างนั้นฉันจะสูญเสียความสามารถในการพูดจัดเรียงข้อความตามประเภทหรือบางสิ่งบางอย่าง ไม่แน่ใจว่าการจัดการแบบนั้นจะจำเป็นหรือไม่ จุดแรกมีความสำคัญเนื่องจากเธรดเหล่านี้สื่อสารกันมาก การสร้างและส่งข้อความเป็นส่วนสำคัญในการทำให้สิ่งต่าง ๆ เกิดขึ้น ฉันต้องการที่จะปรับปรุงระบบดังกล่าว แต่ยังเปิดให้กระบวนทัศน์อื่น ๆ ที่อาจเป็นประโยชน์เช่นกัน มีการออกแบบหลายเธรดที่แตกต่างกันที่ฉันควรคิดเพื่อช่วยให้ง่ายขึ้นหรือไม่ ตัวอย่างเช่นมีทรัพยากรบางอย่างที่เขียนไม่บ่อยนัก แต่มักอ่านจากหลายเธรด …