ฉันได้ยินเกี่ยวกับการออกแบบที่ขับเคลื่อนด้วยข้อมูลและได้ทำการค้นคว้าเกี่ยวกับมันมาระยะหนึ่งแล้ว ดังนั้นฉันได้อ่านหลายบทความเพื่อให้ได้แนวคิด
หนึ่งในบทความคือData Driven Design ที่เขียนโดย Kyle Wilson. ตามที่เขาอธิบายดูเหมือนว่ารหัสแอปพลิเคชัน (เช่นรหัสสำหรับการควบคุมทรัพยากรเช่นหน่วยความจำเครือข่าย ... ) และรหัสเกมควรแยกจากกันและรหัสเกมตรรกะควรถูกขับเคลื่อนโดยแหล่งข้อมูลภายนอก ณ จุดนี้ฉันสามารถจินตนาการได้ว่าผู้พัฒนาจะเขียนตัวแก้ไขเกมซึ่งยอมรับข้อมูลภายนอกเกี่ยวกับวัตถุในเกม (เช่นข้อมูลตัวละครข้อมูลอาวุธข้อมูลแผนที่ ... ) การออกแบบสถานการณ์จะถูกเขียนสคริปต์โดยภาษาที่กำหนดเอง / เครื่องมือที่เขียนโดยโปรแกรมเมอร์เพื่อให้ผู้ออกแบบเกมสร้างปฏิสัมพันธ์ระหว่างในวัตถุในเกม ผู้ออกแบบเกมจะใช้ภาษาสคริปต์ที่มีอยู่ / กำหนดเองเพื่อเขียนสคริปต์สำหรับเกมหรือเครื่องมือลากแล้ววางเพื่อสร้างโลกของเกม ตัวอย่างของวิธีการใช้เครื่องมือที่ฉันคิดได้คือ World Editor ซึ่งโดยปกติจะบรรจุพร้อมกับเกมของ Bliizard
อย่างไรก็ตามบทความอื่นต่อต้านการใช้ข้อมูลขับเคลื่อนการออกแบบ, การออกแบบกรณีกับข้อมูลขับเคลื่อน ผู้เขียนแนะนำว่าอย่าปล่อยให้การออกแบบเกมขับเคลื่อนโดยข้อมูลเพราะมันต้องใช้เวลามากกว่าในการพัฒนาเกมเนื่องจากผู้ออกแบบเกมมีภาระในการเขียนโปรแกรม แต่จะมีผู้เขียนโปรแกรมเกมเขียนโปรแกรมเกมอย่างอิสระจากแบบร่างและได้รับการตรวจสอบโดยผู้ออกแบบเกมหลังจากการเขียนโปรแกรมเกมเสร็จสิ้น เขาเรียกสิ่งนี้ว่าเป็นโปรแกรมเมอร์ สิ่งที่ฉันคิดว่าวิธีนี้คล้ายกับวิธีที่ฉันเคยทำ: ตรรกะของเกมเป็นแอปพลิเคชันตัวเองตามที่กล่าวถึงข้างต้นความคิดแอพพลิเคชั่นเป็นตัวแก้ไขเกมและเกมจริงได้รับการออกแบบตามเครื่องมือ
สำหรับฉันแล้ววิธีแรกดูเหมือนจะสมเหตุสมผลมากกว่าเนื่องจากส่วนประกอบเกมสามารถนำกลับมาใช้ใหม่ได้หลายโครงการ ด้วยวิธีที่สองซึ่งตรงข้ามกับการออกแบบที่ขับเคลื่อนด้วยข้อมูลรหัสเกมเป็นของเกมนั้นเท่านั้น นี่คือเหตุผลที่ฉันคิดว่า Warcraft มีประเภทเกมมากมายเช่น Warcraft ดั้งเดิมและแผนที่ที่กำหนดเองต่าง ๆ และหนึ่งในเกมที่โด่งดังที่สุด: DOTA ซึ่งกำหนดแนวใหม่จริงๆ ด้วยเหตุนี้ฉันได้ยินคนเรียก World Editor ว่าเป็นเอ็นจิ้นเกม นี่เป็นความจริงที่ว่าเอ็นจิ้นเกมควรเป็นอย่างไร
ดังนั้นหลังจากทั้งหมดนี้ฉันแค่ต้องการตรวจสอบว่ามีข้อบกพร่องในความเข้าใจของฉันเกี่ยวกับความคิดเหล่านี้ (ข้อมูลที่ขับเคลื่อนด้วยไดรฟ์โปรแกรมเมอร์โปรแกรมเมอร์สคริปต์ ฯลฯ ... )?