「わたしの動物園」反省会(開発編)

今回は、先週に配信をした新作「わたしの動物園」の個人的な反省会を行います。 今回ブログに書くのは、開発時の反省点です。 一度目の失敗は良いとして、同じようなことを繰り返さないようにしてなくてはいけません。

反省点

そのアクション(演出)に意味はあるのか?

他のゲームではこうしているから、このジャンルのゲームにはこんなものだから。 などと考えて、自分でも説明のできないことを実装しないこと。 全て説明ができるようにする。 自分でも説明のできないものがあれば、本当にこのアクションでいいのかを考えること。

Crash Log

実はアプリが発売されるまで悩まされたのが、デバイスの「Clash Log」でした。 テストプレーをしている時、[EXC_RESOURCE]という原因でアプリが高頻度で落ちていました。

2015-2-15-fdsa.png

バックグラウンドにアプリが移動して、半日くらい時間をおいて立ち上げてみるとアプリが最初から起動されるのです。 当初、メモリーリークでアプリが落ちているのではないかと色々検証したり、またメモリーの使い過ぎではないのかと考え画像のサイズを小さくしたり、cocos2dxのバージョンを上げてみたりしたのですが解決しませんでした。 ですので、Appleの審査でリジェクトが出てしまうのではないかと恐れていました。

結果、Appleの審査は通ったので、この問題は重要な問題ではなかったのでしょう。

Memoryが気になるなら、Sceneを複数に分けろ

Memoryの使用量が気になるのなら、Sceneを複数に分けて移動する手段が良い解決策になります。 同じSceneばかり利用していると、色々な画像を使う毎にキャッシュが積み重なってしまいます。 これをリセットする1番てっとり早い方法が、Sceneを移動させることです。

今後は、このことを頭においてアプリを設計しましょう。 もし1つのシーンでアプリを作るなら、適度にメモリーを解放させましょう。

大きな画像は余り利用するな

大きな画像を利用するデメリットは2つ。

  • モリーの使用量、CPUの使用量が桁違いに上がる。
  • 画面に表示する際に時間がかかる。

どうしても利用しなくてはいけない場合は仕方ないのですが、極力利用しない方法を探しましょう。 もし利用するなら、別のスレッドを使ったり非同期で画像を読み込んで、表示に違和感がないようにしましょう。(この部分私自身できていないので、今後の課題です。)

Eclipseでこまめにビルドする

今まではiOS側が完成してから、Android側に取り掛かっていました。 今後は、こまめにビルドをしてエラーがないか確かめたほうが良い。 その場合の方が、エラーが発生した箇所を見つけるのが簡単です。

ライブラリを利用する前には、十分にテストを行う

実際にプロジェクトに組み込む前に、サンプルでもいいので、一通りやってみる。 バージョンによっても挙動が違う、動かない場合があるので、それを確かめよう。

フォントに気をつける

フォントは自前で用意する。 理由としては、Android側の対応が難しいから。端末毎に利用できるフォントの種類が違うので、大きさや位置関係がゴチャゴチャになってしまう。 アプリの容量が重くなっても、自前でフォントを用意すればこの問題は解決できます。

画面サイズ

今回は640960 6401136に合わせてゲームを作成していました。 その他のサイズに関しては、どちらかの画像をサイズを引き伸ばして利用しているのですが、もっと良いやり方があると思っています。 この辺りをもっと簡単に面倒くさくないような方法を探したいです。

最後に

何かもっとあったような気がしますが、思いついたモノを今回書いてみました。 それ以外だと、毎回アプリが出た時に思っている「開発期間を短くする」という最大の課題があります。 作っているときはわからないのですが、完成した後から見ると、いつももっと短くできたような感じがしています。

準備が8割というので、設計段階でしっかり固めて作りたいと考えています。