Ich habe gerade eben einen Test durchgeführt und die erste und zweite Möglichkeit verglichen.
Ich habe folgende Scripte Verwendet um die Performance zu vergleichen:
Das Update läuft jedes Frame, je nach Wert von @check wird die Passierbarkeit an der Position (1,1) beliebig oft getestet.
Das Ergebniss:
Die Framerate betrug am Anfang des Testes konstante 40.
Ich habe die Variable @check kontinuirlich pro Frame um 1 erhöht.
Als @check ungefähr den Wert 350 angenommen hatte sank die Framerate auf 37 - 39.
Von da an aufwärts sank sie stetig weiter bis ich um den Wert 1000 für @check bereits 10 Frames pro Sekunde verloren habe.
Den gleichen Test mit einer Tabelle:
Ich habe eine normale Table benutzt mit den Maßen 640 x 480.
Das Ergeniss:
Zu beginn brauchte der Computer eine kurze Zeitspanne (nicht mehr denn eine Sekunde) um die Tabelle zu erstellen.
Die Performance begann bei 39 und blieb konstant bis die Variable @check ungefähr bei 5000 angekommen ist. Von da an lag die Framerate bei 38 für die nächsten Tausend Werte von @check.
Ich habe den Test an dieser Stelle abgebrochen, ich denke es wurde genug bewiesen, dass die Tabelle die Effizienz enorm verbessern würde.
Mit der BitTable2D welche du geschrieben hast war die Performance zwar besser als mit der Berechnung durch die Pathing Map allerdings weitaus schlechter als mit der normalen Tabelle.
Die Framerate sank hier bereits bei einem Wert von ungefähr 850 auf 36 - 38.
Würde eine Art hybrid-Lösung funktionieren?
Zum Speichern der Werte einen String welcher beim betreten der Karte in eine Table umgewandelt werden würde?