Jump to content
Unity Insider Forum

Daten Speichern, Welche Formate nutzt ihr ?


Fujikatoma

Recommended Posts

Wie speichert ihr eure Daten lokal ab ?

Ich möchte gerne ein weitestgehend moddbares spiel bauen und überlege eine Kombi aus SQLite und Json (Json für die Mods) zu nutzen. Für beides würde ich dann eine Statische Klasse bauen um alles Clean zu halten.

 

Wie geht ihr vor um Benutzerinfos usw zu Speichern ?

Ziel ist es auch Mods zu erlauben ähnlich wie "7 Days to Die", dafür möchte ich gerne JSON und LUA oder JS nutzen , evtl gibt es hier ja jemanden der sowas schon mal realisiert hat

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was umfassen deine Mods? Wie sollen diese Mods erstellt werden?

 

Diese Informationen sind wichtig. Beispielsweise speichere ich Koordinatensystme eines Mathelabores als XML ab, damit man dieses auch von Hand ändern kann. Aber manchmal reicht es auch schon als Binary zu serialisieren/kompilieren... Am Ende baust du dann deine Klassen die damit umgehen können.

 

Was richtig interessant ist, sind Protocol Buffers.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was umfassen deine Mods? Wie sollen diese Mods erstellt werden?

 

Diese Informationen sind wichtig. Beispielsweise speichere ich Koordinatensystme eines Mathelabores als XML ab, damit man dieses auch von Hand ändern kann. Aber manchmal reicht es auch schon als Binary zu serialisieren/kompilieren... Am Ende baust du dann deine Klassen die damit umgehen können.

 

Was richtig interessant ist, sind Protocol Buffers.

 

Ich möchte am liebsten auch scripte anbieten um content zu erweitern aber bin mir noch nicht sicher ob das nicht etwas viel ist.

Grundsätzlich möchte ich aber alle Items und Objekte in dateien Speichern um sie Grob editieren zu können.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Scripte, also Code der zur Laufzeit nicht bekannt ist, ist nicht gerade leicht. Da kommt es besonders auf Objektorientierung an, damit du Klassenstrukturen mit gescheiter Vererbung, Interfaces, abstrakten Klassen usw. aufbauen kannst. Ich selber entwickel gerade einen Prozess, mit welchem man KI für mein Spiel entwickeln kann. Diese lässt sich dann exportieren und jedem Build zur Laufzeit einbauen.

 

Für Items und andere Objekte musst du dir Überlegn, ob du die serialisierten Daten lesbar sein sollen oder nicht. Falls ja, dann bietet sich XML und JSON an. Ansonsten würde ich mit Scriptable Objects arbeiten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich speichere den Spielstand in XML Files und teile es nach Rubriken auf verschiedene Files und sogar Ordner auf.

 

Um in meinem Spiel schnell neue Items zu erstellen und neue Beschriftungen / Übersetzungen zu erstellen, habe ich eigens dafür 2 verschiedene Tools entwickelt.

 

Man kann auch mit XML eine gewisse Flexibilität erreichen und Items erstellen / generieren.

 

Kenne mich mit LUA gar ncht aus, aber ich weiss, es LUA sehr beliebt ist als "Moddingsprache" und wird auch professionell in grossen Spielen eingesetzt (zum Beispiel Gothic).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich speichere den Spielstand in XML Files und teile es nach Rubriken auf verschiedene Files und sogar Ordner auf.

 

Um in meinem Spiel schnell neue Items zu erstellen und neue Beschriftungen / Übersetzungen zu erstellen, habe ich eigens dafür 2 verschiedene Tools entwickelt.

 

Man kann auch mit XML eine gewisse Flexibilität erreichen und Items erstellen / generieren.

 

Kenne mich mit LUA gar ncht aus, aber ich weiss, es LUA sehr beliebt ist als "Moddingsprache" und wird auch professionell in grossen Spielen eingesetzt (zum Beispiel Gothic).

Genau deshalb tendiere ich auch zu LUA da ich es selber schon für mods und Server (WoW) genutzt habe.

Teilweise gibt es schon implementierungen dafür. Alternativ könnte man noch javascript nutzen , dafür gibt es sogar ein Unity asset

 

 

Ich tendiere auch zu Json da ich es sehr gerne nutze und man es einfacher auf Seiten verarbeiten kann

Link zu diesem Kommentar
Auf anderen Seiten teilen

Für die lokale Speicherung von Daten benutze ich Scriptable Objects und AssetDatabase. Ich könnte jetzt auf die schnelle kein Tutorial oder sowas finden, aber wenn du suchst - findest du sicherlich was. Das ganze sieht dann in etwa so aus:

 

1*BR-0xGw5Rzafc1qYZxW-jA.png

 

Mit etwas EditorScripting könnte man es noch weiter ausbauen falls notwendig.

Link zu diesem Kommentar
Auf anderen Seiten teilen

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class LocalData : ScriptableObject
{
public string dataname;
public List<Data> dataList;
}
using UnityEngine;
using UnityEditor;
using System.Collections;
public class CreateMyData: MonoBehaviour {
[MenuItem("Data/MyLocalData")]
public static LocalData CreateNewLocalData()
{
	LocalData asset = ScriptableObject.CreateInstance<LocalData >();
	AssetDatabase.CreateAsset(asset, "Assets/Data/LocalData.asset");
	EditorUtility.FocusProjectWindow();
	Selection.activeObject = asset;
	return asset;
}
}

 

CreateMyData soll in den Editor Ordner rein

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry Sascha, ich habe wohl zu wenig geschlafen, dass deine Aussage wegen sowas wie Leaderboards an mir vorbei ging. Ja, die Scriptable Objects können tatsächlich nicht als so eine Art Database benutzt werden. D.h. zwischen den Sessions werden die neuen Werte bzw. Änderungen nicht Abgespeichert. Was man damit aber gut machen kann sind die einzelnen Einstellungen und Werte auf dem Clienten abspeichern und laden. Währen der Session können diese Werte flexibel verändert werden, die Änderungen werden aber nach Sessionende wieder verloren gehen.

 

Da ich die Frage so verstehe, dass man unterschiedliche Einstellungen für verschiedene Spielmods abspeichern möchte - würde das damit gehen, aber nicht die Änderungen, die während der Session gemacht wurden. Wenn ich die Problemstellung nicht richtig verstehe ziehe ich meine Kommentare zurück :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Grundsätzlich möchte ich aber alle Items und Objekte in dateien Speichern um sie Grob editieren zu können.

 

Das kann man am besten mit Scriptable Objects machen, aber natürlich nicht live in der Anwendung oder auch in der Anwendung, aber dann nur für die Sessiondauer.

 

Wie geht ihr vor um Benutzerinfos usw zu Speichern ?

 

Das würde aber damit nur für die Sessionlänge möglich sein. Damit z.B. diese Daten während der Session dann an anderen Stellen editiert und wie auch immer benutzt und dargestellt werden können.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...