Когда у меня выделен одна боевая единица и отправляется в конечную точку, то волновой алгоритм вызывается 1 раз. А если 2 и более единиц вызвано?
Для каждой единицы вызывается алгоритм построения пути. У вас образуется для каждой единицы полный путь до конца. Потом единица двигается по этому пути. Если возникают проблемы по ходу движения, то иногда путь нужно перестраивать полностью.
Придется сделать под каждую единицу отдельный поток?
Я бы вообще не стал сюда тащить никакие потоки. Всё управление объектами в памяти сделать на одном потоке. Вот всякую там "визуализацию" можно перенести в отдельный поток, т.е. задачу, которая совершенно отдельная. Или опрос сети... его тоже на отдельный поток выносим. Если же вы станете каждого юнита на отдельный поток вешать, то, думаю, ничего хорошего из этого не выйдет, особенно учитывая, что потоки не дадут никакого прироста в скорости, если у процессора не хватает для них ядер. В среднем сейчас вроде бы 4 ядра у процессора, и вроде бы еще есть Hyper-threading, который умножает количество ядер еще на 2. Вот и получается, что смысла в 1000 потоках нет никакого, я даже предполагаю, что это только вредит, так как процессор должен "прыгать" между этими потоками.
Если смотреть немного в будущее, то огромную проблему в RTS представляет отладка сетевой игры. Дело в том, что все компьютеры должны делать всё одинаково, а между ними по сети передаются только команды от мыши и клавиатуры. Так вот... я сомневаюсь, что на многопоточности вообще можно обеспечить полную повторяемость процесса на разных компьютерах, а это приведет к тому, что сеть просто рассинхронизируется, а отлаживать это дело весьма трудно и без многопоточности.