verwendetes Datenbanksystem: MSSQL CE 2008
Hallo zusammen,
ich würde gern als Programmierübung und WPF für mich privat eine Art Spiel implementieren. Dies soll ein Managerspiel a la "Weltfussball" werden. (Wers kennt, weiss wovon ich rede).
Ich plane derzeit, mache mir Gedanken. Jedoch weiss ich nicht, wie ich das Abspeichern realisieren kann, hierbei gehts allgemein darum: Speichert ein Spieler ein Spiel ab und lädt es neu, wäre ja XML eine Möglichkeit. Ich speicher das Spiel (mittels Serialisierung o.ä.) ab und lese es danach wieder ein. Wie läuft das dann gegen die Datenbank? Muss ich nach dem abspeichern die Datenbank auf den alten Zustand setzen, damit ein neues Spiel gestartet werden kann? Und beim Laden alles updaten auf den aktuellen Spielstand? Ist das die Best Practice?
Über Anregungen würde ich mich freuen.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Wie läuft das dann gegen die Datenbank?
Was bedeutet das?
Und was meinst du mit "Datenbank auf alten Zustand setzen"?
Was genau ist deine Frage? Du musst halt den Spielstand so abspeichern, dass alles relevante drin ist und du ihn in ein neu gestartetes Spiel wieder komplett reinladen kannst.
Ob du das in eine DB schreibst oder eine Datei, ist dabei egal.
Wie läuft das dann gegen die Datenbank?
Was bedeutet das?
Und was meinst du mit "Datenbank auf alten Zustand setzen"?Was genau ist deine Frage?
Hallo chilic,
danke für deine Antwort. Ja, genau das meinte ich.
Ein Spieler kann ja zB. den Verein wechseln. Beim Spielstart ist er bei Verein A, im Spielverlauf bei Verein B. Beim Abspeichern soll dieser Stand nun festgehalten werden. Beim Starten eines neuen Spiels soll der Spieler jedoch wieder bei Verein A sein.
Ich wollte jetzt nur wissen, ob es da eine gängige Praxis gibt, wie man solch ein Problem löst.
Ob du das in eine DB schreibst oder eine Datei, ist dabei egal.
Im Falle der DB müsste man quasi Kopien der Tabellen anlegen. Eine für den Ursprungszustand und eine für den laufenden Zustand, in die die nötigen Einstellungen beim laden geladen werden könnten. Dann gehe ich das mal so an.
Danke
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Hallo Coffeebean
Im Falle der DB müsste man quasi Kopien der Tabellen anlegen. Eine für den Ursprungszustand und eine für den laufenden Zustand, in die die nötigen Einstellungen beim laden geladen werden könnten. Dann gehe ich das mal so an.
Oder du hast User - Spielstände (1:N)
(Theoretisch kannst du auch das XML in die DB speichern ....)
Beste Grüsse
Diräkt
Oder du hast User - Spielstände (1:N)
Richtig, nur dass "Spielstände" in dem Fall mehr ist als ein Spielergebnis, oder eine Spielergebnistabelle, sondern eine recht grosse Anzahl von Werten, die gespeichert und wiederhergestellt werden müssten. Eine UserTabelle aus der man Spielstände laden kann und dann müssten alle Einstellungen, Spieler, Ergebnisse etc. wieder geladen werden. Über mehrere Tabellen. Oder verstehe ich dich falsch?
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Hallo Coffeebean
Ich kenne "Weltfussball" nicht, und auch die genauen Anforderungen nicht.
Grundsätzlich wäre das eine Lösung. Eine weitere Lösung wäre, einfach das serialisierte XML in eine User_Spielstand Tabelle abzulegen. Damit sparst du Dir die Arbeit, ein DB Modell zu erstellen / pflegen. (suchen, filtern, ..... ist ja keine Anforderungen wie ich es verstehe)
Beste Grüsse
Diräkt
Ich denke mal das würde auch über speichern und auslesen von Textdatein gehen.