平日、めちゃ忙しくなる
間の悪いことに仕事がとんでもなく忙しくなってしまった。まま終電にのって帰るレベル。
家に帰っても、副業で受けてるシステムの開発なんかもあって、なかなか時間が取れないのでやばい。
まぁ愚痴ばっかり言っていても仕方ないので、深夜と朝を使って、まずは環境を構築するところから始めた。埃をかぶっていたmac miniを引っ張り出し、OSとxcodeのアップデートからだ。なんせメモリが4gbしかないポンコツなので時間がかかるかかる。
cocos2d-xのインストールも含めて、手順的には全く詰まらなかったがなんのかんのと終わったのは15日の夜だ。なんせやってる間にiOS10のリリースでまたアップデートが走るという。
一回のアップデートに1時間ぐらいかかるこのポンコツっぷりは、これからの開発に不安を残すと思っていたら、案の定だった。
土日に一気にやる
勝負のシルバーウィーク。週末に仕事しなくていいように先週は詰め込んだので、ここが勝負どころ。
一気に開発できるよう通勤時間はKindleでcocos2d-xの入門書とC++の本を読んで、頭を先に温めておいたのがそこそこ功を奏した。言語リファレンスをほとんど見なくてもコードを書ける程度にはC++を思い出している。
脳内でコードの構想はだいたいできていたので、ゲームシステム的にはあんまり困るところはないはず・・だったのだが意外とそうでもない。
非ウェブなコードを書くのが久し振りすぎて、なんか頭の動きがしっくりこない。あとビルドに超絶時間がかかって辛い。
昔はビルド走らせたらコーヒー淹れに行ってたりしたが、軽くそんなレベル。大学からこっちウェブにどっぷりだったし、高校の時はDelphiの爆速コンパイル(数万行のプログラムでも数秒で終わるレベル)に慣らされていたからなぁ・・。
Cocos2d-x便利過ぎない?
とはいえまぁゲーム本体は何とかなりそうな感じ。ゲームエンジンのCocos2d-xが大層よくできていることにほとんどの功績がある。
メインループになるのが、Sceneオブジェクトのupdateメソッドなのだが(TemplateMethodパターンで実装されている感じ)、Spriteにアニメーションを設定するだけでメインループで制御しなくてもパラレルに動くわ、実時間でデュレーションを設定すればうまいこと変化量の調整をやってくれるわとめっちゃ便利。
座標系がグローバルとローカルで揃っていないのはちょっと気持ち悪いが・・。
参考にしているのはこの本。
カジュアルゲームを作るのに必要な情報は大体載っている。足りないのはネットワーク周りとか、課金だろうか。
とはいえ、ネットワーク周りはゲームエンジンにHTTPクライアントクラスが含まれているっぽいので何とでもなりそう。再接続処理とかどの程度作りこまれているかまだ分からないが。
OSのコア機能へのアクセスは面倒らしい
課金や広告といった部分は、各OSのコアにアクセスする関係上、ブリッジを書かなくてはいけないらしい。
ざっと調べた感じ、iOSはObjective-CはC++と互換性があるので、Objective-C++で書けばいいらしい。JavaはJNIとか言う機構を使って、Javaで書いたコードをC++からコールするブリッジコードをガッツリ書く必要がある模様。
面倒だからこの辺を使わないといけない機能は外してリリースするかも。ただでさえ素材作るのにひーひー言っているというのに。
リリースできるんだろうか
幸いなことに、最近のAppStoreの審査は2日ぐらいで終わるらしい。通るなら何とかなるだろう。
今こんな感じ。
コメント