自分のキャリアに用いる開発環境を定める

ITエンジニア(ゲーム開発エンジニアを含む意味で)は職務経歴書
自分の得意な分野、開発環境、言語を書くわけですが、
自分もweb系を始めて1年半。DBにサーバに、一部クライアントにと他の同僚と違い広く浅く経験してきましたが、やはり方向性を絞らねばなりせん。

自分が組み込み系エンジニアだったときはCかC++一択だったし、サーバという概念はありませんでした。

ゲームのクライアントエンジニアならばやはりC++一択ですね(一部C#もあるようですが)。下手すると組み込みより低レイヤーです。

組み込みとゲームは似てるところが多いと思ってます。
一つはwebのコンテンツ会社と違って扱うのがより低レイヤーなことです。
webは何かにつけオープンでapachetomcatみたいなミドルウェアにオープンなDBが普及してますが、組み込みやゲームは何かにつけプロプライエタリで、ミドルにあたる部分は他社から買ってくるか自社で作っているのが当たり前です。
その分、使う環境というのが特定の環境に捕らわれたりします。

webはというと、あまりに環境が乱立しています。
クライアントはHTML5Flash、Obj-C、etc、etc、、、サーバもですけどまだクライアントほどではない。

自分はクライアントスキル中心に生きたいし、サーバは1年以上やってみて、「必要だからしょうがなくやる」、以上のやる気と興味が出ませんでした。
これはもう向き不向きであり性格だと思います。30年生きていて自分の好き嫌いは大体把握しているので、1年半やらなくてもとっくにわかっていたことではありました。


本当にいろいろやってきた自分ですが、とりあえずしばらくは以下にフォーカスしたいと思います。

・クライアント:JS(HTMLとHTML5中心、CocosとUnityのJSも動向監視はしていく)
・サーバも他の人がやってくれなかったらやる:JS
・グラフィック用オーサリング:Blendar、FlashCS(フリーでいいものが出たら代替)、GIMPInkscapeも必要があれば
・クライアント用ミドル部分に手を出していく:C++
・簡単なツールやアプリをささっと作る:AdobeAIR

正直、クライアントもサーバも、C++とかの低水準な言語でがりがり書きたいですが、時代の流れと、他の同僚に使ってもらうことを考えるとJSを選びました。必要な部分にはC++を使っていけばいい。
Obj-Cには非常に興味がありましたが、仕事でやる機会が無さそうなのでこだわっていてもしょうがない。
仕事でやらず趣味に限定されてしまうと極度に成長が遅れます。

AIRは今後そこまで発展するとも業界で支配的地位を得るとも思いませんが、一回書けばwebでもスマホでもデスクトップでもOSを問わずどこでも互換性問題なく安定して動き、環境が乱立しておらず、かつ言語として学びやすくコンパクトでコンパイル言語なのは最高です。
プロプライエタリなのはマイナスですが、他にここまで扱いやすい環境を知りません。
ゲームのモックも作りやすい。
JSは当分そこまでには至らないと思います。


逆に言うと、これ以外の技術やツールになるべく時間を取られずにすむように仕事とキャリアを整理していかねばなりません。
今は特定の言語と環境にかなり人生の時間を割いていますが、その言語には本質的に興味が無いので少しずつ減らしていきたい。
必要は必要ですが、自分は状況を改善するために自分のやりたいことを犠牲にして何にでも手を出してしまい破綻しがちなので、必要性以上に時間を割かないように意識して注意していきたいと思います。