Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

18.05.2006, 13:29

Spielstände laden und speichern

Hi,

ich wollte mal nachfragen, ob ihr vielleicht gute Tutorials zum laden und
speichern von Spielständen kennt? Oder vielleicht auch fertige Klassen.
Was mir da am Herzen liegen würde, wäre, dass es am Besten auf Deutsch
ist (wenns sein muss meinetwegen auch englisch ;) ) und dass es leicht
zu bedienen ist. Bei Google habe ich da leider nichts gefunden, da laden
und speichern ja ein zu oft benutztes Wort ist ;)

Schonmal im voraus Danke für die Hilfe!

MfG DarkRaider.

dbGAMES

Treue Seele

Beiträge: 323

Wohnort: Frankfurt

Beruf: Student

  • Private Nachricht senden

2

18.05.2006, 14:07

schau dir das mal an: http://www.dbgames.de/sites/index.php?id=tutorials_loadsave
der code sollte relativ klar sein und lässt sich sehr leicht in deine bestehenden klassen einbauen

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

18.05.2006, 14:25

Dieses Beispiel ist zwar als Grundlage sehr ordentlich, aber es spricht einige Problematiken garnicht erst an. Z.B. wie man vernünftig eine Liste speichert oder gar eine Liste in einer Liste oder auch sehr interessant ist das Porblem das bei sehr großen bzw. vielen Teilbereichen auftritt. z.B. wenn man in einem Spiel mehrere Zonen hat o.ä., wie man diese geschickt in eine Datei speichert, sodass man gegebenenfalls nur Teile der Datei laden kann und nicht immer gleich die komplette Datei erstmal in das Spiel laden muss.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Anonymous

unregistriert

4

18.05.2006, 14:40

@ dbGAMES: Ja, dein Tutorial hab ich mir schon vor ein paar Tagen
angeguckt. Wie schon gesagt, deckt dieses Tutorial ja noch lange nicht
alles ab, dazu will ich auch noch wissen, wie das laden und speichern
genauer funktioniert und was man alles abspeichern muss um den
Spielstand beim nächsten Spielstart wieder laden zu können. Aber ansonsten
Wäre das Tutorial von dir vom Code her nach meinem Geschmack ;)

MfG DarkRaider.

EDIT: Dazu kommt noch, dass ich VC 6 habe und da gibts z.B. kein fopen_s
;)

ext

Treue Seele

  • Private Nachricht senden

5

18.05.2006, 16:35

Wer mit Klassenhierachien arbeitet bekommt dabei auch nen Problem, denn ne Liste von Objekten die über Zeiger auf die gemeinsame Basisklasse referenziert werden lassen sich nicht ganz so trivial speichern bzw. speichern schon, aber man muss diese ja beim Laden auch wieder richtig identifizieren können.

Das Buch Modern C++ Design behandelt das Problem ein wenig, aber bei weitem nicht tiefgründig genug um es sich nur deswegen zu kaufen.
Die Lösung basiert darauf, dass man eine Factory hat welche das Laden und Speichern übernimmt (die Factory könnt ihr euch anschauen, sucht einfach mal nach der "Loki" Bibliothek).

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

6

28.05.2006, 00:20

Eigentlich kommt es drauf an für welches Spiel man eigentlichn einen Spielstand abspeichern will. So etwas zu speichern wie:
Die Oma von Spieler X heißt Elise
wenn die Oma überhaupt nicht im Spiel vorkommt macht wenig sinn.
Ich würde das ganze einfach in eine Datei schreiben. Die ganzen benötigten Spielstandvariablen würde ich dann auch einfach in einer Struktur sammeln und mit zwei Hilfsfunktionen speichern und lesen.
So eine Struktur könnte zum Beispiel so aussehen:

C-/C++-Quelltext

1
2
3
4
5
6
7
struct SaveStatus
{
tbVector3 vPlayerpos;
int iVitality;
int iLevel;
int iPunkte;
};

Sicaine

unregistriert

7

28.05.2006, 00:23

Was gibt es einfacheres als einfach alles zu serialisieren? Wird oft verwendet geht recht schnell und is schweine einfach. Klar dass man den Typ der Klasse und Anzahl der Listenobjekte etc. vorher noch abspeichern aber Problematisch? Noe nich wirklich :>

Ach in der MFC wird btw. ein Archiveobjekt uebergeben indem man mit nem Stream seine SAchen schreibt und ziweder ausliest.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

28.05.2006, 00:34

Re: Spielstände laden und speichern

Zitat von »"DarkRaider"«

Hi,

ich wollte mal nachfragen, ob ihr vielleicht gute Tutorials zum laden und
speichern von Spielständen kennt? Oder vielleicht auch fertige Klassen.
Was mir da am Herzen liegen würde, wäre, dass es am Besten auf Deutsch
ist (wenns sein muss meinetwegen auch englisch ;) ) und dass es leicht
zu bedienen ist. Bei Google habe ich da leider nichts gefunden, da laden
und speichern ja ein zu oft benutztes Wort ist ;)

Schonmal im voraus Danke für die Hilfe!

MfG DarkRaider.

Da du sonst immer derjenige bist, der Leute hier wegen solcher Fragen anmacht, darfst du dir jetzt von mir anhören, dass es ja wohl ganz offensichtlich von der Art des Spiels abhängt und du dich schon selber wirst anstrengen müssen.
Was speichern? Natürlich alles, was du brauchst, um das Spiel später nach einem Kaltstart wieder in den ursprünglichen Zustand zu bringen.

Thunder Storm

Treue Seele

Beiträge: 297

Wohnort: fragt einfach per pm nix da ;)

Beruf: Ausbildung (Technischer Assistent für Software Technologie)

  • Private Nachricht senden

9

28.05.2006, 01:45

auch wens nix neues ist und ich warscheinlich gleich verhauen werde XD:

wie gesagt kommt aufs spiel an. weil die umstände ja dedes mal anders sind. ob du nur wie in blockhacker die koordinaten des spielers, die getätigten aktionen usw speichern musst was bei console denk ich weit einfacher is als bei 2 und 3d oder ob du komplexere sachen speichern must.

würde selbst warscheinlich einfach nur das jeweilige level und die variablen die schon verändert wurden per fopen speichern. ginge auch mit fwrite oder ffilewrite oder so ähnlich. ka mehr müsst ich jetz nach gucken.

genauso müsstest dir während des programmierens des levels schon gedanken drüber machen wie de das laden realisieren willst. würd warscheinlich einfache if sachen machen wen variable so und so auf dem und dem wert ist hat sich stein xyz an position keine ahnung bewegt.

dan müsstest dir noch ausdenken wie deine save aufgebaut ist. also wie du es reinspeicherst und ausliest. z.b. zeile 1 beinhaltet die koordinaten des spielers.

hinzu kommt noch das du dir wens an das releas geht spätestens gedanken machen solltest wie du die datein schützt. ich meine es währe ja sinnlos die leben des spielers da ein zu tragen wen jeder depp mit nem text editor sie ändern könnte.

ach und david ;) bin kein freund von motzerein.. eher von vernümpftigen diskusionen. schlieslich macht jeder in seinem leben mal fehler und man sollte wenigstens die gröbsten verzeihen ;)

Anonymous

unregistriert

10

28.05.2006, 09:26

@ David: Ähm, ich wollte nie jemand anmachen oder sonst was, ich habe nur
versucht zu helfen und Tipps zu geben, wenn ich was falsches gesagt habe
oder etwas falsch aufgefasst wurde kann ichs auch nicht mehr ändern
ich hatte nicht den Eindruck, dass ich jemanden angemacht hätte....

@ Thunder_Storm: Jo sowas ist mir irgendwie auch ein wenig in den Sinn
gekommen ;) Ich denke ich werde die benötigten Daten einfach binär
in eine Datei schreiben, sollte man dann auch nicht so einfach ändern können.

Thx 4 help!

Werbeanzeige