みどりのあくま

勉強したことをアウトプットしていきます。

parcel + phina.js + carlo でゲームを作る

以下記事を見つけました。

qiita.com

qiita.com

これは以前解説したparcel + phina.jsのコードを使い回せばいけそうな気がしました。

carlo

上の2つに記事を読んでもらえばわかると思いますが、簡単に言うとChromiumとnode.jsを使って動くハイブリットフレームワークです。
electornなどと違って、ローカルにインストールされているchormeのエンジンを使います。 なので配布する際の容量は小さくできます。

完成物

完成したものは以下に置いておきます。

github.com

今回はとりあえず起動することを考えるので、electronの時同様にビルドした物をアプリから起動させます。

実装

まず、以下のコードを丸々流用します。

github.com

次に carlo を導入します。
npmを使ってインストールします。

$ npm i carlo --save-dev

完了したら、プロジェクト直下に以下 app.js ファイルを作成します。

const carlo = require('carlo')

const bootstrap = async () => {
  const app = await carlo.launch({
    width: 385,
    height: 600
  })
  app.on('exit', () => process.exit())
  app.serveFolder('build')
  await app.load('index.html')
}

bootstrap()

あとはアプリを実行して起動させれば終わりです。

$ node app.js

以下のような画面が出れば成功です。

f:id:orange634:20181124220931p:plain

以上です。
メッチャ簡単ですね。

正直ゲームで使えるかというと…多分使えないでしょうね。
nodeやchromeがインストールされていることが前提なので、ゲームを配布用するのには向いてないと思います。
ゲームの配布方法として使うというよりnodeと連帯がとりやすようなので、ちょっとした開発用のGUIツールに使う感じ?かもしれません。
RPGツクールみたいにデータを作成する画面とかに使えるかもしれません。