ฉันกำลังพัฒนา platformer 2D กับเพื่อน ๆ เราได้ใช้ชุดเริ่มต้น XNA Platformer ซึ่งใช้ไฟล์. txt เพื่อจัดเก็บแผนที่ย่อย ในขณะที่ง่าย แต่ก็ไม่ได้ให้การควบคุมและความยืดหยุ่นเพียงพอกับการออกแบบระดับ ตัวอย่าง: สำหรับเนื้อหาหลายเลเยอร์จำเป็นต้องใช้หลายไฟล์วัตถุแต่ละชิ้นได้รับการแก้ไขบนกริดไม่อนุญาตให้มีการหมุนของวัตถุจำนวนอักขระที่ จำกัด เป็นต้นดังนั้นฉันจึงทำการวิจัยเกี่ยวกับวิธีการจัดเก็บข้อมูลระดับ และไฟล์แผนที่
สิ่งนี้เกี่ยวข้องกับการจัดเก็บระบบไฟล์ของแผนที่ย่อยไม่ใช่โครงสร้างข้อมูลที่เกมจะใช้ในขณะที่ทำงานอยู่ การแมปไทล์ถูกโหลดลงในอาร์เรย์ 2D ดังนั้นคำถามนี้เกี่ยวกับแหล่งที่มาเพื่อเติมอาร์เรย์
การใช้เหตุผลสำหรับฐานข้อมูล: จากมุมมองของฉันฉันเห็นความซ้ำซ้อนของข้อมูลน้อยลงโดยใช้ฐานข้อมูลเพื่อเก็บข้อมูลไทล์ ไทล์ในตำแหน่ง x, y ที่มีคุณสมบัติเหมือนกันสามารถนำกลับมาใช้ใหม่ได้จากระดับหนึ่งไปอีกระดับ ดูเหมือนว่ามันจะง่ายพอที่จะเขียนวิธีการดึงไทล์ทั้งหมดที่ใช้ในระดับเฉพาะจากฐานข้อมูล
เหตุผลสำหรับ JSON / XML: ไฟล์ที่สามารถแก้ไขได้ด้วยสายตาการเปลี่ยนแปลงสามารถติดตามผ่าน SVN ได้ง่ายขึ้นมาก แต่มีเนื้อหาซ้ำแล้วซ้ำอีก
มีข้อเสียใด ๆ (เวลาโหลด, เวลาในการเข้าถึง, หน่วยความจำและอื่น ๆ ) เปรียบเทียบกับอีกรุ่นหรือไม่? และสิ่งที่ใช้กันทั่วไปในอุตสาหกรรม?
ปัจจุบันไฟล์มีลักษณะดังนี้:
....................
....................
....................
....................
....................
....................
....................
.........GGG........
.........###........
....................
....GGG.......GGG...
....###.......###...
....................
.1................X.
####################
1 - จุดเริ่มต้นของผู้เล่น X - ระดับทางออก,. - พื้นที่ว่าง, # - แพลตฟอร์ม, G - อัญมณี