редстоун вполне справляется с таким родом задач в RailCraft, ну а если делать это на уровне плагина с высокоуровневым AI... вы хоть представляете количество расчётов которое будет нужно например для определения между 4 полосами и определения дорожек между ними? А-ля добро пожаловать в кружок анонимных писателей на ассемблере.
Возьму тот же пример из расчета банального патчфайндинга(поиска пути) для сервера Lineage - нечто схожее там является функцией модуля геодаты и просчитывается гигабайтами файлов с огромной нагрузкой - всё это пишется там далеко не первый год и люди платят за качественную гео там тысячи рублей. Масштаб майнкрафта конечно не тот как на Java платформе Lineage, но всё же.
О да, теперь рассчет наикратчайшего пути называется высокоуровневым AI.
Насчет Lineage ничего не знаю, но в других играх это делается очень быстро и без какой-либо нагрузки.
Для RTS поле делится на мелкую сетку, а дальше обычно путь ищется волновым алгоритмом (он прост как три копейки)
Для 3D движков рассчет проводится по другим алгоритмам, но частично все пути уже заложены в карту.
Все алгоритмы придуманы не криворукими школьниками и очень хорошо оптимизированы. Применить их конкретно к задаче поиска жд путей никто не мешает. Разве что потребуется перенести нужный алгоритм на Java и применить к игровым элементам.
Или думаете, что настоящий плагин должен содержать всего пару строчек кода? Зря, зря, зря.. В руках разработчика находится весь JDK, который можно применять в полную силу. Стоит сперва применить свой мозг, прежде чем так слепо оценивать масштабы рассчетов. JRE - вполне гибкий, оптимизированный и быстродействующий инструмент. Возьмем, к примеру PathFinder, который уже реализован в майнкрафте. Зомби быстро рассчитывают, как найти игрока. А алгоритм там очень сложный, ибо рассчитывается разная высота, препятствия (лава, двери, заборы, огонь). Сервер виснет, когда зомби энгрится?
Теперь по делу:
Волновой алгоритм рассчитан на поиск пути в графе с ребрами единичной длины. По поводу быстродействия..
Вот что будет, если рассчитывать путь между точками, разделенными стенкой:
Но в нашем случае количество ребер и соседних вершин будет намного меньше. Т.е. алгоритм практически будет приведен к линейному поиску пути, с редкими развилками. Добавим хеширование отдельных участков или всей дороги целиком и вуаля - никакой нагрузки!
Я поддерживаю разработку подобных плагинов, особенно, если они open-source. Даже, если аналогичный плагин уже существует - это не значит, что работа не принесет пользы. Если плагин доработать с умом (например, сделать приват жд и остановок, встроить Vault API и может даже алгоритм авто-прокладки дороги) - он разнесет в клочья всех конкурентов.
Если кто-то возьмется за такой плагин - я готов помочь в разработке с методами оптимизации. Сам браться в ближайшее время не буду - ибо на мне весят еще 2 других незаконченных плагина.