Vilket format för att spara data?

Permalänk
Medlem

Vilket format för att spara data?

Till skolan håller jag just nu på med ett projekt över ett antal veckor. Det jag har tänkt skapa är ett spel i stil med Trivial Pursuit. Hela spelet har jag tänkt skriva i C# med XNA som plattform. Tidigare har jag bara jobbat mot webben med ASP.NET/C#, så jag är relativt ny när det gäller.. desktop-programmering, eller vad man nu ska kalla det. Det jag hur som helst funderade över är hur jag bäst sparar de frågor som spelet kommer använda? Tidigare när jag har haft behov av att spara data har jag haft möjlighet till att använda en databas, vilket har gjort allt lite simplare, men denna gången vill jag hålla allt lokalt, eftersom jag även har tänkt att en användare ska kunna skapa en egen samling frågor (detta är dock bara hypotetisk; spelet kommer aldrig att släppas, det är helt och hållet för denna kursen).

De enda två sätten jag över huvudtaget har använt (men väldigt lite, så jag skulle ändå behöva läsa på en hel del innan jag använder de), är att antingen spara det rakt av i en text-fil, och spara allt såhär: fråga;svar1;svar2;svar3;svar4, men det känns inte särskilt snyggt. Det andra skulle väl vara att spara det i XML, och om jag inte kommer på någon bättre idé, lär det vara det som jag kör på.

Det kändes dock ändå vettigt att höra om det finns något format som är bättre anpassat innan jag börjar koda och får göra om en massa.

Permalänk
Medlem

XML serializering skulle jag rekommendera här, varför spendera mer tid på det än så.

http://www.switchonthecode.com/tutorials/csharp-tutorial-xml-...

Visa signatur

Speldator: i7-8700k, 32GB DDR4, RTX2080
Server 1: SB 2500k, MZI -P67GD55, 32GB DDR3, Corsair MX 240GB SSD
Surface Pro 2017, Konsoler: Typ alla, Oculus Rift

Permalänk
Medlem

XML eller JSON är väl det enklaste, finns ju massa libs osv så det bara blir i pincip en oneliner för att marshalla fram å tillbaka mellan objekt och data.

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Hedersmedlem

Om man gillar databaser är väl annars sqlite ett alternativ?

Permalänk

Eller MS SQL Server Express om man bara jobbar i Microsoft-miljö: http://www.microsoft.com/sqlserver/en/us/editions/express.asp...

Permalänk
Medlem
Skrivet av VirtualIntent:

Eller MS SQL Server Express om man bara jobbar i Microsoft-miljö: http://www.microsoft.com/sqlserver/en/us/editions/express.asp...

Detta känns väl inte helt optimalt för något som enkelt ska kunna användas på andra datorer och inte vara beroende av en extern server för data?

Ska kolla lite mer om Sqlite, men det känns som att det kan vara lite overkill? Annars lär det väl bli XML ändå

Permalänk
Medlem

Jag tror att det snyggaste vore att använda content pipelinen och att ha dina frågor som xml. Exakt hur man gör nu för tiden har jag inte riktigt koll på, men du lägger din xml som content type xml, och när det kompileras byggs en xnb-fil med ditt innehåll i som sedan finns att hämta med ContentManagern inne i spelet.

(lättast är nog däremot att köra på en ren xml-fil (eller eventuellt lägga in det i app.config filen om man har en sån i xna?))

Visa signatur

AK47s for everyone! - Angry mob
Since NaN /= NaN, I think, we should decipher 'NaN' as 'Not a NaN' - Miguel Mitrofanov
(Varför är människan så benägen att tro på Gud?) Antagligen har det lönat sig och evolutionen har drivit fram sådana hjärnor. - Anon