見出し画像

pythonでレトロゲームが書けるpyxelがすごい

今週末(めちゃくちゃ忙しいのに)フランス大使館からサイエンティフィックゲームジャムの審査員を頼まれてしまった…まあやるからには楽しんでやるしかないナ……と思って予習をしています(めちゃくちゃ忙しいのに)。

この記事めちゃ伸びてるんですが、
次の日曜日に日本科学未来館で予約不要でプレイできて懇親会まであるのが伝わってない感じあるので加筆した!

公式サイト: https://jp-minerals.org/scientificgamejam/jp/participate.html
X(Twitter): https://x.com/sgjtokyo2024

高校生部門は「pyxel」という環境を使うそうな。

本題はこちらです

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

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

おー。日本語READMEがある。開発者さんも日本語なのかな?

と思って触ってみたけど、これ結構すごいのでは。
世界で最も使いこなしているかもしれないfrenchbreadさん(日本人)のnoteを見つけたので紹介します。


2024年10月10日 Steamにて発売予定のインディーゲーム「Dungeon Antiqua」のPVです。
Steamで売ってます。SteamDeckでも動くそうな!

HTMLでも動くのでブラウザでも動く。


書籍もあった
「開発初心者のためのHowTo pyxelでサクッとレトロゲーム開発!」
Hisa (著), タイニーコア株式会社 (著) 形式: Kindle版

2019/9/22に池袋で開催された技術書典7で初展示したpythonでゲームを開発するための技術書です。
IT専門学校で講師をしている作者が学生の理解が難しかった箇所や分かりづらかった箇所をStep by Stepで説明しております。
ゲーム開発にチャレンジしたい方にぜひ読んでいただきたい一冊になっております。


目次
第1章 はじめに
第2章 開発環境を作る
第3章 開発環境に慣れてみよう
第4章 ゲーム画面に自分で描いたキャラを登場させる
第5章 敵キャラをやっつける(あたり判定導入)
第6章 アニメーションをやってみよう
第7章 背景を作成する
第8章さいごに(実行ファイル作成手順など)

サンプルを実行する

Pyxel をインストールした後、次のコマンドでカレントディレクトリに Pyxel のサンプルコードをコピーします。

pyxel copy_examples
  1. 01_hello_pyxel.pyシンプルなアプリケーション デモコード

  2. 02_jump_game.pyPyxel リソースファイルを使ったジャンプゲームデモコード

  3. 03_draw_api.py描画 API のデモ デモコード

  4. 04_sound_api.pyサウンド API のデモ デモコード

  5. 05_color_palette.py カラーパレット一覧 デモコード

  6. 06_click_game.pyマウスクリックゲーム デモコード

  7. 07_snake.pyBGM 付きスネークゲーム デモコード

  8. 08_triangle_api.py 三角形描画 API のデモ デモコード

  9. 09_shooter.py画面遷移のあるシューティングゲームデモコード

  10. 10_platformer.pyマップのある横スクロールアクションゲームデモコード

  11. 11_offscreen.pyImage クラスによるオフスクリーン描画 デモコード

  12. 12_perlin_noise.py パーリンノイズアニメーション デモコード

  13. 13_bitmap_font.pyビットマップフォント描画 デモコード

  14. 14_synthesizer.pyオーディオ拡張機能によるシンセサイザー デモコード

  15. 15_tiled_map_file.pyタイルマップファイル (.tmx) の読み込みと描画 デモコード

  16. 16_transform.py画像の回転と拡大縮小 デモコード

  17. 99_flip_animation.pyflip 関数によるアニメーション (非 Web 環境のみ) デモコード

  18. 30sec_of_daylight.pyxapp第 1 回 Pyxel Jam 優勝ゲーム (Adam制作) デモコード

  19. megaball.pyxapp アーケードボール物理ゲーム (Adam制作) デモコード

  20. 8bit-bgm-gen.pyxapp BGM自動作成ツール (frenchbread制作)デモコード


サンプルは以下のコマンドで実行できます。

cd pyxel_examples
pyxel run 01_hello_pyxel.py
pyxel play 30sec_of_daylight.pyxapp


その他のコマンド

pyxel 
Pyxel 2.2.7, a retro game engine for Python
usage:
    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


デモゲームが同梱されているので遊んでみる

pyxel play .\30sec_of_daylight.pyxapp

title : 30 Seconds of Daylight
author : Adam
desc : First Pyxel Jam-winning roguelike game
site : https://github.com/kitao/30SecondsOfDaylight
license : MIT
version : 1.0

カーソルキーかWASDで動いて、アタックしたり拾ったりしながら森を彷徨って鍵を探す。日が暮れるのが怖い。


megaball、これはマーブルマッドネスかも?
ちゃんと坂道登る。

frenchbreadさん作の「8bit BGM generator」

pyxel play .\8bit-bgm-gen.pyxapp

title   : 8bit BGM generator
author  : frenchbread
desc    : A Pyxel music auto-generation tool
site    : https://github.com/shiromofufactory/8bit-bgm-generator
license : MIT
version : 1.21

えっ、めためたおもしろい!
ファミコンサウンドがこんなに簡単に作れちゃう。
オトッキーを彷彿とさせたわ
日本語モードも有る

ソースとマニュアルはこちら

Webアプリ版はこちら https://retro-bgm-generator.web.app/

こんなんなんぼでも聞き続けられるわ!!好き!!!
戦闘音スタイルにして自分を鼓舞する(8bitゲーマー)

他にもいろいろおもしろくて、コードの解説とかしたくなっちゃうから今夜はこの辺にしておきます。
LLM時代のゲームとかも作れそうやな…ChatGPTはじめLLMはPython得意だし、ファイルが複数に別れてないしな…ニヤニヤ。

いい時代になったもんだ!

科学ゲームジャムに、おいでよ!

pyxelで興味を持ってくれた方へ、今週末、日本科学未来館で開催です。
一般の人も遊べますよ!

Kitaoさんも降臨!

日本科学未来館でのイベント概要

  • 日時: 12月1日(日)

    • 13:30: 受付開始

    • 14:00: イベント開始

    • 18:00: イベント終了

  • 場所: 東京・日本科学未来館(Miraikan) 7階 イノベーションホール

  • サイエンティフィック・ゲームジャムの成果を体験できるエキサイティングな日です!一般の皆様も完成したゲームのプレゼンテーションをご覧いただき、楽しかったゲームについて投票していただけます。イベントの締めくくりとして、カクテルパーティにもご参加いただけます(無料)。

プログラム

  1. サイエンティフィック・ゲームジャムと審査員のご紹介 (2:00 PM - 2:25 PM)

    • サイエンティフィック・ゲームジャムについて紹介します。

    • 科学者、ゲーム開発者、教育者など、様々な専門性をもつ審査員の皆様をご紹介します。

  2. ゲームプレゼンテーションとプレイテスト (2:25 PM - 3:30 PM)

    • 各チームとそのゲームの科学テーマについて紹介します。

    • 各ゲームを実際にプレイし、科学研究がどのようにインタラクティブな体験に変えられたかを体感してください。

  3. 審査 (3:30 PM - 4:15 PM)

    • 一般の方も交えた質疑応答を通して、創造性、科学的価値、ゲーム性、デザインの観点から各ゲームを評価します。
      すべての参加者はお気に入りのゲームに投票し、特別な一般賞の決定に貢献できます!

  4. 表彰式 (4:15 PM - 4:45 PM)

    • チームの成果を祝し、各部門の受賞者を発表します:

      • ゴールデンピクセル賞: 総合最優秀ゲーム

      • シルバーピクセル賞: 準優勝

      • ピクセルサウンドユニバース賞: 最優秀サウンドデザイン

      • ピクセルゲームプレイ賞: 最優秀ゲームプレイ

      • ピクセルグラフィックユニバース賞: 最優秀ビジュアルデザイン

      • ピクセルサイエンスアットステーク賞: 科学の表現が最も優れているゲーム

      • 特別一般賞: 一般参加者が選ぶお気に入りのゲーム

  5. カクテルパーティ (5:00 PM - 6:30 PM)

    • イベントの締めくくりとして、カクテルパーティを開催します。リフレッシュメントを楽しみ、チームと交流し、他の参加者とネットワークを広げましょう。

入場料はありません(未来館の博物館を訪れる権利は含まれていません)。予約は不要です。ホールの収容人数に制限があります。先着順での入場となります。

https://jp-minerals.org/scientificgamejam/jp/event.html

「つくる人をつくる」AICUとしても応援したいと思います!

AICUマガジン Vol.6はエンタメ技術特集、Kindleで無料です、読んでね!

#pyxel


いいなと思ったら応援しよう!