toyoshiの日記

株式会社トクイテンを有名にするための日記です

Pyxel (Python)でWebでも動くゲームを作って公開した

kitao/pyxel: A retro game engine for Pythonというゲームエンジンを使ってPythonでゲームを作りました。

ThreeNotesQuestから遊べます。ぜひ遊んでスコアをシェアしてください。

Pyxelの特徴はWindowsMacLinux、Web で動作することです。今回も手元ではMacで動かしながら開発をし、公開はWebで遊べるようにしました。

動機

小さなゲームを作ること、それ自身が楽しいのだ - ABAの日誌を読んで面白いなと思ったこと。私のプログラマーのとしての原点は、ポケコンSHARP G850)で作ったゲームをクラスで配布した時の楽しさでした。そこで久しぶりに小さいゲームを作りたくなりました。

作ったゲーム

シンプルなゲーム

スタートからゴールまで得点を稼ぎながら進むゲームです。経路によって大きく変わる得点を競います。コースは1日1回変わります。

コードはtoyoshi/mazeにあります。MITライセンスです。

Pyxelのおかげで200行程度で作れました

面白かった点

  • ゲームエンジンであるPyxelが描画などを担ってくれるので、昔のBASIC風に簡単に開発ができる
  • Web版はWebAssemblyを使っているのでPythonのコードがフロントエンドと変数を共有できたりする。不思議な感覚
  • Web版の共有がとても簡単。Githubに公開さえすれば 著者が用意してくれている環境ですぐに共有できる。(Pyxel Web Launcher )私はNetlifyを使いました。

工夫した点

共有ボタンをフロントエンド側で実装しました。

# ブラウザで実行する場合
try:
    import js
except ImportError:
    pass

のようにして、Python側でjsをimportすると、JavascriptからPython内の変数が見れるようになります。これを利用してスコアの共有ボタンを作りました。

まとめ

お手軽にゲームを開発して共有できるPyxelは素晴らしいですね。特に共有が簡単というのは開発するモチベーションになります。どんどん使われて欲しいです。

ThreeNotesQuest