俺が紹介する3つ目のプロジェクトは、アンドロイドアプリのSpeedoutだ。
ルールは基本的なブロック崩しゲームと同じだが、Speedoutではボールを打つたびにレベルに応じて球が加速する。レベル3だったら3%、レベル10だったら10%というように球が加速する。だからレベル15くらいまで行くとかなり難易度が高くなる。ブロック崩しゲームを英語でBreakoutというので、それをspeedと組み合わせてSpeedoutと名付けた。
開発はAndroid Studioで主にKotlinを用いた。Android StudioでKotlinがサポートされるようになってから試してみたくなったので、普段使うJavaではなくKotlinでプログラムしてみた。Javaよりもコンパクトできれいなコードが書けるが、よくわからない新しい概念とかもあり、結局自分にとっては慣れているJavaの方が書きやすかった気もする。しかしとりあえず、このプロジェクトはKotlinでやってみた。
以前紹介したBreakoutのコードを一部再利用したが、Breakoutはコードが少ない代わりに衝突判定の精度が低かったので、Speedoutではより精度の高い衝突判定アルゴリズムを自分で作ってみた。数学を駆使してかなり精度の高いアルゴリズムができたが、コードがかなり長くなり、それでもたまに想定外の動作をするので、もっと簡潔なコードで完璧な衝突判定ができるのか気になる。
そして、このゲームはデザインにも凝った。最低限の要素で必要な情報をどう伝えるかを考え、不要な要素を極限まで削り、このデザインに至った。割ときれいなものになったと思う。
また、このアプリはアンドロイドのPlay Storeに公開して、広告収入が入るようにした。約半年前に公開したが、もはや遊ぶ人はおらず、収入は0である。最初の方に何人か友達に遊んでもらって、3セントほどの利益を挙げたが、どうやら一定以上の利益がないとそれはもらえないらしく、今のところ俺のもとには1セントも入ってきていない。ぜひ遊んでください。
以下に、ゲームの画像を掲載する。
ダウンロード(アンドロイド)はこちら