ラズパイでレトロゲーム再現、親子で開発したLEDマトリクス向けゲームエンジン「LEDarcade」

FabScene(ファブシーン)| テクノロジーの「現場」を記録するメディア

メリカの開発者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同期マルチプレイヤー機能の追加を予定している。

関連情報

LEDarcade GitHubリポジトリ

関連商品(広告)

Raspberry Pi 5 Starter Kit

※Amazonへのリンクにはアフィリエイトリンクが含まれています。リンク先から購入の際に発生する紹介料は、FabSceneの運営費になります。

この記事が気に入ったら
フォローしてね!

この記事の感想・意見をSNSで共有しよう

FabScene編集部

目次