В идеале, конечно, сделать некий аналог топологической сортировки для определения порядка ходов. В моем примере юнит (10, 11) если походит первым, то для (10, 10) клетка освободится...
Хешмеп то понятно, но я то могу переделать на список и сам задавать порядок. Не совсем понял пункт про А*. Вот у меня два юнита в координатах (10, 10) и (10, 11). То есть вплотную на одной горизонтали. Оба дают команду идти вправо. Как мне сделать, чтоб юнит (10, 10) не начал обходить (10, 11)?
Внутри у тебя какие угодно могут быть списки, но серверу команды ты всё равно через мапу отдаешь же. И это навряд ли изменится.