Es gibt keinen besten Ansatz, da er immer vom tatsächlichen Anwendungsfall und Ihrer Gesamtarchitektur abhängt.
Die Verwendung von IDs oder GUIDs ist nicht unbedingt einfacher zu verwenden oder zu ersetzen. Denken Sie daran, dass Sie diese auch kopieren und verwenden müssen. Insbesondere GUIDs sind in der Regel ziemlich lang und ohne Copypasting schwer zu merken. Gleiches kann für rohe Zahlen gelten.
Daher sind "sprechende" Namen wahrscheinlich der beste Ansatz, selbst wenn dies mehr Schreiben oder Ersetzen erfordert.
Was Sie tun können, ist die Verwendung einer Kennung mit fester Länge. Sie können beispielsweise 4 alphanumerische Zeichen verwenden, um alles zu identifizieren. Dies hat auch den zusätzlichen Vorteil, dass Sie die ID (Zeichenfolge) einfach in eine Ganzzahl umwandeln können (berücksichtigen Sie nur die Unterschiede in der Bytereihenfolge) und diese schnell vergleichen können.
Dies kann auch auf den Dateinamen erweitert werden, sodass Sie auch nicht auf vollständige Pfade verweisen müssen. Wenn ich beispielsweise "NMY1" für meinen ersten Feind verwende, werden die Daten in der Datei "NMY1.dat" gespeichert, wobei die Textur in "NMY1.png", der Skriptcode in "NMY1.lua" usw. gespeichert ist.
Eine andere Sache wäre die Modifizierbarkeit: Wenn Sie möchten, dass Benutzer Ihr Spiel einfach modifizieren können, versuchen Sie, eine Überoptimierung zu vermeiden. Dh lieber Namen als Abkürzungen sprechen, keine Roh-IDs oder GUIDs verwenden und stattdessen etwas verwenden, das leichter zu lesen / verstehen / kopieren ist, auch wenn dies bedeutet, dass Sie möglicherweise auch viele Referenzen aktualisieren müssen.
Wenn Ihre Daten zu komplex werden, um einfach aktualisiert / überprüft zu werden, schreiben Sie Tools, die dies für Sie tun (und auch die Integrität überprüfen), oder überdenken Sie Ihren Ansatz.