ちょっと前に自作ゲームを動かせる環境・デバイスとしてどんなものがあるのかな?と思ってリストアップしたことがあった。
ちょっと前じゃなかったわ。2009年だから13年前だったわ。
ちょうどスマホが出てきたところで、PDAはもう消えた頃。携帯コンシューマ機としてのWonderWitchや、オープンなゲーム機としてGP32シリーズやP/ECEがあった。懐かしすぎるな。
2022年の今、同じようなリストを作ろうとした場合、世の中はだいぶ様変わりしている。Arduinoを代表とするワンボードマイコンをコアとし、それにディスプレイやボタンを追加したハンドヘルドゲーム機をDIYで作るというトレンドになった。
自分好みのゲーム機を自由に作れるのが利点である一方、様々なデバイスが乱立するために、それらで動作するゲームも個別の作りこみが必要な部分が増えているようにも思える。
それらに対して共通的なゲームライブラリを整備しようと思った場合、周辺部品も含めてある程度パッケージ化されていて、それなりに数が出ていて入手性が高いデバイスをターゲットとしたい。
そういう条件だとM5StickC PLUSは良いチョイスかと思った。ただ画面はだいぶ小さく、ボタンはお世辞にも押しやすいとは言えない。
今回のライブラリの理想のターゲットデバイスは、
- それなりの大きさのディスプレイ
- 押しやすいボタン
- 単音でいいので音程が変えられるブザー
- 入手性が高く、できれば安価
- C言語での開発情報が豊富
- ダブルバッファリングや画面描画・音再生用のタイマー・割り込みが使える
もの。そういうのないかなあと聞いてみたら、いくつか情報をいただいた。
"M5StickC PLUS以外にもう一つくらいターゲットデバイスがあると良さそうだけど、簡単に入手できて安価なデバイス、できればもうちょっと大きな画面と押しやすいボタン付き、という条件に当てはまるもの、あるかしらん。"とのことです。私も知りたいです。私はPyBadgeが少し気になります。 https://t.co/hCclXcGZ9M
— gamix korin (@gamix255) 2022年10月5日
自前ゲーム用途で押し易いボタンと画面付いてて…までは良いのだが、入手性が良く安価…という縛りが難しい感。
— らびやん (@lovyan03) 2022年10月5日
なるほどpybadge(SAMD51)。
他には…WiFiBoy(ESP32)かな…。
ESPboy(ESP8266)やESPlay micro(ESP32)は海外通販になるか…。 pic.twitter.com/gC91AkvHwc
おお、ワンキーゲーム、かねてから組み込み機で動かせると面白そうだと思っていました。
— ina_ani@2歳児のパパ (@ina_ani) 2022年10月6日
ほかにも良さそうなゲーム機まとめてみました!https://t.co/uHX2XRXez2
いくつか調べてみた。
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
2.4インチカラーTFT LCDに標準的なゲーム用ボタン群。Arduino IDEでの開発が可能で、チュートリアルページにはいろんなゲームのサンプルもある。
Playdate
黄色いボディと横のクランクが特徴的なゲーム機。ディスプレイは白黒。C言語での開発ドキュメントも整備されている。
とても良さそうなのだが、最短の出荷がEarly2023と慢性的に品不足ぎみ。手軽に手に入るようになるといいな。
Arduboy FX
ちょっと前まではArduinoのハンドヘルドゲーム機といえばArduboyだったのだが、終売したのか入手性が微妙な気がする。オフィシャルページはSold Outのまま。
ここで挙げたものは有名なものだけだと思うが、それでもかなりのバリエーションがあることが分かった。DIYのものを含めると無数のハンドヘルドゲーム機があるし、特殊なUIを実装した既存ゲーム機とは一線を画したものもいろいろありそう。そういったものを調べるのも楽しそうだけどそれはまた今後。
教えてもらった中ではPyBadgeが良さそうかなあ。その前にまずM5StickC PLUSで一通り基本機能が動くようにしないといけないんだけど。