LoginSignup
1
1

Web開発環境でレトロゲームエンジンPyxel使ってみた

Last updated at Posted at 2024-02-16

はじめに

レトロゲームエンジンのPyxelがWebで実行できるようになりました

つまり、ローカルにPyxelをインストールしなくても、GitHubの機能と組み合わせればブラウザで開発を完結できます

今回は、Github Devを使ってコーディング、GitHub Pages、GitHub Actionsを使ってリリース(デバッグ)して開発をしてみました

良かった点

  • ブラウザとGitHubアカウントさえあれば、開発環境を用意する必要がありません
  • 開発中のゲームをすぐに試してもらえます

悪かった点

  • Pyxel付属のリソースエディタが使えません
  • selfや()を忘れるなどの細かいミスが増えます
    • GitHub Codespaceを使えば解決できるはずです
  • mainブランチに直接commitして開発する必要があり、複数人で開発できません

準備

1. GitHubリポジトリの作成

GitHubを無料プランで利用している場合は、リポジトリの公開設定はpublicにする必要があります

2. ひな形ファイルの作成

次の二つのファイルをリポジトリに作成します

  • index.html
<script src="https://cdn.jsdelivr.net/gh/kitao/pyxel/wasm/pyxel.js"></script>
<pyxel-run root="." name="main.py"></pyxel-run>
  • main.py
import pyxel

class App:
    def __init__(self):
        pyxel.init(160, 120)
        self.x = 0
        pyxel.run(self.update, self.draw)

    def update(self):
        self.x = (self.x + 1) % pyxel.width

    def draw(self):
        pyxel.cls(0)
        pyxel.rect(self.x, 0, 8, 8, 9)

App()

プログラムはPyxel公式ドキュメントに記載されているものを参考にしています

3. GitHub Actions&GitHub Pagesの設定

リポジトリのSettingsのPagesに移動します

SourceとしてGithub Actionsを選択します

image.png

次にStatic HTMLConfigureを選択します

デフォルトの設定のまま、Commit changesを選択します

以上でGithubの設定は完了です

4. GitHub Actionsが実行されることを確認する

ActionsのWorkflow一覧から、一番新しいものを選択します

deployCIのURLにアクセスするとデモアプリが動いていることが確認できます

image.png

開発の進め方

コーディング

リポジトリのCodeが表示された状態で.キーを押すか、URLのgithub.comgithun.devに変更することでGitHub Devを起動できます

main.pyに作りたいゲームのプログラムを書いていきます

動作確認(デバッグ)

ゲームの動作確認を行うときはエディタの左側のタブのソース管理から、コミットメッセージを書き、コミットとプッシを選択します

image.png

PushされるとCIが実行され、公開されているゲームが更新されます

ゲームが公開されているURLにアクセスしてゲームの動作を確認します

キャッシュが残っているとゲームが更新されないため、キャッシュをクリアする必要があります

エラーの確認

文法エラーはゲームの起動時に表示されます

実行時エラーは開発者ツールのConsoleから確認できます

image.png

print関数等によって出力した文字もConsoleに表示されます

まとめ

今回はGithubの機能を活用して、ブラウザだけでゲーム開発を試みてみました

いくつかの制約はありますが、簡単なものであれば十分開発できそうです

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1