Nun ja, wie die fahren ist ja nun egal, diagonales fahren ist schwer zu programmieren, deswegen einmal horizontal, dann vertikal.Wieso sollte das schwer zu programmieren sein? Also, wieso sollte es schwerer sein als sich horizontal und vertikal zu bewegen (im 3D-Raum!)? Die Einheit weiß, wo und wie sie steht, und sie weiß, wo sie hinfahren soll, daraus lässt sich doch sehr einfach berechnen um wie viel Grad sich ein Einheit drehen muss und welchen Weg sie zurücklegen muss (wenn man davon ausgeht, dass die sich auf der Stelle drehen kann).
Ich denke mir das mit Wegfindung so, der Weg wird berechnet mit der Anzahl der gleichzteitig zu bewegenden Einheiten. Dabei ist die größe der Map und der zu bewältigende Weg entscheidend, deswegen dauert es manchmal etwas, bis sich die Einheiten bewegen.Wäre doch sinnvoller zu gucken, wo die Einheit ist, wo sie hin muss, und dann erstmal zu prüfen, ob es einen direkten Weg dahin gibt. Vorher könnte man natürlich noch prüfen, ob das Ziel überhaupt erreichbar ist ;) Die Größe der Karte ist für diese Schritte nicht wichtig (k, außer vielleicht, um zu prüfen, ob die angegebenen Zielkoordinaten überhaupt auf der Karte liegen, aber ich will mal nicht so pingelig sein!). IIRC hatte per da mal was committed, was die Karte in "Begehbarkeitszonen" eingeteilt hat. Also zusammenhänge Land- und Wassermassen. Cybersphinx, wenn du das liest, kannst du dich dazu ja auch äußern ^_^
Was mich annervt ist, sind jene Einheiten welche einen Rückzugsbefehlt haben bei schwerer Beschädigung. Bleiben die irgendwo hängen, löscht sich der Befehl selbständig und die Einheiten greifen wieder in die Schlacht ein, was meist mit dem Verlust der Einheit endet.Das soll eigentlich nur bei AI-Einheiten passieren, die erhalten dann halt kurz darauf automatisch einen neuen Befehl. Dummerweise ist die Funktion isHumanPlayer kaputt und behauptet, alle Spieler seien AIs.
Ich denke mir das mit Wegfindung so, der Weg wird berechnet mit der Anzahl der gleichzteitig zu bewegenden Einheiten. Dabei ist die größe der Map und der zu bewältigende Weg entscheidend, deswegen dauert es manchmal etwas, bis sich die Einheiten bewegen.Stimmt im Prinzip (Größe der Karte eher indirekt, weil es sich auf Größe und Anzahl der Unterzonen auswirkt), und irgendwann kommt halt der Punkt, an dem die Wegberechnungen nicht mehr für alle Einheiten fertigberechnet werden können, weil der Prozessor zuviel zu tun hat.
Wäre doch sinnvoller zu gucken, wo die Einheit ist, wo sie hin muss, und dann erstmal zu prüfen, ob es einen direkten Weg dahin gibt. Vorher könnte man natürlich noch prüfen, ob das Ziel überhaupt erreichbar ist ;) Die Größe der Karte ist für diese Schritte nicht wichtig (k, außer vielleicht, um zu prüfen, ob die angegebenen Zielkoordinaten überhaupt auf der Karte liegen, aber ich will mal nicht so pingelig sein!). IIRC hatte per da mal was committed, was die Karte in "Begehbarkeitszonen" eingeteilt hat. Also zusammenhänge Land- und Wassermassen. Cybersphinx, wenn du das liest, kannst du dich dazu ja auch äußern ^_^Früher gab es die Gateways, die die Karten in Zonen aufteilten (man sucht nicht den kompletten Weg von A nach B, sondern 1. welche Zonen verbinden A und B, und 2. wie komme ich von der aktuellen in die nächste Zone) und manuell gesetzt werden mussten (und auch sonst die Sache verkomplizierten). Manuell ist natürlich blöd, weil die Kartenmacher dann verantwortlich dafür sind, daß sich die Einheiten ordentlich fortbewegen können. Deshalb war der Plan soweit ich mich erinnere, die Zonen automatisch zu erstellen, aber wie weit das fortgeschritten ist, weiß ich nicht. Ich hab da vage was im Kopf von "laßt uns die Gateways erst mal rausnehmen, um das Ganze dann ordentlich zu machen" - wenn das bei "Gateways rausnehmen" stehengeblieben ist, dann fehlt derzeit die zweistufige Aufteilung, und es muß immer der komplette Pfad berechnet werden.
wo findet man sowas wie eine Fehleraufzeichnung?stderr.txt. Für kurze Spiele ist es ratsam das Spiel mit --debug all zu starten. Aber ich hatte das mal gemacht und mehrere Stunden gespielt und eine Datei mit 100+ MiB bekommen.