Я разрабатываю RTS на основе тайлов в реальном времени. Это пример карты:
Эта карта состоит из 4 регионов по 256 плиток в каждой. Синие плитки представляют собой препятствия. Юниты могут двигаться в стандартных восьми направлениях. Юниты привязаны к плиткам; одна плитка может содержать одну единицу.
Вот некоторые примеры идеальных путей, которые я ищу. Типичные вещи A *:
Мой вопрос: применима ли навигационная сетка к RTS на основе тайлов? Я видел только навигационные карты, используемые в играх, где юниты движутся свободно и не привязаны к сетке тайлов. Как будет выглядеть навигационная сетка на этой конкретной карте? Пример изображения будет отличным.
path-finding
rts
navmesh
mario_sunny
источник
источник
Ответы:
Да, навигационные сетки все еще применимы к играм на основе тайлов. Хотя в первую очередь они будут использоваться в качестве оптимизации. Например, я преобразовал нижний левый угол вашего изображения в сетку навигации:
В этом случае каждый зеленый квадрат будет навигационным узлом. Как вы можете видеть, это резко уменьшает количество узлов, которые A * должен обрабатывать. Затем юниты могут просто пройти к центру каждого из этих узлов.
Генерация этих узлов является другой проблемой. Это может быть сложно решить, как сформировать узлы. На сайте есть несколько вопросов, где вы можете найти идеи о том, как вы хотели бы реализовать это:
Разделение многоугольника на блоки разного размера
Идентификация четырехугольных паттернов в двумерном массиве
/programming/20220215/minimum-number-of-rectangles-in-shape-made-from-rectangles
Эта навигационная сетка также может по существу использоваться в качестве поиска пути «первого прохода». Если путь найден через сетку навигации, вы знаете, что путь существует. Это более быстрый тест, чтобы увидеть, связаны ли две точки.
источник