คำถามติดแท็ก xml

XML (Extensible Markup Language) เป็นภาษามาร์กอัปที่กำหนดชุดของกฎสำหรับการเข้ารหัสเอกสารในรูปแบบที่มนุษย์สามารถอ่านได้และอ่านได้ด้วยเครื่อง

6
รูปแบบไฟล์ที่ดีสำหรับการบันทึกข้อมูลเกมคืออะไร [ปิด]
ฉันต้องการบันทึกข้อมูลเกมที่กำหนดเอง แผนที่ผู้เล่น ฯลฯ พวกเขาทั้งหมดจะมี "วัตถุย่อย" ตัวอย่างเช่นแผนที่และแผนที่จะมี "อาร์เรย์" ของไทล์ เช่นข้อมูลลำดับชั้น หวังว่าไม่มีอะไรไบนารี อะไรคือรูปแบบที่ดีสำหรับสิ่งเหล่านี้ จนถึงตอนนี้ฉันก็ถือว่า: Serailization:นี่คือเร็วและง่าย แต่มีแนวโน้มที่จะแตกเมื่อฉันเปลี่ยนคลาสพื้นฐาน :( XML:ฉันเกลียดการแยกวิเคราะห์สิ่งนี้จริงๆ กรณีทดสอบของฉันมีโค้ดมากกว่า 100 บรรทัดและดูเหมือนว่า "งานที่ยุ่ง" มากมายสำหรับรูปแบบที่เรียบง่ายมาก INI:จะค่อนข้างซุ่มซ่ามสำหรับข้อมูลลำดับชั้น Protobuf:ไม่เคยใช้ แต่อ่านว่าคุณต้องทำเยอะแยะไปหมดและทำลายถ้าคุณเปลี่ยนชั้นเรียน ตัวเลือกอื่น? นั่นคือเหตุผลที่ฉันมาที่นี่! แก้ไข: นี่คือ Java btw แก้ไข 2: ฉันตัดสินที่ "การทำให้เป็นอันดับไบนารีควบคุม" (ดูด้านล่าง) ข้อดี: มันรวดเร็ว มันมีขนาดเล็ก (บนดิสก์) และสามารถบีบอัด / คลายการบีบอัดได้อย่างง่ายดายระหว่างอ่าน / เขียน มันง่ายมากที่จะอ่าน / เขียนจากเกมและชุดเครื่องมือ ฉันสามารถตัดสินใจว่าจะรวม / ไม่รวมวัตถุ …
37 java  file-format  xml  data  file 

8
จะเป็นการดีกว่าถ้าใช้ XML / JSON / Text หรือฐานข้อมูลเพื่อจัดเก็บเนื้อหาของเกม
ฉันกำลังพิจารณาวิธีการนำเกมที่ใช้องค์ประกอบมาใช้ซึ่งดูเหมือนจะเป็นสิ่งที่ร้อนแรงและฉันชอบความคิดในการออกแบบที่ยืดหยุ่นเช่นนี้ หนึ่งในคุณสมบัติของการออกแบบคือการเพิ่มสิ่งใหม่ ๆ ลงในเกมสามารถทำได้ผ่านข้อมูลซึ่งมักจะนำเสนอเป็นการโหลดเนื้อหาผ่านไฟล์ข้อความเช่น XML นี่เป็นข้อได้เปรียบของการเป็นมนุษย์ที่สามารถอ่านและแก้ไขได้อย่างง่ายดายในตัวแก้ไขข้อความใด ๆ ข้อเสียข้อความอาจช้าลงในการจัดการและคุณต้องจัดการชุดข้อมูลขนาดใหญ่ รูปแบบข้อความที่คล้ายกันเช่น JSON หรือไฟล์กำหนดค่าจะมีประโยชน์เหมือนกัน ในอีกด้านหนึ่งมีฐานข้อมูลขนาดเล็กพกพาได้เช่น SQLite หรือ Tokyo Cabinet ในขณะที่คนอื่นไม่สามารถอ่านได้โดยตรงไฟล์เหล่านี้ใช้งานง่ายและฉันคิดว่าเครื่องมือการแก้ไขบางอย่างน่าจะเหมาะสำหรับการออกแบบเนื้อหาเกม การใช้ฐานข้อมูลช่วยให้การจัดเก็บข้อมูลการกำหนดค่าที่สอดคล้องกันและการดึงง่าย คุณสามารถจัดลำดับข้อมูลลงในฐานข้อมูลเพื่อบันทึกเกมได้เช่นกัน ประสิทธิภาพการทำงานที่ชาญฉลาดฉันคิดว่า XML โดยทั่วไปจะเร็วกว่าสำหรับไฟล์ขนาดเล็ก ฉันคิดว่าเกมจริง ๆ จะมีวัตถุในเกมมากมาย ดังนั้นคำถาม: วิธีใดดีกว่า ฉันเอนหลังไปยังฐานข้อมูล แต่ฉันต้องการที่จะรู้ว่ามีข้อผิดพลาดที่ซ่อนอยู่หรือข้อได้เปรียบที่แข็งแกร่งจริงกับไฟล์ข้อความ หรือหากมีทางเลือกอื่นนอกเหนือจากนี้ (เป็นรูปแบบไบนารี่เป็นรูปแบบไบนารีฉันเดา?)

3
ทีมป้องกันการเขียนทับทำงานในไฟล์ต้นฉบับได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มันเป็นไปได้สำหรับฉันที่มีหลายคนที่กำลังทำงานอยู่ในขณะเดียวกันเช่นเอ็นจิ้นเกม สมมติว่านักพัฒนาคนหนึ่งกำลังทำงานAudio.cppและนักพัฒนาที่สองก็กำลังทำงานอยู่Audio.cppสิ่งนี้จัดการโดยทั่วไปในทีมขนาดใหญ่เพื่อต่อสู้กับการเขียนทับได้อย่างไร (ในคำอื่น ๆ ที่จะหยุดสองนักพัฒนาจากการเปิดไฟล์จนกว่านักพัฒนาคนหนึ่งจะเสร็จสิ้น)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

4
วิธีการเลือกวิธีการจัดเก็บข้อมูล?
ให้ปลาแก่ผู้ชายและให้อาหารเขาหนึ่งวัน สอนชายคนหนึ่งให้ตกปลาและคุณให้อาหารเขาตลอดชีวิต - สุภาษิตจีน ฉันสามารถถามที่เก็บข้อมูลชนิดใดที่ฉันควรใช้สำหรับโครงการจริงของฉัน แต่ฉันต้องการเรียนรู้การตกปลาดังนั้นฉันไม่จำเป็นต้องขอปลาในแต่ละครั้งที่ฉันเริ่มโครงการใหม่ ดังนั้นจนกระทั่งฉันใช้สองวิธีในการจัดเก็บข้อมูลในโครงการที่ไม่ใช่เกมของฉัน: ไฟล์ XML และฐานข้อมูลเชิงสัมพันธ์ ฉันรู้ว่ายังมีฐานข้อมูลประเภทอื่น ๆ ของประเภทNoSQL อย่างไรก็ตามฉันไม่ทราบว่ามีตัวเลือกเพิ่มเติมให้ฉันหรือจะเลือกในครั้งแรกนอกเหนือจากการเลือกอย่างใดอย่างหนึ่งโดยพลการ ดังนั้นคำถามต่อไปนี้: ฉันจะเลือกประเภทของการจัดเก็บข้อมูลสำหรับโครงการเกมได้อย่างไร และฉันจะสนใจเกณฑ์ต่อไปนี้เมื่อเลือก: ขนาดของโครงการ แพลตฟอร์มที่กำหนดเป้าหมายโดยเกมรวมถึงแพลตฟอร์มการพัฒนาที่ใช้ ความซับซ้อนของโครงสร้างข้อมูล เพิ่มความสะดวกในการพกพาข้อมูลในหลาย ๆ โครงการ เพิ่ม 2 การใช้ข้อมูลโดยอัตโนมัติระหว่างโครงการต่าง ๆ (เช่นข้อมูลผู้ใช้) เพิ่มความถี่ควรเข้าถึงข้อมูลอย่างไร เพิ่มข้อมูลหลายประเภทสำหรับแอปพลิเคชันเดียวกัน เพิ่ม 2 การกำหนดค่าด้วยการจัดเก็บข้อมูลหลาย ๆ จุดอื่นที่คุณคิดว่าน่าสนใจเมื่อตัดสินใจว่าจะใช้ แก้ไขฉันรู้เกี่ยวกับการใช้ XML / JSON / Text หรือฐานข้อมูลเพื่อเก็บเนื้อหาของเกมดีกว่าไหม แต่คิดว่ามันไม่ตรงประเด็นของฉัน ตอนนี้ถ้าฉันผิดฉันก็ยินดีที่จะแสดงข้อผิดพลาดในทางของฉัน EDIT2เพิ่มบางจุดเพิ่มเติมที่ฉันจะพิจารณาที่เกี่ยวข้อง นอกจากนี้ฉันยังสนใจที่จะฟังว่ามีตัวเลือกอื่นใดบ้างนอกเหนือจากที่จัดเก็บไฟล์แบนและฐานข้อมูลเชิงสัมพันธ์ ตัวอย่างเช่นฐานข้อมูลที่ไม่เกี่ยวข้อง เมื่อมีความเกี่ยวข้องกับการใช้ฐานข้อมูลดังกล่าวผ่านตัวเลือกอื่น ๆ ที่กล่าวถึงก่อนหน้า?
25 databases  data  xml 

7
'Binary XML' สำหรับข้อมูลเกม?
ฉันกำลังทำงานกับเครื่องมือแก้ไขระดับที่บันทึกข้อมูลเป็น XML สิ่งนี้เหมาะอย่างยิ่งในระหว่างการพัฒนาเนื่องจากไม่เจ็บปวดที่จะทำการเปลี่ยนแปลงรูปแบบข้อมูลเล็กน้อยและทำงานได้ดีกับข้อมูลที่มีลักษณะคล้ายต้นไม้ ข้อเสียคือไฟล์ XML นั้นค่อนข้างป่องส่วนใหญ่เกิดจากการทำซ้ำชื่อแท็กและแอตทริบิวต์ นอกจากนี้เนื่องจากข้อมูลตัวเลขที่ใช้พื้นที่มากกว่าการใช้ประเภทข้อมูลดั้งเดิม ระดับเล็กสามารถจบได้อย่างง่ายดายด้วย 1Mb + ฉันต้องการลดขนาดเหล่านี้ลงอย่างมากโดยเฉพาะอย่างยิ่งหากจะใช้ระบบสำหรับเกมบน iPhone หรืออุปกรณ์อื่นที่มีหน่วยความจำค่อนข้าง จำกัด ทางออกที่ดีที่สุดสำหรับหน่วยความจำและประสิทธิภาพคือการแปลง XML เป็นรูปแบบระดับไบนารี แต่ฉันไม่ต้องการทำสิ่งนี้ ฉันต้องการให้รูปแบบมีความยืดหยุ่นพอสมควร XML ทำให้ง่ายต่อการเพิ่มคุณสมบัติใหม่ให้กับวัตถุและให้เป็นค่าเริ่มต้นหากมีการโหลดข้อมูลรุ่นเก่า ดังนั้นฉันต้องการที่จะรักษาลำดับชั้นของโหนดที่มีคุณลักษณะเป็นคู่ค่าชื่อ แต่ฉันต้องเก็บสิ่งนี้ในรูปแบบที่กะทัดรัดยิ่งขึ้น - เพื่อลบการซ้ำซ้อนของชื่อแท็ก / แอตทริบิวต์ อาจจะให้แอตทริบิวต์ประเภทดั้งเดิมดังนั้นเช่นข้อมูลจุดลอยตัวจะถูกเก็บไว้ที่ 4 ไบต์ต่อลอยไม่เป็นสตริงข้อความ Google / Wikipedia เปิดเผยว่า 'binary XML' เป็นปัญหาใหม่แทบจะไม่ได้รับการแก้ไขมาหลายครั้งแล้ว มีใครบ้างที่เคยมีประสบการณ์กับระบบ / มาตรฐานที่มีอยู่บ้างไหม? - เหมาะสำหรับการเล่นเกมหรือไม่ - ด้วยตัวแยกวิเคราะห์ / ตัวโหลดข้ามแพลตฟอร์ม (C / C ++) …
17 tools  xml  compression 

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

1
การจัดระเบียบระดับ / ห้องในโลกตามข้อความสไตล์โคลน
ฉันกำลังคิดที่จะเขียนเกมผจญภัยแบบข้อความขนาดเล็ก แต่ฉันไม่แน่ใจว่าฉันควรออกแบบโลกจากมุมมองทางเทคนิคอย่างไร ความคิดแรกของฉันคือการทำใน XML ออกแบบสิ่งต่อไปนี้ ขอโทษสำหรับกอง XML ขนาดใหญ่ แต่ฉันรู้สึกว่าสำคัญที่จะต้องอธิบายสิ่งที่ฉันทำอย่างเต็มที่ <level> <start> <!-- start in kitchen with empty inventory --> <room>Kitchen</room> <inventory></inventory> </start> <rooms> <room> <name>Kitchen</name> <description>A small kitchen that looks like it hasn't been used in a while. It has a table in the middle, and there are some cupboards. …

3
วิธีเก็บระดับ shmup
ฉันกำลังพัฒนา shmup 2D (เช่นAero Fighters ) และฉันสงสัยว่ามีวิธีการอะไรหลายวิธีในการจัดเก็บระดับ สมมติว่าศัตรูถูกกำหนดในไฟล์ xml ของตัวเองคุณจะกำหนดอย่างไรเมื่อศัตรูวางไข่ในระดับ มันจะขึ้นอยู่กับเวลา? อัพเดท? ระยะทาง? ขณะนี้ฉันทำตาม "ระดับเวลา" (จำนวนเวลาที่ระดับกำลังทำงานอยู่การหยุดชั่วคราวจะไม่อัปเดตเวลา) นี่คือตัวอย่าง (การทำให้เป็นลำดับโดย XNA): <?xml version="1.0" encoding="utf-8"?> <XnaContent xmlns:level="pekalicious.xanor.XanorContentShared.content.level"> <Asset Type="level:Level"> <Enemies> <Enemy> <EnemyType>data/enemies/smallenemy</EnemyType> <SpawnTime>PT0S</SpawnTime> <NumberOfSpawns>60</NumberOfSpawns> <SpawnOffset>PT0.2S</SpawnOffset> </Enemy> <Enemy> <EnemyType>data/enemies/secondenemy</EnemyType> <SpawnTime>PT0S</SpawnTime> <NumberOfSpawns>10</NumberOfSpawns> <SpawnOffset>PT0.5S</SpawnOffset> </Enemy> <Enemy> <EnemyType>data/enemies/secondenemy</EnemyType> <SpawnTime>PT20S</SpawnTime> <NumberOfSpawns>10</NumberOfSpawns> <SpawnOffset>PT0.5S</SpawnOffset> </Enemy> <Enemy> <EnemyType>data/enemies/boss1</EnemyType> <SpawnTime>PT30S</SpawnTime> <NumberOfSpawns>1</NumberOfSpawns> <SpawnOffset>PT0S</SpawnOffset> …
12 levels  data  xml  shoot-em-up 

5
เหตุใดจึงต้องวางเอนทิตี config นอกสคริปต์?
ฉันเห็นเกมจำนวนมากที่กำหนดองค์ประกอบเอนทิตีในไฟล์สคริปต์ แต่เมื่อพวกเขากำหนดค่าแต่ละเอนทิตีและระบุว่ามีองค์ประกอบใดพวกเขาใช้รูปแบบไฟล์อื่น (เช่น XML) ทำไมพวกเขาทำอย่างนั้น? ฉันขอให้ส่วนใหญ่ดูว่าเหตุผลของคนอื่นคืออะไรสำหรับเรื่องนี้ ฉันยังกำหนดค่าเอนทิตีของฉันนอกสคริปต์ (แม้ว่าฉันเลือก JSON ไม่ใช่ XML) เหตุผลของฉันในการทำเช่นนี้คือทำให้ฉันง่ายต่อการใช้เกมบันทึกและเพราะฉันคิดว่าการกำหนดค่าประเภทนี้จัดระเบียบได้ดีกว่าในสิ่งที่ชอบ XML หรือ JSON คำตอบของ @ Christopher Larsenยาวเกินกว่าจะโพสต์เป็นความคิดเห็น ฉันกลัวว่าคุณอาจเบี่ยงเบนไปเล็กน้อยจากเรื่องของคำถาม ปัญหาที่คุณกำลังอธิบายเกี่ยวข้องกับหน่วยงานที่ใช้ลำดับชั้นมากกว่า ในคำถามของฉันฉันพูดถึงฉันกำลังพูดถึงเอนทิตีที่อิงองค์ประกอบ นี่คือตัวอย่างของสิ่งที่ฉันต้องการถาม ด้านล่างมีสองทางเลือกในการกำหนดค่าเอนทิตี: ผ่านสคริปต์และผ่านไฟล์ JSON ภายนอก คำถามของฉันคือทำไมผู้คนจำนวนมากต้องการกำหนดเอนทิตีนอกสคริปต์? คลาสเอนทิตีฐาน: class Entity: def __init__(self, name): pass def addComponent(self, comp): pass วิธีการสคริปต์: orc = Entity('Orc') orc.addComponent(PositionComponent(3.4, 7.9)) วิธีการ JSON: { "name" : …

2
วิธีใช้ไฟล์ XML เป็นไฟล์เนื้อหาใน XNA
ฉันมีไฟล์ XML ที่เป็นตัวแทนของผู้ผลิตรถยนต์หลายรายที่จะให้บริการในเกมของฉัน ไฟล์มีลักษณะดังนี้: <?xml version="1.0" encoding="utf-8" ?> <XnaContent> <Asset Type="List[string]"> <car>Audi</car> <car>BMW</car> <car>Nissan</car> <car>Volvo</car> </Asset> </XnaContent> เมื่อเพิ่มลงในโฟลเดอร์เนื้อหาของฉันคอมไพเลอร์ส่งคืนข้อผิดพลาดนี้: There was an error while deserializing intermediate XML. Cannot find type "List`1" ฉันจะสร้างรายการของสตริงวางลงใน XML และอ่านจาก XNA ได้อย่างไร
9 xna  xml 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.