В разработке PathFinder.io проходит очередная неделя, и в игру добавлено несколько интересных геймплейных дополнений. Для начала я наконец-то добавил в игру ИИ и узлы целей. Основная цель игры в ее нынешнем виде будет заключаться в том, чтобы пройти как можно больше целевых узлов, прежде чем вражеский ИИ одолеет его. Это действительно простая концепция, но есть много способов уклониться от ИИ и достичь цели. И это очень хорошо сочетается с динамичным игровым процессом, который заставляет игрока думать о своем пути на ходу.

Улучшения графа ненаправленного обхода

В этом обновлении я добился огромного прогресса в улучшении неориентированного графа, который проходит игрок. Во-первых, я успешно разработал и реализовал свой собственный алгоритм поиска пути Дейкстры. В настоящее время он работает за время O(nlog(n)) из-за некоторых хороших оптимизаций индексации. Оказывается, алгоритм поиска пути работает быстрее, чем я ожидал, и довольно дешев с точки зрения обработки из-за многопоточной функции.

Я также работал над тем, чтобы сделать график непрерывным. Теперь, если вы продолжите двигаться в одном направлении, вы просто окажетесь там, где начали. Это было действительно интересно реализовать, это реализовано так же, как тесселяция для текстур: я беру экземпляр сетки, дублирую его и создаю восемь экземпляров сетки вокруг реальной сетки, триангулирую все это, а затем удаляю все узлы, которые не подключен к узлу в реальной сетке. Когда игрок приземляется на один из «нереальных» узлов, он телепортируется к соответствующему реальному аналогу нереального реального узла. Чтобы сохранить иллюзию того, что график зацикливается, я визуализирую все 9 графиков на своей сцене и отбрасываю края, которые находятся вне поля зрения камеры.

Планы на будущее

Я собираюсь сосредоточиться на исправлении графики моей игры на следующей неделе для следующего обновления, и одна из основных целей — перейти с Pixi.js на Three.js, что позволит мне делать более причудливые 3D. вещи, которые я не смог бы сделать в Pixi, не ломая голову над множеством перспективных преобразований. Одна из вещей, которую я с нетерпением жду реализации, — это функция шума перлина, чтобы придать моим узлам некоторую высоту. Я думаю, что это будет выглядеть стилистически круто. В любом случае, как всегда, не стесняйтесь комментировать любые мысли или предложения о том, что я создаю. Всем бурной пятницы!