ITエンジニア/デザイナ向けにオープンソースを毎日紹介

HTML5ゲームなどでコンピュータのキャラクターを動作させる時にその経路をどう決定すれば良いでしょうか。やり方は幾つかありますが、まず考えるのは最短距離を見つけることでしょう。

しかしゲームでは通り抜けられないオブジェクトがあったり、通れてもコストが高い(川のような)道もあります。そういった障害物もふまえて経路探索ができるライブラリがEasyStar.jsです。

キャラクターが順番に走っていきます。
キャラクターが順番に走っていきます。

キャラクターは個々にスタート位置とゴール位置がことなります。そのため一時は同じ経路を歩んでもそれが最適とは限りません。

キャラクターの走り出すタイミングを変えるとそれがよく分かるかと思います。
キャラクターの走り出すタイミングを変えるとそれがよく分かるかと思います。

EasyStar.jsHTML5のゲームで使う機会は多いと思います。また、そのアルゴリズムから参考になるポイントは多いのではないでしょうか。

さらに面白いのはEasyStar.jsには有償版のEasyStar.js Plusがあり、そちらはジャンプポイント検索と呼ばれるアルゴリズムを使うことでEasyStar.jsの2〜10倍のパフォーマンスを発揮するとのことです。アルゴリズムを調べて改善できるポイントがあると言うのはわくわくしないでしょうか。

EasyStar.jsはJavaScript製、MIT Licenseのオープンソース・ソフトウェアです。

easystar.js

prettymuchbryce/easystarjs

 

MOONGIFTの関連記事

  • DevRel
  • Com2