
メリカの開発者William McEvoy氏(通称Datagod)が、Raspberry Pi用LEDマトリクス向けのレトロゲームエンジン「LEDarcade」をGitHubで公開した。同エンジンはインターネットのチュートリアルや既存のゲームエンジン、外部のデザインテンプレートに頼らず完全にゼロから開発されたPythonベースのグラフィックエンジンで、ガンマ補正やリアルタイム物理演算、スプライトアニメーションをすべて手作業でコーディングしている。
McEvoy氏は「インターネットフォーラムやテンプレート、トレーニングホイールを使わずに自分の頭脳だけに頼って何が作れるか」という問いから開発をスタートした。システムは64×32のRGBマトリクスを使用し、Raspberry Pi 3以上とAdafruit RGB HATで動作する。デュアルバッファー構造により、表示用(TheMatrix)と作業用(ScreenArray)のバッファーを分離し、ピクセル単位での正確な描画制御を実現している。
完全オリジナルの9種類のゲームを実装
LEDarcadeには以下のレトロ風ゲームが含まれている:
- Dot Invaders: スペースインベーダーをLEDマトリクス向けに再現
- Defender: 横スクロールシューティングゲーム
- Outbreak: ウイルスをテーマにしたペトリ皿シミュレーション
- SpaceDot: 宇宙戦闘ゲーム
- Tron: 光の軌跡を描くアクションゲーム
- SuperWorms: ワーム系パズルゲーム
各ゲームはsudo python3 [ゲーム名].py
コマンドで個別に実行でき、sudo python3 arcade.py
でゲームを順次切り替えるアーケードモードも利用できる。
8×8マトリクスから始まったプロジェクトは、16×16を経て現在の64×32サイズまで発展した。各変換プロセスでバグ修正とゲームプレイの向上が図られ、特にコンピューター同士の対戦機能が強化されている。
TwitchやPatreonとの連携機能も搭載
LEDarcadeには配信者向けの機能も組み込まれている。TwitchのEventSub(ポート5051)とPatreonステータス監視(ポート5050)に対応し、視聴者との双方向コミュニケーションが可能だ。FlaskとAsyncioベースのWebサービスにより、外部からのWebhook要求を受信できる。
設定ファイル(ClockConfig.ini)による表示調整とスコア保持機能も備えており、PageKiteを使用してRaspberry PiがWebhook要求を受信する仕組みも構築されている。
エンジンには数十種類の手動調整されたガンマ制御カラーパレット、影/ハイライト/グロー効果、ズーム、反転、スクロール、軌跡エフェクトなどの視覚効果が含まれている。スプライトフレームワークはDot、Ship、Sprite、Wall、ColorAnimatedSpriteクラスで構成され、複雑なアニメーション表現を可能にしている。
開発者のMcEvoy氏は「アーケード歴史家でプログラマー、生涯にわたるクリエイター」と自己紹介しており、息子のJacob McEvoy氏もレベルデザインと品質保証で協力している。今後はスプライトアニメーションエディター、デバイス上でのスプライトデバッガー、Wi-Fi同期マルチプレイヤー機能の追加を予定している。
関連情報
関連商品(広告)
※Amazonへのリンクにはアフィリエイトリンクが含まれています。リンク先から購入の際に発生する紹介料は、FabSceneの運営費になります。