Arduboyの始め方〜購入からゲーム作成までの最短ルート〜

#はじめに
少し前にAruduboyというものの存在を知りました。

Arduboy(アルデュボーイ)とは、Arduino(アルデュイーノ)というオープンハードウェアの一種で、これを使えばC++で簡単にゲームが作れます。C言語を知らない人でも、以下で紹介する crait さんの記事を読めばゲームが作れるようになります。
Arduboyでゲーム作成をしている人たちが世界中にいるので、彼らが作ったゲームを遊んだソースコードで勉強したり出来るのも魅力の一つです。

レトロゲームが好きでゲーム制作にも興味あるため、さっそく購入してみました。
この記事では、Arduboyを購入してから自分でゲームを作れるようにまでに参考にしたページやちょっとつまづいた点、オススメのゲームを紹介していきます。

#Arduboyを手に入れよう
まずはArduboyを手に入れましょう。
[公式サイト](https://arduboy.com/buy-now/)や[Amazon](https://www.amazon.co.jp/スイッチサイエンス-Arduboy/dp/B01N1IYKT9)からでも購入できます。

Arduinoで自作すればもっと安く手に入れられるようですが、ゲームボーイ風のデザインが素晴らしいので迷わずオリジナルのものを購入しました。

![IMG_3325.JPG](https://qiita-image-store.s3.amazonaws.com/0/313474/ad748386-a02e-cda6-905d-fae98f956c97.jpeg)


#Arduboyを動かそう
自分でプログラムを組むにせよ、ダウンロードしたゲームを遊ぶにせよ、ArduinoのIDE「Arduino」を使うのが標準的な方法です。

IDEの導入にはこちらの記事通りにやるとスムーズにいくと思います。
[Arduboy ことはじめ](https://qiita.com/fum1h1ro/items/9c7fb0d072e4e6e87633)

ちなみに、Arduboyは"Arduino Leonardo"として認識されますが、それはArduboyがたくさんあるArduinoのハードウェアの一つである"Arduino Leonardo"と同じプロセッサを使っているからです。ArduboyをLeonardoとして使う方法もあるようです。

他の人のゲームを遊びたいなら、GitHubなどでゲームをダウンロード、inoファイルを開いて「マイコンボードに書き込む」ボタンを押すだけ。細かい注意ですが、inoファイルは同じ名前のフォルダに保存されている必要があります。例えば、"aaa.ino"を書き込みたければ、"aaa"フォルダに入っている必要があります。GitHubからダウンロードすると，ファイル名が"aaa-master"になっているので、"master"を消すといいでしょう。

オススメのゲームはこの記事の最後で紹介しています。

#Arduboyでゲームを作ろう
他の人のゲームが遊べるようになっても、どうやって自分でゲームを作ればいいのか最初は分からないと思います。

Arduboyでのゲームの作り方はこのブログを見ればイメージがつかめると思います。
[Arduboy で豆腐を動かす](https://qiita.com/fum1h1ro/items/33ff19824babda115d82)

この記事の素晴らしいところは、「最初の一歩」だけを解説してくれているので、さらっと読める上に工夫してプログラムを発展させられる余裕を持たせているところです。（僕の場合は当たり判定の方法を調べて「ブロック崩しのブロックがないもの」に発展させました。）
C++に親しんだ方であれば、あとはArduboy.hを読んだり他の人のコードを読むだけで何でも作れるようになると思います。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">それっぽく動くぞ <a href="https://t.co/QZtMftxAmF">pic.twitter.com/QZtMftxAmF</a></p>&mdash; Loveブルバキ(ラブル) (@lovebourbaki) <a href="https://twitter.com/lovebourbaki/status/1047504144003608576?ref_src=twsrc%5Etfw">2018年10月3日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 

もう少し丁寧な説明が欲しい人には以下の記事がおススメです。
[Make Your Own Arduboy Game](https://community.arduboy.com/t/make-your-own-arduboy-game-part-1-setting-up-your-computer/2336)

IDEの導入やC言語の解説も含んでいますが、Arduboy独特の注意も詳しく書いています。この連載を読めば、すぐにPing Pongゲームが作れるようになります。

この記事の著者のcraitさんはArduboyでも非常に面白いゲームをたくさん作っている方で、後述するArduboy Magazineでもゲームの作り方の連載記事を書かれています。

さらに発展的なゲームを作りたければ、以下の記事を読みましょう。
[Make Your Own Sideways Scroller](https://community.arduboy.com/t/make-your-own-sideways-scroller-part-1-steve-the-jumping-dinosaur/4491)

craitさんの記事ほど丁寧に書かれているわけではありませんが、ゲームを作る上で頻繁に使うテクニックを知ることができます。

最後に[Arduboy Magazine](https://issuu.com/arduboymag)を紹介します。
この電子雑誌では、ゲームの作り方講座やオススメゲームなどArduboyに関する様々な記事が掲載されています。少し前まで毎月発行されていたようですが、今は作られていないようですね。

#私が引っかかったこと

- 初歩的でお恥ずかしいですが、USBを逆に挿しているのに「どうして反応しないんだろう」と悩んでしまいました。逆向きでも挿さるので注意です。

- 通常、電源をつけておけばどんな状態でも上書きできますが、一部のゲームではそうなっていないようです。例えば、"Arduventure"ではゲーム内で"UPLOAD"を選んだ状態でないと書き込むことができません。(壊れたかと思って泣きそうになりました。)詳しくは以下を見てください。
[Important Adventure(RPG)](https://community.arduboy.com/t/arduventure-rpg/505)

- 上とは別の理由で書き込めなくなることがあるようです。これはArduino全般に起こる症状のようで、解決できない場合もあるようです。（壊れたかと思って泣きそうになりました。）様々な対処法がありますが、僕はArduboyをセーフモードにすれば直りました。以下の記事も参考にしてください。
[Arduboyでスケッチが書き込めなくなったときは](https://blog.boochow.com/article/442337933.html)

#オススメのゲーム
最後にオススメのゲームを紹介します。Arduboyの面白さ・楽しさが実感できるようなゲームを紹介します。

- [ウメルーズ](http://blog.livedoor.jp/cobinee/archives/1908486.html)

まさに、シンプルだけど面白いを体現したゲームです。シンプルなゲームはたくさんあるのですが、このゲームほど絶妙な難易度なものはないと思います。こんなに単純なゲームでも面白くなるんだなと考えさせられます。

- [Circuit Dude](https://community.arduboy.com/t/circuit-dude-2-1-awesome-puzzle-game-with-50-levels/2490)

Arduboyのスペックを考えれば、パズルゲームがたくさんあるのは想像ができると思います。Circuit Dudeはその中でも評価が高いゲームです。作者はcraitさん。

- [Do You Remember Love?](http://blog.livedoor.jp/cobinee/archives/1906379.html)
 
Arduboyでここまでできるのかと思わせる演出が素晴らしいゲームです。カッコイイ!

- [Dark&Under](https://community.arduboy.com/t/dark-under-a-dungeon-crawler/4637)

いわゆるローグライクゲームです。Arduboyのゲームであるということを忘れて普通に楽しんでプレイしてしまいます。結構難しい...