Wie speichert ihr eure Spiele/Gute Arten zu speichern

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

M0rgenstern

Betreff: Wie speichert ihr eure Spiele/Gute Arten zu speichern

BeitragDo, Nov 12, 2009 9:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey Leute.

Ich hab mir gedacht, man könnte mal einen Thread erstellen um verschiedene Arten vorzustellen, sein Spiel zu speichern (alleinschon weil diese Frage scheinbar oft auftaucht, laut SuFu).

Ich fang mal an:

Ich hab mir heute Gedanken gemacht, wie ich mein Spiel speichern könnte und bin dann auch ziemlich schnell auf ne Lösung (noch ohne Code) gekommen.
Kriterien waren:
-X/Y Werte, Lebensenergie, Leben, Munition etc. von Spieler speichern.
-X/Y Werte etc. von Gegnern und Objekten (weil zufallsgeneriert) speichern.
-Datei soll nicht einfach geöffnet werden können sondern "verschlüsselt" sein.

Ich hab folgende Lösung angedacht:
Da es ja nur Zahlwerte sind, die gespeichert werden, könnte man diese mit Cäsar Verschlüsslung in die Datei schreiben lassen und dann dementsprechend auslesen.

Lg, M0rgenstern

Kernle 32DLL

BeitragDo, Nov 12, 2009 9:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Man muss einfach abwägen wie "sicher" man seine Spieldaten haben will. Generell sollte eine einfache abspeicherung in plain-byte reichen, d.h. die Werte wie sie sind in die Datei speichern. Allein dadurch wird die Datei schon etwas unübersichtlich Wink

Ansonsten zum Thema Verschlüsselung: Cäsar ist an der Stelle recht praktikabel da es recht einfach zu integrieren ist. Aber wie gesagt, du musst abwägen wieviel sicherheit du wirklich brauchst. Unter strich lässt sich aber sagen: Es ist nicht möglich ein Savegame von außen unänderbar zu machen.

So long,
Kernle
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009

M0rgenstern

BeitragDo, Nov 12, 2009 9:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich merke grade, dass man den SInn dieses Threads vllt falsch verstehen kann.
Es geht darum, dass hier verschiedene Techniken zum Speichern von Spieldaten dargestellt werden.

Lg, M0rgenstern

Arrangemonk

BeitragDo, Nov 12, 2009 10:11
Antworten mit Zitat
Benutzer-Profile anzeigen
speichers einfach binär(+ unlogische reihenfolge), die anordnung der vareablen rauszufinden dauert meisstens länger als das spiel durchzuspielen

und mit nem kompressionsalgorithmus und nen paar zusätzlichen nutzlosen charactern kannst du jeden entpackversuch mit nem checkum error abstrafen
ingeneur

Firstdeathmaker

BeitragDo, Nov 12, 2009 10:35
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, checksum mach ich auch immer. Dann reicht es nämlich alles plain zu speichern.

Noch komfortabler geht es mit XML. Da kann man sich seine ganzen Objekte komplett so abspeichern wie man sie haben möchte. Einfach für jedes objekt eine Lade / Save Methode schreiben. Dazu kann ich das LibXML von bah (englisches Forum, bruceys module) empfehlen.

Beispiel wie man dort einen Playerchar. mit 2 Items speichern würde:

Code: [AUSKLAPPEN]

<player name="Player1" progress="5" checksum="hkjh41237zj348zb3iuz487h3i">
   <item id="sword05" slotid="0"/>
   <item id="shield02" slotid="1"/>
</player>


Man speichert alles quasi "objektorientiert".



Bei großen Daten (wie kompletten Maps etc.) würde ich allerdings manuell abspeichern, da ja doch ein ziemlicher Overhead entsteht.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Geeecko

BeitragDo, Nov 12, 2009 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Mh...
Die Methode von FDM ist dann aber irgendwie... sinnlos.
Sie verbraucht nur unnötig Speicherplatz.
Wieso speicherst du die Daten so sauber ab, mit Namen etc. XML halt, aber so, das man sie nicht verändern kann?

Dazu ist's doch da, das man alles schön locker flockig ändern kann.

Und wie gesagt, wenn man es nicht ändern können soll (ist möglich, aber... ne? Very Happy) reichts doch auch einfach so die Variablen in die Datei zu klatschen?
....

Eingeproggt

BeitragDo, Nov 12, 2009 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Auch wenn es nicht unbedingt das ist was Morgenstern in diesem THread sehen wollte so möcht ich zur Verschlüsselung noch was loswerden: Die einfachste ist meiner Meinung nach Xor, siehe dieses kleine Beispiel:

Code: [AUSKLAPPEN]
key=123

test$="Hallo Welt!"
test_crypt$=XorCode(test$,key)
test_encrypt$=XorCode(test_crypt$,key)

Print test$
Print test_crypt$
Print test_encrypt$

WaitKey()
End

Function XorCode$(txt$,key)
   Local ret$=""
   For i=1 To Len(txt$)
      ret$=ret$+Chr((Asc(Mid(txt$,i,1)) Xor key))
   Next
   Return ret$
End Function


Ist doch sehr handlich - und man braucht keine extra "verschlüssel" und "entschlüssel" Funktion -All in One Smile

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group