Jump to content
Unity Insider Forum
Quellcode

Open World - Massendaten Speicherung

Recommended Posts

Hallo Zusammen,

bevor ich lange und breit erkläre was ich machen will, hier nur die relevanten Fakten ;-)

- riesige Spielwelt

- viele Orte

- viele Gebäude

- viele Räume

- viele "Lagergegenstände" wie Schränke

- usw...

 

Nun habe ich einen Hammer, der ist in der Werkzeugkiste in einem Schrank, an einem bestimmten Ort.

Dies wären bereits 4 Hirachie-Ebenen und es soll theoretisch beliebig erweiterbar sein.

 

Wie würdet ihr die Speicherung aufbauen?

Als Format dachte ich direkt an JSON, da dies beliebig weiter unterteilbar wäre...

Aber vielleicht gibt es noch andere Wege, die ich momentan nicht sehe???

 

Da die Spielwelt einfach viel zu groß ist um alles in der Szene direkt nur "auszublenden" muss ich mir darüber Gedanken machen.

Speichern würde ich abgesehen von den Eigenschaften auch die Position und Rotation (Lokal) sodass die Gegenstände beim laden, eigentlich wieder genau da zu sehen sein sollten, wo Sie vorher abgelegt wurden.

 

 

Vielen Dank im Voraus für Tipps, Links und Ratschläger aller Art.

Share this post


Link to post
Share on other sites

Da gibt es vieles zu Entscheiden und zu Beachten:
a-] Möchte man Daten wie Positionen etc. nur während der Entwicklungszeit ändern? Wenn ja, dann Scriptable Objects ..
b-] Soll man die gespeicherten Daten auch lesen können? Wenn ja, dann JSON / XML / CSV oder oder
c-] Soll man die Daten nicht unbedingt lesen können => binäre Speicherung
d-] Möchte man ein gescheites Interface zum Abfragen größerer Datenmengen => Lokale Datenbank
e-] Möchte man die Daten dezentral halten => Remote Datenbank
f-] Möchte man gar keine Files schreiben => PlayerPrefabs

Und dann kann man natürlich diese Optionen auch verbinden, beispielsweise Scriptables Objekts für Speicherung von Objekteigenschaften während der Level-Designphase und "binäre Speicherung" für Runtime-Spieldaten.

PS:
Serialisierbare Klassen lassen sich meist sowohl binär als auch mit JSON oder XML speichern. Einige Einschränkungen gibt es bei JSON, beispielsweise bei gekapselten Properties.

Share this post


Link to post
Share on other sites
vor 5 Stunden schrieb Zer0Cool:

Da gibt es vieles zu Entscheiden und zu Beachten:
a-] Möchte man Daten wie Positionen etc. nur während der Entwicklungszeit ändern? Wenn ja, dann Scriptable Objects ..
b-] Soll man die gespeicherten Daten auch lesen können? Wenn ja, dann JSON / XML / CSV oder oder
c-] Soll man die Daten nicht unbedingt lesen können => binäre Speicherung
d-] Möchte man ein gescheites Interface zum Abfragen größerer Datenmengen => Lokale Datenbank
e-] Möchte man die Daten dezentral halten => Remote Datenbank
f-] Möchte man gar keine Files schreiben => PlayerPrefabs

Und dann kann man natürlich diese Optionen auch verbinden, beispielsweise Scriptables Objekts für Speicherung von Objekteigenschaften während der Level-Designphase und "binäre Speicherung" für Runtime-Spieldaten.

PS:
Serialisierbare Klassen lassen sich meist sowohl binär als auch mit JSON oder XML speichern. Einige Einschränkungen gibt es bei JSON, beispielsweise bei gekapselten Properties.

Die Daten sollen auch während des Spielverlaufs abgespeichert und geladen werden können.

Die lesbarkeit wäre für mich ja in Unity gegeben, darüber hinaus in der Dateistruktur wäre es nicht so gut das stimmt, also binär statt json!

 

Baue gerade selbste meine "Datenbank" auf, habe eine ITEM Class, welche die relevanten Daten speichert.

Zwar habe ich das "Verschachteln" noch nicht ausprobiert, soweit bin ich noch nicht - die einfachen Schritte sind jedoch getan und funktionieren auch.

 

Werde mich noch weiter einlesen, aber grundlegend scheint des der richtige Weg zu sein - das ist gut :-)

Danke!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×