เตรียมแพตช์ก่อนเปิดให้เล่น
สารบัญ · คู่มือนักพัฒนา · คู่มือผู้เล่น
หน้านี้เป็นขั้นตอนสำหรับตอนเริ่มพัฒนา ตอนนี้เรายังค้นข้อมูลและร่างแผนอยู่ ยังไม่ได้แก้อีมูเลเตอร์ ตัวเกม ฐานข้อมูล หรือย้ายข้อมูลตัวละคร
1. ตกลงว่าแพตช์นี้จะเปลี่ยนอะไร
เลือกบทและกลุ่มแพตช์ใน release-plan.json วันที่ในประวัติศาสตร์เป็นของเซิร์ฟเวอร์เดิม ส่วนวันเปิดของเราให้กำหนดแยกเมื่อพร้อม Morroc กับ Moscovia เป็นสองบทใน Episode 12.1 ชุดเดียวกันของไทย อย่าเผลอแยกเป็นสอง Episode ที่เปิดคนละรอบ
บันทึกว่าจะอัปเดตจากช่วงไหนไปช่วงไหน พร้อมรุ่นโค้ดอีมูเลเตอร์ (commit) รุ่นตัวเกม ข้อมูลโลกครบชุด และรายการแหล่งข้อมูลที่ใช้ ถ้าเรื่องใดยังไม่รู้แน่ ให้เลือกว่าจะรอหลักฐานเพิ่ม เลื่อนระบบนั้นไปก่อน หรือใช้ค่าที่ประมาณขึ้นพร้อมบอกให้ชัด แม้โค้ดทดสอบผ่าน ก็ยังไม่ได้ยืนยันว่าเกมเก่าเคยใช้กติกานั้น
2. เขียนค่าเดิมและค่าใหม่ให้เทียบกันได้
ทุกกติกาหรือรายการข้อมูลที่เปลี่ยนต้องมี ID ค่าเดิม ค่าใหม่ หน่วย วิธีปัดเศษ เซิร์ฟเวอร์ที่ใช้ แหล่งอ้างอิง และแพตช์ของเราที่เริ่มใช้ บอกด้วยว่าหลักฐานแน่นอนแค่ไหน ต้องระบุทั้งสิ่งที่เพิ่มและสิ่งที่เอาออก ส่วนที่ใช้ค่าต่อจากแพตช์ก่อนต้องอ้างถึงชุดข้อมูลนั้น ห้ามปล่อยช่องว่างจนเผลอใช้ค่าเริ่มต้นจากอีมูเลเตอร์ยุคใหม่
ตรวจแยกเรื่องการฟื้น HP/SP เอง สกิลฟื้นพลัง ยา EXP ที่ใช้ขึ้นเลเวล EXP ที่ได้รับ มอนสเตอร์ สกิล จุดเกิด ดรอป ร้านค้า เควสต์ แผนที่ อาชีพ และตัวเกม กิจกรรมชั่วคราวต้องระบุว่าใครได้โบนัส เริ่ม–จบเมื่อไร และคิดโบนัสซ้อนกันอย่างไร
3. ตรวจว่าตัวละครเดิมเล่นต่อได้อย่างไร
เป้าหมายคือใช้ตัวละครเดิมเล่นไปกับโลกที่ค่อย ๆ เปลี่ยน ถ้าเราจะเก็บตัวละครไว้ต่างจากการล้างข้อมูลในอดีต ต้องบอกไว้ชัด เมื่อเปลี่ยนตาราง EXP ให้เลือกว่าจะรักษาเลเวล EXP สะสม หรือสัดส่วนที่เก็บไปแล้วแบบไหน
ตรวจของในตัว อุปกรณ์ การ์ด ตีบวก สกิล สัตว์เลี้ยง กิลด์ เวลาดันเจี้ยนปาร์ตี้ ความคืบหน้าเควสต์ จุดเซฟ และจุดจดวาร์ป ทำรายงานให้เห็นก่อนว่าข้อมูลจะเปลี่ยนอย่างไร สำรองทั้งตัวละครและข้อมูลโลก พร้อมบันทึกโค้ด ฐานข้อมูล และตัวเกมรุ่นที่ตรงกัน
ถ้าต้องย้อนกลับ ต้องกู้ข้อมูลสำรองครบชุด การคำนวณย้อนอย่างเดียวอาจเอาไอเท็มหรือเควสต์ที่หายไปกลับมาไม่ได้ และต้องวางแผนด้วยว่าจะจัดการข้อมูลใหม่ที่เกิดหลังเปิดอัปเดตอย่างไร
4. ทดสอบเกมชุดที่จะเปิดจริง
- ทดสอบตามรายการของบทนั้น โดยกำหนดข้อมูลเริ่มต้นและผลที่ควรได้ให้ชัด ใช้ข้อมูลเกมชุดเดียวกับที่จะเปิดจริง
- ตรวจว่าไอเท็ม แผนที่ อาชีพ เควสต์ และสกิลยุคถัดไปยังเข้าใช้ไม่ได้ แม้ลองเข้าจากทางอื่น
- ทดลองย้ายข้อมูลครั้งแรก ย้ายซ้ำ หยุดกลางทาง และกู้ข้อมูลสำรอง ตรวจว่าข้อมูลยังถูกต้องทุกกรณี
- ลองเล่นส่วนที่เปลี่ยนผ่านตัวเกมรุ่นที่เลือก ตรวจภาษาไทย ทางที่เดินได้ และตำแหน่ง NPC
- เก็บผลทดสอบเกมแยกจากหลักฐานประวัติศาสตร์ พร้อมรหัสตรวจไฟล์ (hash) ของชุดที่ทดสอบและปัญหาที่ยังเหลือ
ขั้นตอนนี้จะทำเมื่อเริ่มพัฒนาอีมูเลเตอร์แล้ว ตอนนี้ยังไม่ได้ทดสอบกับเซิร์ฟเวอร์เกม
5. เขียนประกาศให้ผู้เล่น
ใช้คู่มือผู้เล่นของบทเป็นต้นร่าง แล้วเขียนเฉพาะสิ่งที่ตรวจแล้วว่าใช้ได้ในเซิร์ฟเวอร์ของเรา ระบุวันเปิด ของใหม่ กติกาที่เปลี่ยน สิ่งที่ต้องเตรียม วิธีดูแลตัวละครเดิม วันจบกิจกรรม และข้อจำกัด ถ้าใช้สูตรที่ประมาณขึ้น ต้องบอกตรง ๆ ไม่เรียกว่าเป็นสูตรทางการของไทยที่ยืนยันแล้ว
6. เปิดอัปเดตและบันทึกผล
เมื่ออนุมัติให้เปิดแพตช์แล้ว ให้สำรองข้อมูลครบชุด ย้ายข้อมูลตามแผน ตรวจเกมที่เปิดจริง และบันทึกเวลาเปิดของเรา อัปเดตรายการไฟล์กับประกาศผู้เล่นพร้อมกัน โดยไม่เปลี่ยนวันในประวัติศาสตร์ หากตรวจไม่ผ่าน ให้คงแพตช์เดิมไว้และเก็บข้อมูลปัญหาเพื่อแก้ไข
แบบบันทึกแต่ละอัปเดต
| รายการ | ข้อมูลที่ต้องมี |
|---|---|
| บท / กลุ่มแพตช์ | ID เดิมจากคู่มือ เพื่ออ้างถึงแพตช์เดียวกันได้เสมอ |
| อัปเดตของเรา | ช่วงปัจจุบัน → ช่วงถัดไป วันที่นัดและวันที่เปิดจริง |
| ชุดเกมที่ใช้ | commit ของอีมูเลเตอร์ รุ่นตัวเกม และ hash ของข้อมูลโลก |
| หลักฐาน | ข้อเท็จจริงที่ยืนยันแล้ว ค่าที่ประมาณขึ้น และเรื่องที่เลื่อนไปก่อน |
| ตัวละคร | วิธีเก็บข้อมูลเดิม รายงานก่อนย้าย ข้อมูลสำรอง และผลการย้าย |
| ผลทดสอบ | รายการของบทนั้น การกันเนื้อหายุคถัดไป การลองเล่น และผลกู้ข้อมูล |
| ประกาศ | แพตช์โน้ตของเราและสิ่งที่ผู้เล่นต้องเตรียม |
| ผลลัพธ์ | ยังไม่เปิด ทดสอบผ่าน เปิดแล้ว หรือย้อนกลับ พร้อมลิงก์ผลตรวจ |
อ่านรายละเอียดการเก็บข้อมูลเกมเป็นชุดและการย้ายข้อมูลใน แนวทางการพัฒนา (อังกฤษ)