Fujikatoma Geschrieben 10. November 2016 Melden Share Geschrieben 10. November 2016 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 More sharing options...
MarcoMeter Geschrieben 10. November 2016 Melden Share Geschrieben 10. November 2016 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 More sharing options...
Fujikatoma Geschrieben 13. November 2016 Autor Melden Share Geschrieben 13. November 2016 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 More sharing options...
MarcoMeter Geschrieben 13. November 2016 Melden Share Geschrieben 13. November 2016 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 More sharing options...
Thariel Geschrieben 13. November 2016 Melden Share Geschrieben 13. November 2016 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 More sharing options...
Fujikatoma Geschrieben 13. November 2016 Autor Melden Share Geschrieben 13. November 2016 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 More sharing options...
yann Geschrieben 16. November 2016 Melden Share Geschrieben 16. November 2016 XML nutze ich Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Overdozed (Dimitri) Geschrieben 20. November 2016 Melden Share Geschrieben 20. November 2016 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: Mit etwas EditorScripting könnte man es noch weiter ausbauen falls notwendig. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 20. November 2016 Melden Share Geschrieben 20. November 2016 Gefragt war hier nach Speicherung auf dem Rechner des Anwenders, nicht des Entwicklers. ScriptableObjects bringen da kaum Mehrwert. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Overdozed (Dimitri) Geschrieben 20. November 2016 Melden Share Geschrieben 20. November 2016 Genau damit kannst du die Daten in einer Anwendung speichern, nicht auf dem Rechner des Entwicklers. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 20. November 2016 Melden Share Geschrieben 20. November 2016 Wie sieht denn der Code aus, um mithilfe von ScriptableObjects dynamische Daten auf dem Rechner des Anwenders zu speichern? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Overdozed (Dimitri) Geschrieben 20. November 2016 Melden Share Geschrieben 20. November 2016 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 More sharing options...
Sascha Geschrieben 20. November 2016 Melden Share Geschrieben 20. November 2016 Das speichert keine Daten des Spielers auf seinem Rechner. Das ermöglicht strukturierte Daten im Editor (die dann natürlich auch im Spiel landen). Einen Spielstand speichern kann man damit nicht, und um diese Art der Daten ging es. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Overdozed (Dimitri) Geschrieben 20. November 2016 Melden Share Geschrieben 20. November 2016 Probiere es aus bevor du diese Aussage machst Du wirst dich wundern Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 20. November 2016 Melden Share Geschrieben 20. November 2016 Sorry, aber ich benutze ScriptableObjects schon seit vielen Jahren. Und dein Code da speichert nichts zur Laufzeit. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mr 3d Geschrieben 20. November 2016 Melden Share Geschrieben 20. November 2016 Aus meiner Erfahrung würde ich auch sagen, dass Sascha Recht hat... Ihr redet ja davon Spielerdaten im exportierten Spiel in ScriptableObjects abzuspeichern, oder? Hier sagt er auch, dass eben das nicht geht: Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Overdozed (Dimitri) Geschrieben 20. November 2016 Melden Share Geschrieben 20. November 2016 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 More sharing options...
Overdozed (Dimitri) Geschrieben 20. November 2016 Melden Share Geschrieben 20. November 2016 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 More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.