プログラミングプロジェクト紹介③ Speedout

俺が紹介する3つ目のプロジェクトは、アンドロイドアプリのSpeedoutだ。

 

f:id:pepsisoda:20190915231347p:plain

Speedout

 

ルールは基本的なブロック崩しゲームと同じだが、Speedoutではボールを打つたびにレベルに応じて球が加速する。レベル3だったら3%、レベル10だったら10%というように球が加速する。だからレベル15くらいまで行くとかなり難易度が高くなる。ブロック崩しゲームを英語でBreakoutというので、それをspeedと組み合わせてSpeedoutと名付けた。

 

開発はAndroid Studioで主にKotlinを用いた。Android StudioでKotlinがサポートされるようになってから試してみたくなったので、普段使うJavaではなくKotlinでプログラムしてみた。Javaよりもコンパクトできれいなコードが書けるが、よくわからない新しい概念とかもあり、結局自分にとっては慣れているJavaの方が書きやすかった気もする。しかしとりあえず、このプロジェクトはKotlinでやってみた。

 

以前紹介したBreakoutのコードを一部再利用したが、Breakoutはコードが少ない代わりに衝突判定の精度が低かったので、Speedoutではより精度の高い衝突判定アルゴリズムを自分で作ってみた。数学を駆使してかなり精度の高いアルゴリズムができたが、コードがかなり長くなり、それでもたまに想定外の動作をするので、もっと簡潔なコードで完璧な衝突判定ができるのか気になる。

 

randomthoughts.hatenablog.com

 

 そして、このゲームはデザインにも凝った。最低限の要素で必要な情報をどう伝えるかを考え、不要な要素を極限まで削り、このデザインに至った。割ときれいなものになったと思う。

 

また、このアプリはアンドロイドのPlay Storeに公開して、広告収入が入るようにした。約半年前に公開したが、もはや遊ぶ人はおらず、収入は0である。最初の方に何人か友達に遊んでもらって、3セントほどの利益を挙げたが、どうやら一定以上の利益がないとそれはもらえないらしく、今のところ俺のもとには1セントも入ってきていない。ぜひ遊んでください。

 

以下に、ゲームの画像を掲載する。

f:id:pepsisoda:20190915231649j:plain

f:id:pepsisoda:20190915231709j:plain

f:id:pepsisoda:20190915231724j:plain



 ダウンロード(アンドロイド)はこちら

play.google.com