Я нахожусь в процессе превращения 2d сверху вниз игры, над которой я работаю, в настоящий физический движок твердого тела, такой как Farseer. До сих пор я просто взламывал собственный физический код, где это было необходимо.
Я пытаюсь научиться правильно делать вещи здесь.
Как правильно заставить ИИ следовать по заданному пути, когда вы сделаете их твердыми телами внутри физического движка?
Если у меня есть путь навигационных узлов на моей карте, по которому мне нужен AI, ранее я просто перемещал их по пути вручную, вычисляя следующую позицию, в которой они должны находиться для следующего шага времени, и вручную устанавливая их в эту позицию ,
Но теперь они являются твердыми телами и подвержены столкновениям и любым силам, которые могут поразить их и сбить с пути.
Таким образом, чтобы заставить ИИ двигаться, я считаю, что теперь я должен применять импульсы / силы к ним? Мне больше не нужно вручную устанавливать свою позицию в каждом кадре.
Поэтому я думаю, что мне нужно выйти из детерминированного мира, где я заставляю ИИ строго следовать по пути к недетерминированному миру, где они могут попасть в любую сторону, если ударить, и я просто подталкиваю их к следующему узлу на пути. заставить их двигаться.
Это правильно? Это как другие люди делают это?
Это поднимает некоторые вопросы о том, как избежать того, чтобы ваш ИИ застрял на углах пейзажа, когда они не идут по точному пути, как вы, ребята, справляетесь с такими вещами?
Или лучше как-то смешать их, и все же ваш ИИ будет следовать по фиксированному пути, устанавливая их положение вручную, и реагировать только на другие силы только при определенных обстоятельствах, которыми вы легко можете управлять?
Спасибо за любые советы, ребята.