ゲームエンジニアとWebエンジニアの違い


皆さんご存知、あの、なかしまです。

最近は意識高いぶって、はてブに目を通したりしているのですが、どうもゲームエンジニア向けの記事ってないんですよね。
だからエンジニア向けのブログを沢山読んでると”自分はエンジニアではないのでは?”と不安になってきます。

それは何でだろうって考えてみるとWebエンジニアとゲームエンジニアの性質の違いが見えてきます。

勤勉さ

優秀なWebエンジニアは勤勉です。最新のフレームワークにも詳しいし、プログラムを綺麗に書こうという意識も高いです。
その点ゲームエンジニアは無頼です。勉強よりも瞬発力と、アイデアで問題を解決していきます。とくにハードに近い層を触っていると”とんでもない方法でも正常に動作すれば良し!”という感覚で実装します。

汎用性

Webエンジニアの技術は汎用性が高いです。なのでブログ記事にし易いし、エンジニア間での共感がすごくあると思います。その点ゲームエンジニアには共感なんてありません。だから人が書いたゲームの実装を読むのは苦行です。意味不明なスリープ処理が入っていたらもう最悪、でも”外したらどっかがおかしくなるんだろうな”ということは分かるので一生そのコードに触れることはできません。

人間性

優秀なWebエンジニアは大人です。ちゃんと社会生活を送ることが出来るしっかり者でなければWebエンジニアにはなれません。変数名だって気を使うし、git treeも綺麗にします。もし”Webエンジニアだけど全然大人じゃないなぁ”って人がいたらおそらくWebエンジニアには向いていません。だからといってゲームエンジニアに向けている訳ではないですけど。。。
その点ゲームエンジニアは子供です。完全に仕事と趣味の境界線がありません。遊びながらそれが仕事になってる感じですね。だから変数名だって気分で変わるし、gitのコメントも適当です。

コードの複雑さ

ゲームエンジニアが書くコードは複雑です。だから二流エンジニアに書かせると仕様変更に対応出来なかったり、実機で性能が出なかったり、そもそも完成しなかったりします。その点Webエンジニアのコードは単純です。私もiOS,Android,サーバーサイドを一人で保守改修してた時期がありましたが、初めて触るphpでサクサクAPIを追加して業務を遂行出来ました※逆パターンが難しいということは博学なみなさんなら分かりますよね?。性能面もそこまで意識する必要はないし、Webシステムってほんと簡単に作れますよね。

意識

Webエンジニアは意識高い系が多いです。だからこそ勉強するんだろうし、それをまた世の中に発表したがるんでしょう。自分が凄いと言いたい人もいれば、自分はダメだって言いたい人もいる。ブログのタイトルで”Webエンジニアが〜なんたらかんたら”ってのが多いのもそのせいです。自分がWebエンジニアであるという自意識の高さを感じますよね。私は、何が”Webエンジニアが〜”だ、バッカじゃないの〜と思ってますけど。
その点ゲームエンジニアは意識が低いです。まず勉強なんてしません。私の机にはゲーム系のアルゴリズムの書籍が何冊か置いてあるけど断固として開きません。しかも共感や共有の意識が無いからブログなんて書きません。

スキルの測り方

Webエンジニアのスキルは単純なコーディング能力と幅広い知識が必要です。知識がないことがそのままシステムの欠陥につながる可能性が非常に高いからです。だから意識が高い必要があるし”みんなで情報共有して素敵な未来を作ろうぜ”的なギークな俺たちかっけーって感じで技術を語っています。語れることが正義であり、語れないWebエンジニアは”そんなことも知らねーのかクズが!”と罵られます。
その点ゲームエンジニアは、結果重視です。どんだけ最新技術を知っていようが、フレームワークに詳しかろうが関係ないです。対象ハードでちゃんと動作するものが作れる人が正義であり、それ以外はクズです。そういえば業務システム作ってた時代にSJC-P(※1)を取得しているJavaプログラマでプログラムを書ける人なんて一人もいませんでした。

補足としてエンジニアの能力を知識量で測るのは良くないです。エンジニアの仕事は問題解決能力であって、知っていることではないから。以前若手のベンチャーの面接に行った時ペーパーテストをやらされて”こんな状況で使うコマンドを答えなさい”みたいな設問を永遠とやらされて、なんてバカな会社だろうと思い回答せずに提出したことがありました※もちろん合格しましたが断りました。

なっちゃってエンジニア

Webエンジニアにはなんちゃってエンジニアが多いです。意識高い系が多いので、なんたらかんたらウンチクを言う割に何にも出来ない奴が後を絶ちません。それはWebは簡単に作れちゃうからです。もちろん優秀なWebエンジニアの仕事は私のような無頼派エンジニアには到底出来ませんが、世のWebエンジニアの半数を占めるといわれるなんちゃってWebエンジニアよりは私の見よう見まねWebエンジニアの方が役に立つはずです。
その点ゲームエンジニアはなんちゃっては少ないです。だってそんな人には完成させられないから。大手に勤めてる人だと”当たり判定のプログラムだけやってました!”とか平気で居るんですけど、それはもうゲームエンジニアではないですよね。

やはり同じエンジニアでも、性格や能力によって向き不向きがあるんだなと思います。

(※1) Sun Certified Programmer for the Java Platform