Instanz ID handling

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Instanz ID handling

      Hi Leute!
      Ich hätte wiedermal eine Frage bezüglich der objektverwaltung des GMs.

      Ich weiss dass ich (wenn es um Ressourcenkontrolle geht) beim GM grundsätzlich falsch bin, jedoch gibt es hier und da sachen die ich beim GM dennoch berücksichtigen sollte.
      u.a. wie die Instanz IDs von erstellten/gelöschten objekten verwaltet werden.

      Bei jedem erstellen einer Instanz wird ihm ja eine einmalige ID zugewiesen.
      Dabei startet der GM z.B: bei 10000.
      Wenn ich eine 2te Instanz erstelle, zählt er die Nummer um 1 hoch und die Instanz bekommt die ID 10001.
      Die nächste daraufhin 10002 usw...

      Jetzt ist die Frage:
      Wenn ich eine Instanz mit z.B: der ID 10005 lösche und bereits eine Instanz mit der ID 10006 existiert, habe ich ja eine Lücke in den IDs.

      10003,10004,10006.
      Was passiert nun, wenn ich ein neues Objekt erstelle?

      Bekommt es die "nicht zugewiesene" ID 10005? Oder geht es einfach weiter mit 10007?

      Würde mich freuen wenn mich da jemand aufklären würde. ^^'
    • Ich denke auch, dass es die Lücke überspringt. So wie wenn du neue Ressourcen hinzufügst, nachdem du vorher andere gelöscht hast. Aber die einfachste Methode, es rauszufinden, wäre natürlich, es auszurobieren. ;)

      © 2008 by Teamgrill Productions
    • Er dürfte einfach die nächsthöchste ID nehmen, da das in O(1) liegt.
      Die nächste zu Lücke finden liegt hingegen in O(n) (n = Anzahl der erstellen Instanzen) - ohne eine zusätzliche Datenstruktur wie z.B. einen Stack zu benutzen.

      Da man keinen Vorteil daraus zieht (es könnte eher zu Problemen führen), wette ich auch ohne Ausprobieren darauf, dass er einfach stur hochzählt.