Работа над поиском путей в своём движке для будущей игры, Gobby Island. Мини фидбэк

Всем приветы! Программист ушёл в отпуск и вернулся из Армении на 2 недели. Мы не могли не воспользоваться такой возможностью и с удвоенным энтузиазмом продолжили наше дело. Вашему вниманию - поиск путей!

Для реализации и проверки вышеназванной технологии было создано отдельное приложение:

Для начала необходимо проверить работоспособность технологии.
Для начала необходимо проверить работоспособность технологии.

В правом верхнем углу вы можете наблюдать окно под названием "voxels color", в котором представлены разные цвета. Они обозначают:

  • Синий - сам путь, true path
  • Красный - ложный путь, false path. Его увидите немногим ниже
  • Чёрный - препятствия, wall
  • Жёлтый - наша цель. Наверняка редкое, блестящее золотом сокровище!
  • Зелёный - конечно же Гобби :)
Изначально проверка проводилась на подготовленном поле из непроходимых блоков, но решили делать проверку на пустом пространстве
Изначально проверка проводилась на подготовленном поле из непроходимых блоков, но решили делать проверку на пустом пространстве
Немного начинки. Здесь небольшое обсуждение - цель на земле или нет. На пустом пространстве такую проверку можно отключать, что мы после и предприняли
Немного начинки. Здесь небольшое обсуждение - цель на земле или нет. На пустом пространстве такую проверку можно отключать, что мы после и предприняли

Существуют разные алгоритмы для поиска путей, мы выбрали для себя a* search algorithm. Во многих тестах он показывает лучший результат по времени, ищя путь напрямую к цели (некоторые алгоритмы ищут путь вдоль стен, во все стороны и по прочим направлениям).

Первый тест с препятствиями. Сокровище найдено!
Первый тест с препятствиями. Сокровище найдено!
Стартовые условия в этом тесте были немного изменены. Испытание пройдено!
Стартовые условия в этом тесте были немного изменены. Испытание пройдено!

Помните о том, что мы убрали просмотр информации, на земле ли цель и наш гобби перемещается в свободном пространстве? Забавный результат на скриншоте ниже:

Гобби устроил подкоп :D
Гобби устроил подкоп :D

После мы решили посмотреть, как визуально выглядит поиск пути в трёхмерном воксельном пространстве. Ложный путь указан красными вокселями:

Он упёрся в стену и понял, что её преодоление требует слишком много энергии. Умный в гору не пойдёт - умный гору обойдёт!
Он упёрся в стену и понял, что её преодоление требует слишком много энергии. Умный в гору не пойдёт - умный гору обойдёт!
Вид с противоположной стороны. Видно, как он карабкался.
Вид с противоположной стороны. Видно, как он карабкался.
Теперь была выбрана новая цель - посмотрим, как к ней пойдёт наш зелёный друг
Теперь была выбрана новая цель - посмотрим, как к ней пойдёт наш зелёный друг
Успех! Но за красным массивом практически не виден сам путь. Мы можем изменить прозрачность красных вокселей
Успех! Но за красным массивом практически не виден сам путь. Мы можем изменить прозрачность красных вокселей
Синий оттенок у нас перебивает чёрный, оттого и кажется, что он прошёл через стену. На самом деле он пролез под ней. Можно сказать, что это обратный прыжок. При беге по земле будет прыжок, но проверять мы это, конечно же, не будем.
Синий оттенок у нас перебивает чёрный, оттого и кажется, что он прошёл через стену. На самом деле он пролез под ней. Можно сказать, что это обратный прыжок. При беге по земле будет прыжок, но проверять мы это, конечно же, не будем.

Работа кипит, отпуск подходит к концу. Работа над IndieGo Engine v1.0 практически завершена, скоро будет пост об изменениях - не только технических, но и визуальных. Впереди - интегрирование пуиска путей в саму игру. Всем спасибо за уделённое время, пишите ваши вопросы, мнения и предложения - буду рад.

P.S. Друзья, аз-за абсолютного пути к шейдерам бинарник не выкладываем. В скором времени с этим разберёмся и предоставим вам возможность поиграться с этой историей :)

1717
6 комментариев

Глеб, я плюсанул из уважения. Но по Вашей статье я все больше убеждаюсь, что тут технические статьи лучше не писать)) Лучше конечный результат с билдом)

2
Ответить

Спасибо! Перейдём к графоманскому стилю повествования с:

Ответить

Комментарий недоступен

Ответить

У моего коллеги основная работа в IT компании, он переехал в Армению и работает оттуда. Начался отпуск и появилась возможность вернуться обратно на 2 недели для плодотворной работы над нашим проектом фэйс ту фэйс, так сказать)

1
Ответить

только это?)

Ответить

Што такое?)

Ответить