2012年2月9日木曜日

ゲーム作り始めました



というわけで BP辞めちゃった わけなんですが、じゃあお前今なにやってんのよというのがこちらです。
http://www.gamecast-blog.com/archives/65644888.html
http://d.hatena.ne.jp/hotmiyacchi/20120204/1328376479

はい。ゲーム作り始めました。

なんでやねん!!!

これにはまぁ深いワケがあるのですが、話は去年の11月ぐらいまでさかのぼります。この新会社の社長さんの 宮川さん という方と以前から個人的に交流があったのですが、ある日ちょっと話したいことがあるから来てくれと飲みに誘われまして。その席で、

「君のコードを見させてもらった。大変素晴らしい。実はこうこうこういう仕事をやることになって、君の力が必要だ!是非来てくれ!!」 (会話内容はだいぶ事実と異なります)

とラブコールをいただきまして。
で、実は宮川さんって
http://www13.atwiki.jp/game_staff/pages/125.html
聖剣伝説3とかFF11とかのメインプログラマやってるわけですよ。でまぁ私、聖剣3とか全キャラのエンディング見るまでやりこんだわけですよ。そんなゲームの作者の人に来てくれ!なんて直接呼ばれた日にはもう、そんなんホイホイついていくに決まってるじゃないですか。ってことで転職することになったわけです。あとは受託開発じゃなくて自社の製品を出していけるというのも決め手でした。iOS向けで自社の製品を出していける、それも冗談みたいなのじゃなくて普通に市場のトップを取れる可能性がある製品が出せるかもしれない、というのはものすごく魅力的に見えたのです。


■転職してからこれまでのあらすじ

ぶっちゃけると私はこの転職、最初ものすごく不安だったのです。というのも
  • ゲームとかマジ作ったことない
  • 3Dプログラミングとか一ミリもわからない、むしろ数学とかマジわからない
  • ビープラウドがあまりにも良い環境だったし、給料もたくさんいただけたし、仲間も面白かったし、毎日勉強になりまくってたしで、正直転職先がこんなに恵まれた環境になるとは到底思えない
  • 宮川さんのはてダ を見ていただければわかるのですが、基本的に彼はやたらとBlogに書く内容に誇張表現が多いので なんか嘘っぽい
まぁ、やると決めたし、これまで二年間ほどBPに甘えさせていただいて楽して成長できてたし、独り立ちして苦労するのも悪くないか、などと自分に言い聞かせて2/1の初出社を迎えたわけですよ。

そしたらたまげた。 新しい職場にはBPより頭がおかしい連中しかいなかったんですよ。

冗談じゃなくこんな感じ

その日集まった18人全員のスキルがどいつもこいつもXMENだったと。当日の様子をお伝えできないのが非常に残念なのですが、一体全体宮川さんはこんな連中を日本のどこから集めてきやがった!!と叫ばざるを得ない。そしてまた彼のマネジメントのやり方が驚嘆するほどに上手いのです。以下ハイライト。
  • いきなり初日からクライマックス状態の自己紹介タイム
  • いきなり初日から会社でふぐちり鍋(注: 水曜日です)
  • でも翌日朝9時出社は厳守させる、無断欠勤してきた奴にはものすごい勢いで怒る→全員超引き締まる
  • いきなり2日目から「1日に1本ゲームの企画を立てて作る、4日連続で、チームメンバーは毎日全員入れ替え」という頭おかしい研修内容
  • それを当たり前のようにクリアする全員、当然のようにiOS実機で動く
  • それどころか毎日完成するゲームの質が上がる
  • それどころか毎日完成したゲームのプレゼンの質が上がる
  • 4日終了した段階で、全員の打ち解け度合いが半端ない、よくある「チームごとの壁」みたいなのが全くない状態で実際の仕事に突入
  • 研修が終わった日にまた鍋(注: 一週間に二回鍋です、火曜日です、終電まで全員飲み食いしてます)
  • でも翌日朝9時出社に誰も遅刻しない
  • グラフィッカーさんに良いマウスがないか聞かれたのでSteelSeries XAISteelSeries 4HDの実物を持っていって触ってもらったら大絶賛され、翌日Xaiと4HDがそれぞれ8個ずつ届いた(注: 1セット1万2000円ぐらいします、たかがマウスです)
  • 無線LANアクセスポイントの調子がわるいのでCISCOの良い奴にしましょうと答えたら、二日後に本当にCISCOのAPが届いた
  • 開発用のMacツールおよび企画研究用のiOSゲームは全て買い放題
  • 昼休みに社員8人程度でHaro Reachのデスマッチをプレイしてる
  • 仕事上がりに同僚とCoDのcoopをプレイしてる
  • 同僚にシャドウゲイトの話が通じる
  • 同僚にPortal2やSkyrimやStarCraft2の話が普通に通じる
などなど、枚挙に暇がありません。いや、正直最初はFF11のメインプログラマやってたとかいうけどどうなのかなーなどとものすごいタカをくくっていたのですが、ほんとスミマセン。これは本気で強いです。バラ色天国な環境過ぎて、これはもう勝ったと言わざるを得ない。前職のBPも素晴らしい環境だったのですが、ここの環境は正直常識が通用しないレベルですごいです。日本で一番すごい環境じゃないかと言われたらイェスと答えてもいいかもしれないです。

そして環境も素晴らしいですが同僚も皆とんでもない連中ばかり。スキルは当然として、全員が向学心と負けず嫌いの塊みたいなものですから、研修がとんでもなく白熱しまして、正直ヤバい。私もBPのハッカー魂と業務改善の魂を是非新しい職場に吹きこんでいこうと日々頑張っております。当分の間は退屈しない、全力全開の日々が過ごせそうです。

2012年2月8日水曜日

ビープラウドを退職しました


やや旧聞になりますが、1月末付で 株式会社ビープラウド を退職いたしました。知ってた人はすでに知ってたと思うんですが、なんかすっごい唐突で色々とすみません>< 退職理由や次の仕事の話などは次の投稿に詳しく書く予定ですのでそちらに任せるとして、今回はこの場をお借りしましてビープラウドがどういう会社だったか、ちょっと過去の振り返りなどをしてみたいと思います。


■BPはどんな会社か

(良い意味で)頭おかしい連中ばっかりが集まって、本気で学び本気でコード書いている集団だと思います。

具体的には 右隣の奴 が常時こんな状態で仕事してます。

こんなことを書くと本当に変人しかいないんじゃないのか、お前ら大丈夫か、などと思われてしまうのですが、そうじゃないんです。ビープラウドはみんなが自分のすべてをぶつけて、さらけ出して仕事できる素晴らしい会社なんです。私は新卒で入社したSIerの会社をやめてBPに入社したのですが、入社した初日にパスワードが失われてログイン出来ないMacを渡されて何とかハックして使えという具合だったり、それまで同期の誰に喋っても通じない技術の話が当たり前のように通じたり、っていうかむしろ私が知らない事のほうがはるかに多かったりで、全力で自分の技術をぶつけることができた感動を今でも覚えています。世の中にはいろんなくだらない理由だとか社内政治だとかで、自分の全力、技術力のすべてを出し尽くせない、出してはならない、出す価値もないような仕事が散見される(それが最初の会社をやめた理由の一つでもある)のですが、ビープラウドでは全力全開超推奨。二年間で vの人 から「お前は随分良くなった」とお褒めいただけた程度には成長できたのも、間違いなくビープラウドで自分の全力を出して挑戦し続けさせていただいたおかげだと思っています。

私が見たビープラウドの感想なので、他の人から見たらちょいとズレているのかもしれませんが、私は技術を大事にする、エンジニアを大事にして全員にMacやらレッドブルやらを支給する、社内勉強会やBPStudyを開催する、などといったBPのハッカー文化が大好きで、退社した今でもその気持ちは変わりありません。むしろ退職して新しい仕事をしている今から振り返ると、BPの素晴らしかったところはあのハッカー文化だったんだなという思いを強くしています。


■謝辞

去年の12月にいきなり辞めると言い出したにも関わらず快く送り出していただいた社長のはるおさんとCTO、超ムチャぶりにも関わらず私の仕事を引き継いで立派に締めてくれたgkt、個人的に超いろいろ迷惑をかけまくった右隣の席の奴に、ありがとう!!むしろBP全員ありがとう!!!お陰様であきすては元気にやってますよ!

2012年1月29日日曜日

xxd を使って画像などのバイナリデータをソースコードに含める方法

iOS向けのライブラリやフレームワークを作成しているときに、どうしても画像などのバイナリデータをライブラリやフレームワークに含めたくなる時があります。たとえばUI系のフレームワークなどですね。このようなときに、たとえば静的ライブラリ(.aと.h)やフレームワーク(.framework)とセットで画像を一緒に同梱し、ユーザーのXcodeプロジェクトに一緒に含めてもらうという方法もあるのですが、この方法だと画像名がユーザーのプロジェクトに含まれている画像とかぶったりしてはいけませんし、管理が面倒になってしまいます。また、ライセンスがプロプライエタリなライブラリでは、画像などのリソースをあまり積極的にユーザーに公開したくないというニーズがあったりします。

そこでxxdツールのご紹介です。岸川先生に教えていただいたのですが、xxdというツールを使えばバイナリデータをC言語のヘッダファイルとして簡単に出力することができるらしいのです。これを使ってバイナリデータをライブラリ内部のソースコードの一部として配布してみましょう。

xxdはvimに同梱されているので、最初からMac OS Xについてきます。使い方も非常に簡単です。
xxd -i Sample.png
とすると、
unsigned char Sample_png[] = {
  0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
  0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x07, 0xfd, 0x00, 0x00, 0x04, 0x73,
//中略
unsigned int Sample_png_len = 589903;
このような感じでバイナリデータがC言語のヘッダファイルになって出力されます。あとはこれをNSDataにして、UIImageを生成することができます。NSDataを作る際には余計なデータコピーが発生しないdataWithBytesNoCopy:length:freeWhenDone:を使うことをお勧めします。
NSData *data_Sample_png = [NSData dataWithBytesNoCopy:Sample_png length:Sample_png_len freeWhenDone:NO];
UIImage *image = [UIImage imageWithData:data_Sample_png];