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