#1 28.07.2005 16:47:26

Rio
Member
Registriert: 30.03.2005
Beiträge: 33

Information für Levels speichern

Ich möchte gerne bestimmte Informationen extern ablegen, die für einzelne Levels des Spiels relevant werden. Jedoch möchte ich diese nicht einfach als  textdateien ablegen wo jeder andere die datei verändern kann.

Vielleicht ist es möglich diese informationen als maschinencode zu hinterlegen? als level1.dat? Vielleicht hat jemand eine anregung.

Offline

 

#2 28.07.2005 16:49:57

Chris
ExtremeMember
Ort: Erlangen, Bay
Registriert: 24.01.2005
Beiträge: 694
Web-Seite

Re: Information für Levels speichern

Verschlüssen gibt 100te verfahren...

oder...

entweder einfach als Stream speichern oder einfach die
Textdatei unter Level.dat abspeichern das schreckt schon
ein paar anfängeruser ab.

mfg Chris


Nimm meinen Rat an - ich brauch ihn sowieso nicht

Offline

 

#3 28.07.2005 17:06:54

artzuk
GodlikeMember
Ort: Leipzig
Registriert: 24.01.2005
Beiträge: 1164

Re: Information für Levels speichern

TMemoryStream wird das Beste hierfür sein - wie schon Coolcat erwähnt hat.  big_smile


Mein kleiner .NET Blog: http://artzuk-interactive.de/

Offline

 

#4 28.07.2005 17:07:58

DerPeer
GodlikeMember
Ort: Berlin
Registriert: 04.02.2005
Beiträge: 1291

Re: Information für Levels speichern

Oder Du merkst Dir nen Prüfcode. Sowas wie alle ASCII-Zahlen zusammenaddieren, dann kannst Du prüfen, ob rumgepfuscht wurde oder nicht. Und dann kannst Du das Spiel ja dann vielleicht nicht startenlassen.

Offline

 

#5 28.07.2005 18:52:58

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: Information für Levels speichern

Zitat:

wie schon Coolcat erwähnt hat.

hö? meinst du Chris? :rock:


@Topic:

Für mein Nettank habe ich ein "Dateiformat" entworfen das ungefähr so aussieht, also so XML mäßig...
Vorteil: Du brauchst keinen extra Editor um deine Levels zu erstellen. Ein Editor braucht oft genausoviel Zeit wie der Rest des Spiels...

Code: delphi

<nt3dfile>
  <version>1000</version>
  <terrain>
    <heightmap>mapsheightmap.png</heightmap>
    <tree>
      <model>modelstree.x</model>
      <position>3.512 , 34.12, 345.335</position>
      <rotation>5.3412,  0.111,   0.269</rotation>
    </tree>
  </terrain>
</nt3dfile>


Wenn du das "codieren" willst, mach einfach folgendes:

Code: delphi

key = "usrbgiusgbsi"; // beliebiger Schlüssel
ffne die datei im binrmodus, lese in array data.
z = 0;
fr alle zeichen k in der datei 
     data[k] = (data[k] + key[z]) mod 256;
     z = (z +1) mod length(key);     


Je länger der Schlüssel, desto sicherer....

Zum decodieren einfach subtraieren, statt addieren.

Coolcat


My software never has bugs. It just develops random features.

Offline

 

#6 29.07.2005 10:33:25

artzuk
GodlikeMember
Ort: Leipzig
Registriert: 24.01.2005
Beiträge: 1164

Re: Information für Levels speichern

oh mist ... ja ich meinte Chris  :doof:


Mein kleiner .NET Blog: http://artzuk-interactive.de/

Offline

 

#7 05.08.2005 08:34:56

Lotipats
UltraMember
Registriert: 17.05.2005
Beiträge: 395

Re: Information für Levels speichern

Hm...

Ich habe mir das jetzt mal durchgelesen und stelle fest, dass ihr bevorzugt Textdateien für eure Informationen nutzt, aber warum?

Eine untypisierte Datei kann man doch nicht so einfach knacken und die kann schneller geladen werden als eine Textdatei.
Notfalls schreibt man einen "Compiler", der die Textdatei passend umwandelt.

Oder habe ich irgendwelche Fehler bei meinem Denken?

LOTIPATS

Offline

 

#8 05.08.2005 08:46:13

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: Information für Levels speichern

1. Es kommt mehr auf Geschwindigkeit zur Laufzeit an, nicht so sehr auf die Geschwindigkeit beim laden...
2. Meine Festplatte kann 38 MB/sek lesen, dann musst du aber schon ne Menge Text schreiben bevor es auch nur eine Sekunde dauert...das man die Datei erstmal komplett in den Arbeitsspeicher holt und dort erst auswertet dürfte klar sein...
3. Textdateien kannst du ganz einfach mit Notepad (ich empfehle überings wie immer http://www.flos-freeware.ch/notepad2.html ) öffnen und bearbeiten. Du musst keinen extra Editor o.ä. schreiben.
Wird die Textdatei allerdings zu umfangreich, wird man um einen Editor nicht mehr herumkommen.
4. Wenn du deine Textdatei jedesmal neucompilieren musst sobald du auch nur eine kleine Konstante geändert hast dürfte dir das recht schnell auf die Nerven gehen.
5. Vielleicht sollen die Spieler später auch einfach eigene neue Level schreiben können...
6. Wenn umbedingt nötig kann man sich ja eine kleine Verschlüsselung schreiben. Die Dateien werden einfach in den Speicher geholt, entschlüsselt und dann an die normale Lademethode weitergegeben. (also so das die Engine beides verarbeiten kann: Während der Entwicklung arbeitest du unverschlüsselt, zum Release werden dann einfach alle Leveldateien verschlüsselt)

Coolcat


My software never has bugs. It just develops random features.

Offline

 

Brett Fußzeile

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson