Ich habe vor ein paar Wochen ASC entdeckt und finde es großartig - vielen Dank an alle Entwickler!
Allerdings ist mir aufgefallen, dass die KI häufig recht lange braucht, um ihre Züge zu planen. Ich zocke auf Reisen gerne auf meinem Netbook, und das Ding ist recht lahm, da kann so ein Zug mal mehrere Minuten dauern. Ich hoffe, um Weihnachten herum ein wenig Zeit zu finden und zu versuchen ein wenig mehr Performance aus der KI herauszukitzeln. Dazu bräuchte ich ein wenig Einstiegshilfe. Ich schüttel mal mal ein paar Punkte, die mir gerade einfallen, aus dem Handgelenk:
- Ich habe mal die cpp-Dateien in source/ai überflogen. Sie scheinen recht übersichtlich zu sein, sind aber wenig kommentiert. Häufig ist Code auskommentiert, ohne Hinweis darauf, warum. Ein paar hilfreiche Kommentare, oder auskommentierten Code löschen (immerhin wird ein Versionsconstrolsystem verwendet, man kriegt ja alles wieder) würde mir sehr helfen.
- Ich würde wohl damit anfangen, mit perf oder oprofile den Code zu profilen. Gibt es da gute Erfahrungshinweise? Was benutzt das Core-Team?
- Gibt es Low-Hanging Fruit, also Stellen, wo ich ohne Kenntnis des Großen Ganzen schon mal brauchbare Ergebnisse erzielen kann? Gibt es so was wie ne TODO-List für Performance-Sensible Sachen?
- Wurde schon mit SSE intrinsics u.Ä. experimentiert (ich habe mir nichts genaues angeschaut, aber denke, dass man häufig z.B. alle acht Felder um eine Einheit checken muss. So was ließe sich bestimmt mit SSE optimieren).
Vielen Dank,
Ed von Schleck