Hallo,
Mein Spiel erfordert ein speicherbares Inventar (bzw. mehrere), welches unterschiedliche Gegenstände beinhalten soll. Jeden dieser Gegenstände würde ich gerne als eigenes Objekt im Game Maker speichern. So weit, so gut. Jetzt stellt sich mir allerdings die Frage, wie ich diese Speicher- und Recheneffizient anlege.
Mein erster Versuch war eine ds_list mit allen Objekten als eigene Instanz. Zum Speichern wird jeder object_index in eine ini geschrieben. Beim Laden werden diese Objekte wieder in der Liste instanziert (damit ich auf die gespeicherten Werte zugreifen kann). Diese Lösung funktioniert zwar, allerdings bin ich nicht ganz zufrieden damit, permanent alle Inventar-Objekte im Speicher zu haben, da das bei größerer Anzahl an Gegenständen möglicherweise zum Problem führen könnte (Speicherintensiv).
Meine zweite Idee wäre diese Gegenstände erst, wenn ich auf die Werte des Gegenstandes zugreifen will, zu instanzieren und danach wieder zu zerstören (Rechenintensiv).
Die erste Methode hat zusätzlich das Problem, dass mehrere gleiche Gegenstände mehrfach instanziert werden, obwohl eine Instanz völlig reichen würde, wäre meiner Meinung nach aber trotzdem besser, da Speicher eher vorhanden ist als Rechenleistung.
Hat jemand eine Idee, wie ich das möglichst effizient umsetzte bzw. ob meine oben genannten Zweifel an der Performance meiner bisherigen Lösungen überhaupt gerechtfertigt sind, das Spiel sollte letzten Endes auch auf schwachen Smartphones laufen (habe zurzeit allerdings kein (schwaches) Gerät zum Testen). Bin für alle Vorschläge offen. Ich spiele auch mit dem Gedanken, alle Gegenstände extern als ini bzw. Binärdatei zu erstellen und sie wie eine Datenbank zu laden.
Ich bedanke mich für jede Hilfe im voraus.
PS.: Wie verhält sich der object_index eigentlich genau? Kann es sein, dass dieser sich ändert, wenn ich neue Objekte anlege? Kann es gerade nicht testen, aber wäre ja nicht sehr optimal zum speichern.
Mein Spiel erfordert ein speicherbares Inventar (bzw. mehrere), welches unterschiedliche Gegenstände beinhalten soll. Jeden dieser Gegenstände würde ich gerne als eigenes Objekt im Game Maker speichern. So weit, so gut. Jetzt stellt sich mir allerdings die Frage, wie ich diese Speicher- und Recheneffizient anlege.
Mein erster Versuch war eine ds_list mit allen Objekten als eigene Instanz. Zum Speichern wird jeder object_index in eine ini geschrieben. Beim Laden werden diese Objekte wieder in der Liste instanziert (damit ich auf die gespeicherten Werte zugreifen kann). Diese Lösung funktioniert zwar, allerdings bin ich nicht ganz zufrieden damit, permanent alle Inventar-Objekte im Speicher zu haben, da das bei größerer Anzahl an Gegenständen möglicherweise zum Problem führen könnte (Speicherintensiv).
Meine zweite Idee wäre diese Gegenstände erst, wenn ich auf die Werte des Gegenstandes zugreifen will, zu instanzieren und danach wieder zu zerstören (Rechenintensiv).
Die erste Methode hat zusätzlich das Problem, dass mehrere gleiche Gegenstände mehrfach instanziert werden, obwohl eine Instanz völlig reichen würde, wäre meiner Meinung nach aber trotzdem besser, da Speicher eher vorhanden ist als Rechenleistung.
Hat jemand eine Idee, wie ich das möglichst effizient umsetzte bzw. ob meine oben genannten Zweifel an der Performance meiner bisherigen Lösungen überhaupt gerechtfertigt sind, das Spiel sollte letzten Endes auch auf schwachen Smartphones laufen (habe zurzeit allerdings kein (schwaches) Gerät zum Testen). Bin für alle Vorschläge offen. Ich spiele auch mit dem Gedanken, alle Gegenstände extern als ini bzw. Binärdatei zu erstellen und sie wie eine Datenbank zu laden.
Ich bedanke mich für jede Hilfe im voraus.
PS.: Wie verhält sich der object_index eigentlich genau? Kann es sein, dass dieser sich ändert, wenn ich neue Objekte anlege? Kann es gerade nicht testen, aber wäre ja nicht sehr optimal zum speichern.