Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトの プライバシーポリシーをご覧ください。

たいぶ有名になったPyxelは、日本人である北尾宗(kaito)さんが開発しているだけに、信頼も置けますし、何よりも日本語での情報が多いのが安心できます。

PICO-8やTIC-80を参考にされているため、以前に触ったPICO-8と同じような印象がします。

そういえば、こういうのはファンタジーコンソールって言われますよね。

8ビット、ドット絵が好きならツボにハマります。

Pyxel (ピクセル) は、 Python 向けのレトロゲームエンジンです。 使える色は 16 色のみ、同時に再生できる音は 4 音までなど、レトロゲーム機を意識したシンプルな仕様で、Python を使ってドット絵スタイルのゲームづくりが気軽に楽しめます。

https://github.com/kitao/pyxel/blob/main/docs/README.ja.md

詳細は公式のgithubでも、他のユーザーさんがブログやYoutubeで紹介されています。ここではRaspberry Pi OSにインストールする部分だけご紹介しておきます。

PyxelはWindowsやmacOS、Ubuntuを初めとしたLinux各ディストリビューションで動作します。作成されたファイルはどのプラットフォームでも実行できます。WebのHTMLでも動きます。ホント、スゴい。

Pico-8はしばらく触りましたが、Pyxelの方が更に分かりやすいですね。

Pi 5にPyxelのインストール

Raspberry Piではpipでインストールできます。今回はPi 5系のRaspberry Pi OSにインストールしました。OSはbookwormです。

公式ページにLinux系だとsudo pip3 install -U pyxelでインストールとありますが、そのままだといつものごとくPEP 668のエラーが出ます。

error: externally-managed-environment
(中略)
hint: See PEP 668 for the detailed specification.

きちんと仮想環境にインストールすることになったからです。

詳しくは次の記事も参考にしてください。

pipでインストール

仮想環境にしてからインストールします。

python3 -m venv pyxel
source pyxel/bin/activate
python3 -m pip install pyxel

ここではpyxelにしましたが、任意で変更してください。

python3 -m venv 任意の名前
source 任意の名前/bin/activate
python3 -m pip install パッケージ名

activateすると、ターミナルのプロンプト前に仮想環境で指定した名前が追加されます。

(pyxel) raspida@cm5pi:~ $

これを元に戻すのはdeactivateと打ちます。

deactivate

記事執筆時点でのPixelのバージョンは2.3.18でした。

(前略)
Installing collected packages: pyxel
Successfully installed pyxel-2.3.18

サンプルプログラムを動かす

どのようなものなのか、サンプルプログラムを動かしてみると良いでしょう。ソースファイルを読めるので、自身が作る際の参考になります。

インストール後、先程指定したpyxelディレクトリが出来ています。

ここにサンプルファイルをコピーします。

cd pyxel
pyxel copy_examples

ディレクトリはこんな感じです。

./pyxel
├── bin
├── include
├── lib
├── lib64 -> lib
└── pyxel_examples

20個のサンプルがありました。

.
├── 01_hello_pyxel.py
├── 02_jump_game.py
├── 03_draw_api.py
├── 04_sound_api.py
├── 05_color_palette.py
├── 06_click_game.py
├── 07_snake.py
├── 08_triangle_api.py
├── 09_shooter.py
├── 10_platformer.py
├── 11_offscreen.py
├── 12_perlin_noise.py
├── 13_bitmap_font.py
├── 14_synthesizer.py
├── 15_tiled_map_file.py
├── 16_transform.py
├── 30sec_of_daylight.pyxapp
├── 8bit-bgm-gen.pyxapp
├── 99_flip_animation.py
├── assets
└── megaball.pyxapp

拡張子.pyは、Pythonプログラムですからpython 〜.pyで実行出来ますが、pyxel runコマンドでも可能です。

pyxelコマンド例:

    pyxel run PYTHON_SCRIPT_FILE(.py)
    pyxel watch WATCH_DIR PYTHON_SCRIPT_FILE(.py)
    pyxel play PYXEL_APP_FILE(.pyxapp)
    pyxel edit [PYXEL_RESOURCE_FILE(.pyxres)]
    pyxel package APP_DIR STARTUP_SCRIPT_FILE(.py)
    pyxel app2exe PYXEL_APP_FILE(.pyxapp)
    pyxel app2html PYXEL_APP_FILE(.pyxapp)
    pyxel copy_examples

02_jump_game.py

■Pi 5は8GBモデルがオススメ

リソースファイルの作成

何気にリソースファイルでドット絵を描いたり、音楽を作成する方が楽しいと思えてしまいます。

これだけで時間が経つのを忘れますね。

pyxel edit Pyxelリソースファイル

デフォルトで何も指定しないとmy_resource.pyxresというファイル名になります。

詳しくはgithub に書いてあります。

GitHub

File not found · kitao/pyxel A retro game engine for Python. Contribute to kitao/pyxel development by creating an account on GitHub.

基本はPythonでプログラミングできますし、ゲーム特有のライブラリが縁の下の力持ちになっているので、中高生でも楽しめそうですね。

こちらはPico-8を入れた記事

(番外編)ソースからビルドする場合

既にpipでインストールしたら必要ありません。

ソースからビルドする場合、Raspberry Pi OSのデフォルト(標準)では足りなかったのが、rustパッケージ、libclangライブラリ、rustのruff、maturinも足りなかった。

足りないのか、make途中でパスが通っていなかったのか定かではないけど、makeが完走しない。 でも、先にインストールを済ませたらイケた。

多分、makefileのパスが違うからだと思う。(非エンジニアなので分かりません)

但し、clangライブラリとrust以外は、pipだったので仮想環境でなければインストールできなかった。

だから、先に仮想環境のまま足りないものをインストールし、git cloneしたmakeも仮想環境でそのまま続けたら、イケた。

なお、自動で仮想環境にしてくれるpipxでruffとmaturinのインストールも試したけど、やはり上手く行かなかった。でも、先にclangを入れれば行くかも?(未検証)

足りないのをインストール

libclangが足りない。

sudo apt install clang

rustの公式サイトより(https://www.rust-lang.org/ja/learn/get-started

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

先にvenv環境で足りないパッケージをインストールした。

python3 -m venv env
source env/bin/activate

pip3 install ruff maturin

makeもこのまま続けた。

git clone https://github.com/kitao/pyxel.git
cd pyxel
make clean all

📦 Built wheel for abi3 Python ≥ 3.8 to .././dist/pyxel-2.3.18-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

イケた。

make後にインストール

pyproject.tomlのある場所で実行する。 正しいのかどうか分からないけど、/pyxel/pythonフォルダの中だったので、そこを指定した。

cd pyxel
pip install python/.

ソースからビルドは、足りないものを追加したらインストールすることができました。

でも、Raspberry Pi OSならpipのパッケージで良いと思う。

書籍でお勉強

pyxelの作者さんも本を出されています。登録者数 13.4万人超えのVTuberさんの本もありますね。