วิธีจัดการข้อมูลนักออกแบบที่เปลี่ยนแปลงไปพร้อมกับการเปลี่ยนข้อมูลผู้เล่น
ฉันมีเกมออนไลน์ที่ผู้เล่นสามารถทำให้โลกเป็นรูปร่างในทางใดทางหนึ่งเช่น ที่อยู่อาศัยของ Ultima Online ที่ซึ่งคุณสามารถสร้างบ้านของคุณได้โดยตรงบนบางส่วนของแผนที่โลก สิ่งเหล่านี้คือการเปลี่ยนแปลงที่ควรมีอยู่ตลอดเวลาซึ่งเป็นส่วนหนึ่งของโลกที่ยังคงอยู่ ในขณะเดียวกันทีมออกแบบกำลังเพิ่มเนื้อหาใหม่และแก้ไขเนื้อหาเก่าเพื่อปรับปรุงและขยายเกมสำหรับผู้เล่นใหม่ พวกเขาจะทำสิ่งนี้บนเซิร์ฟเวอร์การพัฒนาก่อนในระหว่างการทดสอบและหลังจากนั้นจะต้องรวมงานของพวกเขาเข้ากับการทำงานของผู้เล่นบนเซิร์ฟเวอร์สด สมมติว่าเราแก้ไขปัญหาการออกแบบเกม - เช่น ผู้เล่นสามารถสร้างได้เฉพาะในพื้นที่ที่กำหนดเท่านั้นดังนั้นพวกเขาจึงไม่เคยขัดแย้งกับการแก้ไขนักออกแบบ - วิธีใดที่ดีในการจัดการข้อมูลหรือจัดโครงสร้างข้อมูลเพื่อหลีกเลี่ยงความขัดแย้งเมื่อข้อมูลนักออกแบบใหม่ถูกรวมเข้ากับข้อมูลเครื่องเล่นใหม่ ตัวอย่างที่ 1: ผู้เล่นสร้างไอเท็มชนิดใหม่และเกมกำหนด ID 123456 ให้กับมัน อินสแตนซ์ของไอเท็มนั้นอ้างอิงกลับไปที่ 123456 ตอนนี้ลองนึกภาพว่านักออกแบบเกมมีระบบที่คล้ายกันและผู้ออกแบบสร้างรายการใหม่ด้วยหมายเลข 123456 สิ่งนี้สามารถหลีกเลี่ยงได้อย่างไร ตัวอย่างที่ 2: ใครบางคนสร้าง mod ที่เป็นที่นิยมซึ่งทำให้มังกรของคุณเน้นเสียงภาษาฝรั่งเศส มันมีสคริปต์ที่มีวัตถุใหม่ที่เรียกว่าassignFrenchAccentพวกเขาใช้ในการกำหนดสินทรัพย์เสียงใหม่ให้กับวัตถุมังกรแต่ละ แต่คุณกำลังจะปรับใช้ DLC "Napoleon vs Smaug" ของคุณซึ่งมีชื่อเดียวกัน - คุณจะทำสิ่งนี้ได้อย่างไรโดยไม่มีปัญหาการบริการลูกค้ามากมาย? ฉันคิดถึงกลยุทธ์ต่อไปนี้: คุณสามารถใช้ไฟล์ / ไดเร็กตอรี่ / ฐานข้อมูลแยกกัน 2 ตัว แต่การอ่านของคุณนั้นซับซ้อนอย่างมาก "แสดงรายการทั้งหมด" จะต้องอ่านหนึ่งรายการในฐานข้อมูลผู้ออกแบบและอีกหนึ่งรายการที่อ่านบนฐานข้อมูลผู้เล่น …