自作ゲームが動かせるハンドヘルドゲーム機いろいろ

ちょっと前に自作ゲームを動かせる環境・デバイスとしてどんなものがあるのかな?と思ってリストアップしたことがあった。

ちょっと前じゃなかったわ。2009年だから13年前だったわ。

ちょうどスマホが出てきたところで、PDAはもう消えた頃。携帯コンシューマ機としてのWonderWitchや、オープンなゲーム機としてGP32シリーズやP/ECEがあった。懐かしすぎるな。

2022年の今、同じようなリストを作ろうとした場合、世の中はだいぶ様変わりしている。Arduinoを代表とするワンボードマイコンをコアとし、それにディスプレイやボタンを追加したハンドヘルドゲーム機をDIYで作るというトレンドになった。

自分好みのゲーム機を自由に作れるのが利点である一方、様々なデバイスが乱立するために、それらで動作するゲームも個別の作りこみが必要な部分が増えているようにも思える。

それらに対して共通的なゲームライブラリを整備しようと思った場合、周辺部品も含めてある程度パッケージ化されていて、それなりに数が出ていて入手性が高いデバイスをターゲットとしたい。

そういう条件だとM5StickC PLUSは良いチョイスかと思った。ただ画面はだいぶ小さく、ボタンはお世辞にも押しやすいとは言えない。

今回のライブラリの理想のターゲットデバイスは、

  • それなりの大きさのディスプレイ
  • 押しやすいボタン
  • 単音でいいので音程が変えられるブザー
  • 入手性が高く、できれば安価
  • C言語での開発情報が豊富
  • ダブルバッファリングや画面描画・音再生用のタイマー・割り込みが使える

もの。そういうのないかなあと聞いてみたら、いくつか情報をいただいた。

いくつか調べてみた。

Adafruit PyBadge LC

Adafruit PyBadge LC

160x128のカラーTFTディスプレイにゲーム機として必要なボタン群が配置されている。Adafruit Arcada Libraryを使えば、Arduino IDEを使った開発もできそう。APIリファレンスとかがどこにあるのかよく分からん。サンプルとを地道に見るしかないのかなあ。ダブルバッファリングとかできるのかな。

ちなみにM5StickCのまた別の優れた点として、豊富な開発情報がある。というかLang-shipブログがある。

ダブルバッファリングのやり方もここで知った。このレベルの日本語情報があるデバイスってそうそう無いと思うんだよな。

Microsoft Makecode Arcade

Microsoftが行っているオープンソースのプログラミング学習プラットフォームMakeCodeの中に、専用のゲーム機でゲーム開発ができるMakeCode Arcadeがある。上記ページにあるように多彩なゲーム機が取り揃えられていて、PyBadgeもこのラインナップ中の1つだ。

ただ、MakeCode Arcade自体はScratchやJavaScriptでのゲーム開発を主体と考えており、C言語での開発情報が提供されているかどうかは不明だ。PyBadgeのように個別にC言語ライブラリが提供されているデバイスを探す必要がありそう。Meowbitとかかわいくていいんだけどね、C言語ライブラリの所在が不明。

Wio Terminal

2.4インチLCDと筐体上部に3つのボタンが付いている。5方向スイッチという名の十字キーがあるが、ゲーム向きではないそうだ。Arduino IDEでの開発ができる。

ライブラリの情報がよく分からんがWio Terminalドキュメントガイドを見る限り、M5StickC PLUSでも使ったLovyanGFXが使えるので同じ感じでできるのかしらん。

WiFiBoy Pro

WiFiBoy Pro

2.4インチカラーTFT LCDに標準的なゲーム用ボタン群。Arduino IDEでの開発が可能で、チュートリアルページにはいろんなゲームのサンプルもある。

Playdate

黄色いボディと横のクランクが特徴的なゲーム機。ディスプレイは白黒。C言語での開発ドキュメントも整備されている。

とても良さそうなのだが、最短の出荷がEarly2023と慢性的に品不足ぎみ。手軽に手に入るようになるといいな。

Arduboy FX

ちょっと前まではArduinoのハンドヘルドゲーム機といえばArduboyだったのだが、終売したのか入手性が微妙な気がする。オフィシャルページはSold Outのまま。

ここで挙げたものは有名なものだけだと思うが、それでもかなりのバリエーションがあることが分かった。DIYのものを含めると無数のハンドヘルドゲーム機があるし、特殊なUIを実装した既存ゲーム機とは一線を画したものもいろいろありそう。そういったものを調べるのも楽しそうだけどそれはまた今後。

教えてもらった中ではPyBadgeが良さそうかなあ。その前にまずM5StickC PLUSで一通り基本機能が動くようにしないといけないんだけど。