Ich lese gerade das Buch Programming Game AI By Example.
In dem Buch wird erwähnt, wie jeder Entität im Spiel eindeutige ID-Nummern zugewiesen werden. Wenn die Entität A die Entität B kontaktieren muss , erhält A häufig einen Verweis auf B, indem die ID-Nummer von B an eine EntityDatabase- Klasse gesendet wird . Diese Klasse erhält ID-Nummern und gibt Verweise auf die Entitäten zurück.
Die ID-Nummern einiger Entitäten können auch aus einer Datei abgerufen werden, die die IDs einiger Entitäten (die Hauptfiguren des Spiels) enthält.
Meine Frage ist: Warum sollte ich das tun? Warum kann ich nicht direkt mit Referenzen arbeiten? Ist es manchmal schwierig, eine direkte Referenz zu bekommen? Ist die Verwendung eines ID-Systems ein gängiger Ansatz? Gibt es Spiele, die keine IDs verwenden?
Ich bin neu in der Spieleentwicklung. Bitte erläutern Sie die Vorteile der Arbeit mit einem Entity-ID-System. Die Vor-und Nachteile. Konkrete Beispiele wären toll. Vielen Dank
quelle
Eine letzte Sache ist, dass, wenn Sie das Objektpoolmuster verwenden und eine Entität zurückgesetzt wird, weil die Kreatur gestorben ist (zum Beispiel) und an einer anderen Stelle wieder auftaucht, ein Verweis immer noch auf dieselbe Entität verweist (Fehler) und eine ID nicht mehr verbleibt gültig.
ID 5067 zeigt auf Adresse 0x8765 Kreatur stirbt und eine andere neue Kreaturen-ID wird auf 7073 zurückgesetzt. Jemand sucht nach ID 5067, zeigt auf 0x8765, aber diese Kreatur ist jetzt mit der ID 7073 registriert, sodass die Entitäts-ID-Datenbank weiß, dass Sie eine veraltete ID und verwendet haben informiert dich, dass die Kreatur, die du zu erreichen versucht hast, nicht mehr aktiv ist.
Das und all die wunderbaren Gründe, die Byte56 genannt hat, sind, warum es ein gutes Design ist, Referenzen nicht direkt zu verwenden.
quelle