2012年12月4日火曜日

cocos2d-xとはなんじゃらほい?

本エントリーはAndroid Advent Calendar4日目「裏」を担当します@f_megmeg5です。
本日12/4の「表」エントリーは@bina1204さんによる「DevicePolicyManager について」ですので、合わせてそちらも御覧ください。

さて、私はiPhoneアプリの開発経験もあり、iPhone関連の勉強会にも参加します。
iPhoneなら書籍が幾つか発売されているのに、Androidもその恩恵を受けられるのにあまり知名度がない技術としてcocos2dが挙げられるのではないでしょうか。
私の友人達はcocos2d for iPhoneをバリバリ使っているし、2Dゲームを作りやすくなるのだから知っていた方が良いと思いますので、今回はcocos2dの中でもcocos2d-xについて紹介をしていきたいと思います。
ほら、ゲームの中に広告組み込むとお金も稼ぎやすいとかなんとか言いますし。
たぶん。
また、cocos2d for iPhoneを使ったゲームを開発されている@ajinotatakiさんのアプリでElectroMasterとHungryMasterがあります。
古き良きレトロゲームの雰囲気があり、ゲームとして面白い部分が凝縮されているのでとてもハマっていました。
HungryMasterに関しては世界ランキングで一時期1位取っていましたし。
これらのゲームはSpriteの数もかなり多く使用されているゲームの一つです。
そのようなSpriteの管理等も出来るため、cocos2dを使用して2Dゲームを開発していくのが効率が良いでしょう。
開発するには楽に越したことはありません。
少なくとも私は楽したいです。

そんなこんなで、Androidでも使用できるcocos2d-xが大雑把にでも知って頂ければ、Android開発者でもcocos2d使いが増えてきて楽しくなるのではないかと妄想しています。
ちなみにJavaScriptを使用してcocos2dを動かす「cocos2d javascript bindings」なるものもあるらしいです。
派生系も多いですので、自分の開発しやすい言語で開発が行えるような環境にあるのもcocos2dの魅力の一つです。

技術的なことは本当にお触りしかやっていないのですが、これから少しずつ見ていく予定ですのであしからず。
Macでの環境構築に関してはこの記事やこの記事を参照してください。


cocos2d-xとは


cocos2d for iPhoneを継承してC/C++で記述していくゲームエンジンです。
オープンソースですので、中は見放題ですしゃっほい!
ちなみにこちらが公式サイトです。
cocos2d-xの開発は中国で法人化して行っているとのことですので、力の入れようがわかります。
ソースをC/C++で記載していきますので、例えばiPhoneでも同じソースで動けます。
一つのソースで様々な環境で動く、これがcocos2d-xのクロスプラットフォームとしての最大の強みです。
やはり、iPhoneとAndroidの両方でリリースを行いたいと考えられている方も多いですので、その場合cocos2d-xですとiPhoneとAndroidのそれぞれで開発をしていくよりもcocos2d-xで書いた方が時間短縮ができると思いますので、両方でリリースを考えられている方には良いゲームエンジンです。
実際にURARA-WORKS Co., Ltd.さんの腐ったミカンや鉄球ヘブン等はcocos2d-xで開発されているようです。
また、他の開発者の方もcocos2d-xを使用してマルチプラットフォームでリリースできるように開発をされていますので、少しずつですが普及し始めているゲームエンジンと言えるのではないでしょうか。


どうしてcocos2d-xなの?


Androidでcocos2dを行うためのゲームエンジンは実は他にもあります
それが「cocos2d-android」と「cocos2d-android-1」というものがあります。
しかもこれ、Javaで書けるのです。
それならこっちの方が良いやーんとなりますが、そうは問屋が卸しません。
これらの更新は1年以上止まっているのです。
仮にcocos2d for  iPhoneの更新が止まっていて、それに追いついた状態で止まっているのならまだマシも、cocos2d for iPhoneは日々更新されています。
cocos2d for iPhoneからどんどん引き離されているものを使用するのも嫌ですし、バグ対応もされていないので使うのも怖いのです。
ですが、cocos2d-xでしたら、こちらも現在も更新がされ続けられていますので、Androidでcocos2dを使う場合は、cocos2d-xを使う方が良いのではないかという流れになりつつあります。
このような見解はcocos2dのエバンジェリストである@Seasonsさんも仰っています。


cocos2d-xを実際に使ってみて


私はcocos2d for iPhoneをあまりやったことがないまま、cocos2d-xに取り組みました。
そもそもC/C++もやったことありませんですし、cocos2dのご作法もなんとなーくしかわからないままやっていましたら、死にました。
ええ、どうしてこうなったというぐらいさっぱりわからなくなりました。
とりあえずはこちらのサンプルを見ながらぽちぽち写経を行なっていました。
このサンプルですとAndroidでできますし。
それで一通り動かしてみてわからないままでしたが、ゲームとして形ができていくのは面白かったです。
ただ、スケールの問題がありますので、それは別途対応を行わなければならないのがちょっと面倒かなという部分はありました。
理解できていないところがほとんどですので、もっと勉強していきたい分野です。
わからなければ、頼り甲斐のある方が周りにいらっしゃいますし!


cocos2d-xをこれからやる際のアドバイスとして


もし、MacがあるのならEclipseで開発するよりもXcodeやAppCodeでの開発の方がいいと思います。
AppCodeならC++の補完も入っているとのことですし、両方共書きやすいですし。
iOSのシミュレータでも動きます。
Androidの爆速エミュレータではどのような挙動になるのかは確認していないですが、Xcodeで開発したときはEclipseよりも書きやすくて感動した記憶があります。
私の環境が悪いだけかもしれませんが…。
また、Xcodeも無料で落とせますし、シミュレータだけで挙動を確認したいのなら、Appleへのお布施も必要ではありません。
Xcodeでcocos2dのお勉強をしてからcocos2d-xを組んだ方が理解しやすいと思います。
私は逆でしたので死にましたので、本当にこの順序をオススメします。
そうしないと私と同じ轍を踏んでしまいます。
また、Dashでもcocos2dやcocos2d-x等のリファレンスの参照ができますので、入れるのをオススメします。
もちろんAndroidも参照できますので、ぜひぜひ。


結論


MacがあるならXcodeを落としてcocos2dやると幸せになれるよ!
AndroidのAdventCalendarなのに、この結論は酷いです。
ですが、今までの経験上このような結論となってしまいますので、仕方がないのかなとなっています。


cocos2d関連で…


cocos2d関連のコミュニティはいくつかSNS状にあります。
Twitter

facebook
このようなコミュニティもありますので、フォローをして情報を追うと色々面白い情報が流れてきます。
cocos2dに関してはこれらのコミュニティ以外でも、勉強会等でもよく話題に上がりますし、勉強会でも実際に使われている方もいらっしゃるので、そのような方にお話を伺うのも面白いと思います。

また、 cocos2d日本語の書籍も幾つか出ています。
他にも幾つかありますが、代表的なのはこの2冊だと思います。
前者は入門としてオススメです。
後者は中級以降でオススメです。

ちなみに本日ですが、GREE社でcocos2dの勉強会が行われます。
こちらはまだ空きがありますので、興味のある方は是非いらっしゃってください。
冒頭で触れました「cocos2d javascript bindings」についての話もありますので、JavaScript使いの方は是非いらしてください!
また、ハッシュタグは#cocos2d_devcon3_jpですので、濃いー話を聞きにきたいけど、来れそうにない方はこちらのハッシュタグを追うのも良いかと思います。


最後に


あまりAndroid界隈でcocos2dの話が出てこないこととiPhone界隈では割りと話されていることですので、それなら少しでもcocos2dを知るきっかけになれば良いかなと思い今回はAdventCalendarを書かせていただきました。
最終的にはiPhoneやAndroid等関係なく、cocos2dを扱うということで色んな方とお話をしたり、技術的意見交換の場ができると面白いのかなとも思いました。
やはり色んな方とお話したりするのは楽しいですし、面白いですからね!

私はiPhoneアプリの開発から離れてAndroidアプリの開発を行なっていました。
それで周りの方々がcocos2dを扱っている時に「Androidでもできるといいのに」と思っていました。
そういう思いがあった時に@Seasonsさんからcocos2d-xの情報が流れてきた時に、
「これだ!」
となり、早速環境構築や弄ってみたことを勉強会で発表したりしました。
最近はあまり触れていませんが、もう少しcocos2dの勉強をしたらcocos2d-xの勉強も再会する予定です。
そうしましたら、また技術的内容をブログに公開していきたいと思っています。

最後になりましたが、「今ならこういうこともできるのかー」という新しいことを知れるとワクワクしませんか?
私はワクワクします。
そしてその「新しいこと」に触れてうっひょうと楽しくなることが、好きです。
よくわからなくて、てんやわんやしていてもやっぱり楽しいものは楽しいなとなります。
それが私がプログラムをやっていける気持の根源なのだと思います。
仕事では病みまして、休職からの退職コンボを決めかねない状況ですが、本職ではなくても細々と続けていきそうな気はします。
どうなるんだろう、私の人生。


さて、明日は表は@u_s_kさんによるエントリーと裏は@kabayanさんによるエントリーですので、お二方のエントリーも是非ご覧ください♪

2012年11月30日金曜日

銚子とかに行ってきたよー


11/23と11/24とで銚子近辺をぶらぶらしてきました。
天気は雨が多かったですが、24日のお昼ぐらいから晴れて来たのが救いでした。
ええ、おかげで23日に鳥見をしまくろうと思ったらざんざか降られて出来ませんでしたとも。

写真は銚子で鳥見すると大体行く鈴女というお店の海鮮丼です。
ここは基本的に特盛りなので、定食は止めて丼にしておけば安心じゃないのか!となって海鮮丼を楽しました。
そして写真のようなてんこ盛りの丼がやって来た次第です。
この丼が来た時、頭を抱えているAAが脳裏に浮かんだのは秘密です。
種類も色々入っており、お魚も新鮮で美味しかったです!
個人的にはご飯が酢飯なのがポイント高かったです。
さらに、物によっては厚みが1cmぐらいあるんじゃないのかというものもありました。
マグロはそれぐらいあったと思います。
何せお箸で刺身を持つと、重さでぷるぷるしてしまうんですよ?
こういう体験はそうそうできません。
量は多かったですが、頑張って完食しました!
これで1500円なのは安いですよねー。
量がとんでもないですが、大食いの方には良いのではないでしょうか。

雨なので光学機器が濡れる状況での鳥見は嫌でしたので、早々にお宿に行きました。

次の日もそこそこ雨が降っていましたが、時間が経つにつれて上がってきていましたのでポイントを絞って鳥見をしていました。
ちなみに鳥アルバムはGoogle+に公開しています。

午後はのんびり佐原近辺を回って帰りました。
晴れて良かったですが、ちょっと冷えました。
遅めのお昼ご飯で入ったフレンチレストランで飲んだホットロイヤルミルクティが冷えきった体にはとても嬉しかったです。

とてもいい気分転換になって良かったです。

久しぶりに鳥見をしたお話


ちょっと前ですが、割と近場にある泉の森に行きました。
ここの公園はそこそこカモが来るので好きなのです。

リハビリがてら歩いていたのであまり長居はしませんでしたが、それでもカモ達のエクリプスを見てテンションが上がったり、ご夫婦でコーギーの散歩をされていましたのでそのコーギーを撫でくり回したり、アオジをじっくり観察できたのはとても良かったです。

いやはやお散歩がてらの鳥見はやっぱり良いですね!

ちなみに写真はヒドリガモがみょーんと伸びをしているところです。
気付いたら撮れていました。
奥が♀で手前が♂エクリプスかな?
違うかもしれないな…。

2012年11月27日火曜日

予約投稿ができるかな!

ええ、タイトルの通りです。
如何ともしがたい事情ができたので、予約投稿をしなければなりません。

なので、そのテストなりー。

2012年10月14日日曜日

抜歯

現在、大体週に一回のペースで親知らずの抜歯を行っています。
元々は、前職の有給消化中にあまりにも歯が痛くなり、酷い虫歯になったものだと思いながら近所の新しい歯医者に電話をしました。

中学生、いや、もしかしたら小学生以来かもしれない歯医者でしたので行くのも億劫でした。
そこで簡単に見てもらいましたら、歯槽膿漏になりかけていたとのことでした。
そのため、歯磨き指導をしてもらい、今も続けてその磨き方をしているとそのような痛みは無くなってきました。
検査をしてもらっている時に先生がにこやかにこう言いました。
「親知らずが中途半端に生えていて、しかもその所為で一部の歯の歯並びが悪くなっているから、取ってしまおうね」
目の前が真っ暗になりました。
よく、親知らずを抜く時の痛みは凄まじいということを聞くので、恐がりな私はそれだけで憂鬱になっていました。

抜歯当日。
あまりにも気が落ちていてげんなりしながら、徒歩で行ける距離の歯医者に向かいます。
麻酔の駐車でも少し痛くなってしまい、麻酔後の痛みがどれほどのものなのかと考えるだけで震えてしまいます。
最初は右奥上の親知らずです。
この歯は若干外側に向かって生えていたのですが、あっさり先生は抜いてくれました。
抜歯そのものの時間は5分もかからなかったと思います。
私は下の親知らずも抜かれると覚悟をしていましたが、どうやら一回に一本ずつ抜く方針だったようで、あれだけ恐怖を感じていたのに肩すかしを食らいました。

麻酔が切れた後の痛みは薬のおかげかそれほどでもありませんでした。
ただ、難を言えば穴に食べ滓が入ってしまうので、念入りにくちを漱ぐことでしょうか。

さらにしばらくして、今度は右奥下の親知らずの抜歯です。
この日はちょうどさいたま勉強会と重なっていましたので、抜歯を行いそのまま蕨に直行する予定です。
この日の抜歯は切開も行いました。
なぜかと言いますと、親知らずを半分程覆うように歯茎が乗っていたためです。
これがぴろぴろ動くなら切開をしなくても良かったのですが、あいにくそのようには動いてくれなかったため切開をすることになりました。
この日の抜歯は前回に比べて、
「メリメリ!」
という音がよく聞こえてきました。
抜歯自体の時間も前回よりも長いです。
なんとか抜けたと思いましたが、切開をしたため縫合することになりました。
ただ、この次の週は病院側が休みであるため、2週間後の土曜日に抜糸及び抜歯をすることになりました。
口の中を血だらけにして蕨に向かったのも今ではいい思い出です。
そして痛みが引きにくかったため、焼き鳥をもりもり食べることが出来なくて残念でした。

この抜糸及び抜歯を行ったのが昨日です。
抜糸自体はすぐに完了しました。
先生のチェックでは傷の治りも順調とのことでした。
確かに、最初の頃に比べて食べ滓が穴に入りにくくなったような気がします。
そしてこの日行ったのは左上の親知らずの抜歯です。
こちらも最初の抜糸と同じく、それほど時間はかかりませんでした。
痛みも薬のおかげかそれほどありません。

最後に残すのは左下の親知らずのみです。
こちらは抜糸後の痛みが大きそうですので今から憂鬱です。
早く心置きなく美味しい物が食べられるようになりたいです。