宣伝です。
Androidゲームプログラミング A to Z
という本が、インプレスジャパンから発売されました。
関わった本としては5冊目になるんでしょうか(実際は「関わりがあった」という程度であればもうちょっと多いようですが)。
原著は Beginning Android Games という本です。表紙イメージからもわかるように、原著はApressから出ています。
ちょうど去年頃、プロフェッショナルAndroidゲームプログラミングという本を出しましたが、これは基本的に主にネイティブコードを使ってゲームを作っていくという体裁でした。
NDKを始めとして、ネイティブコードによる実装はやはりJavaによる実装と比較すると速度的には有利になる点があります。特に描画の激しいゲームなどだと差は如実に出ることが多いです。
反面、ネイティブコードが混ざり合ったりすることで、Javaで作るのと比較するとデバッグ作業などが困難になるデメリットもあるわけです。
ゲーム開発者の中には、開発が困難になってもいいからネイティブで作らせてくれ、という要望が多く、NDKの提供が開始されたという経緯があったと記憶しています。
ただ、やはり予想されていた通り、パフォーマンスは出るものの、直接ネイティブで実装しているため機種依存がかなりあるわけです。端末のCPUが異なるだけで想定通り動かないことも多々あります。
作ることまでが目的であった人にとっては、それでも問題はないかもしれません。ただ、これでビジネスをする、要するにゲームを売ったり、あるいはゲーム内で課金をしたり広告を打ったりする形で会社として(あるいは個人で)生計を立てて行くとなると、対応する機種が多ければ多いほど、遊んでもらえるユーザーさんが多いわけで、なるべく機種依存しないに越したことはない、という結論になります。
また別の材料として、ここ一年だけで見てもAndroidに限らず特にスマートフォンやタブレット等においてその端末のスペックの進化はとどまらず、矢継ぎ早に軽快に動作する端末が出てきています。
ハードウェアが進化してきている以上、1,2年前では少々パフォーマンスに難があったようなアプリも、気持よく動くようになってきています。以前まで、「パフォーマンスか互換性か」という天秤にかけてネイティブ実装をとっていた場合でも、現在出てきている端末でならあまり差が出てこなくなってきているケースが増えてきているわけです(ソフトウェアエンジニアとしてそれで良いのか?という話もありますが)。
以上の材料より、あまり有意に差が出ないのであれば、Javaのみで作った方が良いのではないか、と結論づける方が多くなってきました。
というわけで、本書は前提としてeclipseとAndroid SDKによりゲームを作る内容になっています。
紙によりモックをデザインするところから、OpenGL ES、2D描画、衝突検出、Zバッファ、ミップマップ、物理演算等と、実際に2Dゲーム、3Dゲームのサンプルを通して基本的なゲームの要素を解説していきます。
Androidのアプリ製作作法をゲームを通して勉強するというより、ゲーム作成の基本をAndroidを通して学ぶという形です。
なので、あまりAndroid特有の部分には触れません。
FragmentやActionBarも出て来ません。ただ、ゲーム制作の基本的な部分をAndroidで動く実際のコードを通して解説しています。
そういう意味ではAndroidに関わる最新情報を解説した類のものではありませんが、逆にいうと応用の効く内容になっています。
もしも、Androidでのゲーム制作に興味のある人であれば、実際に手にとって中を見ていただけたらと思います。
まず見てみて、気に入ったらお買い求めいただければと思います…!
