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

ซอฟต์แวร์ที่ออกแบบมาเพื่อจัดเก็บข้อมูลจำนวนมากในรูปแบบที่สืบค้นได้ โดยทั่วไปข้อมูลจะถูกจัดระเบียบเพื่อสร้างแบบจำลองด้านที่เกี่ยวข้องในลักษณะที่สนับสนุนกระบวนการที่ต้องใช้ข้อมูลนี้


9
ทำไมเนื้อหาโค้ดฮาร์โค้ดถึงไม่ดี?
ฉันรู้ว่าส่วนใหญ่เก็บข้อความสนทนาในไฟล์เกม แต่ฉันเคยเห็นเกมที่ใช้ข้อความเป็นตัวเขียนเนื้อหา (แผนที่ตัวเลือกคำสั่งของผู้เล่นที่เป็นไปได้ข้อความในเนื้อเรื่อง) ลงในรหัสเกม ฉันนึกถึงเหตุผลไม่กี่ข้อ แต่อะไรคือสาเหตุหลักที่ทำให้เกมข้อความแม้แต่เก็บทุกอย่างไว้ในไฟล์นอกโปรแกรม รายละเอียดการใช้งานแตกต่างกันเล็กน้อยระหว่างการเก็บเนื้อหาในบางสิ่งเช่นรูปแบบ XML ที่เป็นที่นิยมการแยกวิเคราะห์แล้วแสดงแผนที่ / การแสดงข้อความตามตัวแปรที่สร้างจากไฟล์ XML และเพียงแค่ละไฟล์ XML ทั้งหมด พวกเขาทั้งสองจบลงด้วยสตริงที่ส่งออกไปยังหน้าจอ ไม่ใช่ความแตกต่างเพียงสัญกรณ์ใช่ไหม บางเกมยังมีกราฟิก (ASCII art?) อยู่ในโค้ด ฉันรู้ว่ามันไม่ถูกต้องและฉันสามารถเดาได้ว่าทำไมมันถึงไม่ดี แต่ก็ไม่รู้เหตุผลสำคัญว่าทำไม เป็นที่นิยมอย่างมากที่จะมีเนื้อหาส่วนใหญ่อยู่นอกโปรแกรม แม้แต่ป้อมปราการคนแคระก็ไม่ได้ใช้อักขระ ASCII จริง แต่ภาพของอักขระ ASCII ที่โหลดเข้าสู่หน่วยความจำ ฉันถามเป็นหลักเพราะมันเป็นบิตของ PITA ในการสร้างวิเคราะห์และทำงานกับไฟล์ XML คุณรู้ไหมว่า ... เมื่อเทียบกับทางเลือกที่ขี้เกียจเพียงสร้างดันเจี้ยนที่ไม่เหมือนใคร (เนื้อหา) คลาสของตัวเอง

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

2
ประสิทธิภาพการทำงานมีประโยชน์อย่างไรในการบันทึกอักขระที่ล็อกอินทั้งหมดใน MMO ในช่วงเวลาปกติ
MMORPGS ส่วนใหญ่มีระบบ Worldsave ที่จะบันทึกอักขระทั้งหมดทุกๆ X ชั่วโมง ฉันคิดว่าเหตุผลก็คือประสิทธิภาพ เหตุใดจึงดีกว่าประสิทธิภาพการทำงานที่ดีกว่าการบันทึกอักขระในการตัดการเชื่อมต่อ

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

5
noSQL - มันเป็นตัวเลือกที่ถูกต้องสำหรับเกมบนเว็บ? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา จากโอกาสและความเบื่อหน่ายเพื่อนและฉันตัดสินใจทำเกมบนเว็บ นี่เป็นเกมแรกที่ฉันจะทำเพราะปกติฉันจะตั้งโปรแกรมเว็บแอพใน django ฉันเลือกที่จะใช้กรอบงานเดียวกันสำหรับเกม แต่ฉันไม่แน่ใจเกี่ยวกับการจัดเก็บข้อมูลทั้งหมดเนื่องจากฉันไม่สามารถคาดการณ์ข้อกำหนดในอนาคตและปัญหาที่เกี่ยวข้องกับฐานข้อมูลได้ เมื่อเร็ว ๆ นี้การเคลื่อนไหว noSQL กำลังเพิ่มขึ้นและฉันอยากจะสำรวจพื้นที่นั้น ดังนั้นฉันมีคำถามต่อไปนี้: noast datastorage (ตามเอกสารเช่น MongoDB) จะเหมาะสำหรับเกมบนเว็บหรือไม่? ปัญหาที่อาจเกิดขึ้นจากการใช้ RDBMS ทั่วไปเช่น MySQL มีอะไรบ้าง วิธีการประกันความสอดคล้องของข้อมูลระหว่างผู้ใช้กับ MongoDB ในระหว่างการเล่นเกมหรือในเหตุการณ์ที่กำหนดเวลาเช่นงาน cron ภาพรวมของเกม: เกมผจญภัยทั่วไปที่ผู้เล่นต่อสู้กับมอนสเตอร์และได้รับไอเทมและสิ่งต่าง ๆ ข้อมูลบางอย่างคงที่ในผู้เล่นทุกคน: รายการอาวุธยาพิษแผนที่ ฯลฯ ข้อมูลบางอย่างที่เชื่อมโยงกับโปรแกรมเล่น: สินค้าคงคลังตัวชี้วัด (สถิติ) ความคืบหน้า ฯลฯ ผู้เล่นอาจจำเป็นต้องรู้สถิติและสถานะของผู้เล่นอื่น งานที่กำหนดเวลาไว้จะถูกเรียกใช้ในบางช่วงเวลา

6
Tweaking and Settings - การปรับเปลี่ยนตัวแปรรันไทม์และการคงอยู่
บริษัท ส่วนใหญ่มีโปรแกรมแก้ไขหรือระบบควบคุมตัวแปรสำหรับปรับแต่งสิ่งต่าง ๆ ในเกม แต่มีมิดเดิลแวร์สำหรับแก้ไขปัญหานี้หรือไม่? ฉันเคยเขียนระบบสองอย่างนี้มาแล้วและทำงานร่วมกับระบบห้าระบบบางทีอาจจะแตกต่างกันไปหกระบบ แต่ไม่มีระบบไหนที่จะปิดชั้นวางได้ แต่ละวิธีแก้ปัญหาที่ปลูกเองเหล่านี้มีปัญหาตั้งแต่การรักษาค่าการค้นหาไปจนถึงการไม่สามารถบันทึกสถานะปัจจุบันของตัวแปรได้ มีไลบรารี / แอพการควบคุม Config / Runtime-variable ที่เป็นผู้ใหญ่หรือไม่? ฉันใช้รหัสทั่วไปใน C ++ แต่ฉันคิดว่าตัวแก้ไขการตั้งค่า / ตัวแปรที่เป็นผู้ใหญ่อาจเป็นซอคเก็ตเบส การติดตั้งโค้ดจะต้องค่อนข้างง่าย (ฉันชอบบทความ hot_var / TweakableConstants ที่ Oskar แบ่งปัน แต่ไม่ใช่แพ็คเกจ)

3
ฉันควรใช้ฐานข้อมูลเพื่อจัดเก็บเนื้อหาของเกมหรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันมีเกม 2D เขียนใน C ++ โดยใช้ SFML ฉันต้องการทำให้เกมขยายได้ในลักษณะที่สามารถเพิ่มเนื้อหาเช่นรายการหรือเอนทิตีได้อย่างง่ายดายโดยการเพิ่มบรรทัด / รายการ / แถวลงในไฟล์หรือฐานข้อมูล ฉันกำลังมองหาบางอย่างที่ไม่จำเป็นต้องรวบรวมเข้าไปในโปรแกรม แต่สามารถอ่านและเขียนไปที่รันไทม์แทน เมื่อใดที่เหมาะสมที่จะใช้ฐานข้อมูล
16 c++  sfml  databases 

4
ฉันจะติดตามตำแหน่งเรียลไทม์ของผู้เล่นใน MMO ได้อย่างไร
คุณติดตามตำแหน่งของผู้เล่นใน MMORPG ได้อย่างไร? ฉันอ่านว่าคุณสามารถใช้ฐานข้อมูลหรือคุณสามารถเก็บพิกัดในไฟล์ ฉันลองใช้ฐานข้อมูล แต่มันก็ช้า ไฟล์จะถูกใช้เพื่อติดตามตำแหน่งของผู้เล่นได้อย่างไร?

4
ฐานข้อมูลใด (RDBMS เทียบกับ NoSQL และ BOTH) สำหรับเกม Realtime Multiplayer
ฉันทำงานกับเกมแบบเรียลไทม์ที่จะต้องใช้ฐานข้อมูล (สำหรับคุณสมบัติเช่นโปรไฟล์ผู้เล่นเพื่อนปลดล็อคข่าว ฯลฯ ) เกมนี้เป็นเกมพีซีมาตรฐาน (ไม่ใช่เบราว์เซอร์) และจะใช้ไคลเอนต์เซิร์ฟเวอร์ สถาปัตยกรรม. ฉันยังใหม่กับการใช้ฐานข้อมูลและได้ทำการวิจัยบางอย่างในช่วงไม่กี่วันที่ผ่านมาเมื่อฉันได้พบกับการอภิปรายที่ร้อนแรง: RDBMS vs NoSQL ขณะนี้ฉันกำลังโน้มเอียงไปทาง NoSQL แต่หลังจากอ่านเกี่ยวกับการใช้งานสำหรับแต่ละ (RDBMS และ NoSQL) ฉันก็อยากจะใช้ทั้งสองอย่าง ฉันรู้ว่ามันอาจดูแปลก แต่ขอให้ฉันอธิบายสถานการณ์ของฉัน: ทีมของฉันมีแพ็คเกจเว็บโฮสติ้งที่ใช้ร่วมกันซึ่งมีพื้นที่เก็บข้อมูลและแบนด์วิดธ์ mySQL ไม่ จำกัด ซึ่งเป็นข้อแม้เดียวที่เราสามารถเปิดได้ 25 การเชื่อมต่อในครั้งเดียว (กฎการโฮสต์ที่ใช้ร่วมกัน) ฉันตั้งใจจะใช้สิ่งนี้กับเว็บไซต์ของฉัน (เป็นการใช้งานทั่วไปอย่างไม่ต้องสงสัย) เพื่อโพสต์การอัปเดตข่าวสนับสนุนคุณลักษณะของชุมชน (เช่นความคิดเห็นการอัปโหลดภาพหน้าปกของแฟน ๆ ฯลฯ ) และอื่น ๆ นั่นคือทั้งหมดที่ดีและดี - แต่! นี่คือสิ่งที่น่าสนใจ ... ฉันต้องการแสดงข้อมูลเดียวกันนี้ที่โพสต์บนเว็บไซต์ของฉันในเกม นี่หมายถึงการใช้ mySQL สำหรับทั้งเว็บไซต์และเกมของฉัน นอกจากโพสต์ข่าวและสิ่งที่ชอบฉันวางแผนที่จะใช้มันในเกมสำหรับสิ่งต่าง ๆ เช่นการแชทและรายชื่อเซิร์ฟเวอร์ …

5
มีวิธีที่จะทำให้โลกมีชีวิตชีวาเช่น MMORPG ที่ปรับขนาดได้ในแนวนอนหรือไม่?
ลองจินตนาการถึงโลกที่เปิดกว้างของผู้เล่นกว่า 500+ คนที่มีการเปลี่ยนแปลงข้อมูลอย่างรวดเร็วเพียง 20 อัพเดต / ผู้เล่น / วินาที ครั้งล่าสุดที่ฉันทำงานใน MMORPG ที่คล้ายกันมันใช้ SQL ดังนั้น obvioulsy จึงไม่สามารถสืบค้น DB ได้ตลอดเวลา แต่จะโหลดผู้เล่นทุกคนจากฐานข้อมูลไปยังหน่วยความจำในฐานะวัตถุ C ++ และใช้พวกเขา นั่นคือมันปรับขนาดในแนวตั้ง เป็นไปได้ไหมที่จะทำให้เซิร์ฟเวอร์นั้นปรับขนาดได้ในแนวนอนแทน มีฐานข้อมูลที่ออกแบบมาเพื่อรองรับจำนวนการอัปเดตนั้นพร้อมกันหรือไม่?

1
ฐานข้อมูลของ Minecraft คืออะไร? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันสงสัยว่า Minecraft ใช้ฐานข้อมูลแบบใด มันเป็นฐานข้อมูลเชิงสัมพันธ์หรือบางทีอาจเป็นเรื่องธรรมดาเช่น MySQL? เรารู้ด้วยซ้ำว่าเขากำลังใช้อะไรอยู่? และอาจเป็นคำถามที่ดีกว่าเขาควรจะทำอย่างนั้น? ควรใช้ฐานข้อมูลประเภทใด

5
เซิร์ฟเวอร์เกม C ++ แบบกระจายซึ่งใช้ฐานข้อมูล
เซิร์ฟเวอร์เกมเทิร์นอิง C ++ ของฉัน (ซึ่งใช้ฐานข้อมูล) ไม่สามารถเทียบกับจำนวนลูกค้าเฉลี่ย (ผู้เล่น) ปัจจุบันดังนั้นฉันต้องการขยายไปยังคอมพิวเตอร์และฐานข้อมูลจำนวนมาก (มากกว่าหนึ่ง) ที่ลูกค้ายังคงอยู่ภายใน โลกของเกมเดียว (เซิร์ฟเวอร์จะต้องสื่อสารกันและใช้หลายฐานข้อมูล) มีแบบฝึกหัด / หนังสือ / มาตรฐานทั่วไปบ้างไหมที่จะอธิบายวิธีการใช้วิธีที่ดีที่สุด?
11 server  databases 

11
วิธีการสร้างแบบจำลอง“ ใช้” หลายอย่าง (เช่นอาวุธ) สำหรับสินค้าคงคลังวัตถุ / รายการ (เช่นคาตานะ) ภายในฐานข้อมูลเชิงสัมพันธ์
ดังนั้นฉันจึงพยายามขยายการใช้รายการต่างๆที่www.ninjawars.netและฉันไม่แน่ใจว่าจะนำเสนอสิ่งเหล่านี้ได้อย่างยืดหยุ่นในฐานข้อมูลเชิงสัมพันธ์ที่เราใช้ ฉันอาจเห่าต้นไม้ที่ไม่ถูกต้องดังนั้นอย่าลังเลที่จะให้คำแนะนำในทิศทางอื่น แต่ขณะนี้ฉันคิดว่าแต่ละรายการควรมี "แท็ก" ที่เกี่ยวข้อง ตัวอย่างเช่น Katana ปัจจุบันเป็นแถวในฐานข้อมูล "items" เพื่อให้เป็นอาวุธและสิ่งที่สามารถเก็บได้ฉันคิดว่าฉันจะมีฐานข้อมูล "ลักษณะ" และตาราง item_traits ที่เชื่อมโยงระหว่างพวกเขา // Objects and their basic data item_id | item 1 | Naginata // Things that objects can do trait_id | trait 1 | weapon 2 | holdable // How those objects do those things, e.g. powerfully, …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.