読者です 読者をやめる 読者になる 読者になる

STANDALONE NETWORKS

ゲームプログラマーが独立起業してみるブログ

ゲームエンジニアになりたい人からの質問に答えてみたよ

ゲーム プログラミング

元・ゲームエンジニアえのきです。今はソフトウェア何でも屋さん?

このブログをご覧になった方から、次のようなメッセージをいただきました。

私は現在、全く別の業界で2年間勤めているのですが、ゲームエンジニアになりたいと考え、転職活動をしています。
そこで、調べた事以外に、実際に現場で働いている人の声を聞いてみたいと思っています。

不躾なお願いで申し訳ないのですが、質問事項を以下にに纏めますので、返事を頂けたら幸いです。

ネタとしてちょっと面白そうなので(失礼)、ご本人に断った上で、返答を記事としてまとめる事にしました。

注意!

質問にお答えする私のキャリアは、ほぼコンシューマーゲーム機(PlayStation とか Nintendo DS とか)のみで築いた、主にエンジニア(プログラマー)としてのものです。なので返答内容も、その観点からお話させていただいてます。

一口にコンシューマーと言っても今はスマホアプリやブラウザゲームなども含まれて来ると思いまが、それらについては私は現場レベルでは経験をしていないので、業界内で見聞きして知っている範囲での見解となります。

諸々ご了承くださいませ。

ゲームエンジニアになるための初期スキルとは

まずは、最初の質問。質問者さんはこのように書かれていました。

コンシューマのエンジニアは、どういったスキルが必要になるのでしょうか(言語等)。初期スキルとして最低限必要と言えるものはあるのでしょうか、或いは無くても問題ないのでしょうか。

プログラミングは学生の頃に C 言語を弄っていたのですが、自信を持って何かを作れるというほどスキルはありません。

自分にも覚えがありますね。

まず安心して欲しいのですが、本当の初期の初期に要求されるスキルセットは、実はそんなに高くありません。学生の持ってるスキルなんて正直たかが知れてるので(ごく一部のスーパーな人達は除く)、採用する側はそこまで気にしてません。自分も業界に入ったときは、今考えると笑っちゃうくらいのスキルしか無かったですよ。

その上で、これを持っていたら有利であろうというのを以下に挙げます。

C++ の知識

PlayStation などのコンシューマー機の開発は、ほぼ C++ のみで行っています。C 言語のみで行っている開発はほとんど在りませんので、C++ の知識は必須です。

スマホアプリ系の主言語は Java だったり Objective-C だったりするのですが、プラットフォーム共用部は結局 C++ になります。この部分を扱えるエンジニアが不足気味のため、これを知っていれば採用面では有利になるかと。

C++ の達人にまでなる必要はないですよ。そんな人は現場のベテランでも稀。既存コードを読んだり改変したりに不足がなければ、あとは実業務の中で習得していけるでしょう。

JavaObjective-C などの言語の習得は後からでも良いです。C++ を習得していれば、割とどうとでもなります。C++ を理解できて Java を理解できない人はあまり居ませんが、逆は結構居るのです。

C++プログラミング入門

C++プログラミング入門

3D グラフィックスの知識

一口にゲームエンジニアといっても専門分野は多岐にわたり、ネットワークやサーバー、サウンドなどグラフィックスから縁遠いジャンルもあるんですが、どのジャンルにおいても 3D の知識は必要になります。これは、最終的なアウトプットが 3D 空間である事が殆どだからです。

シンプルなスマホアプリやブラウザゲームなど 2D 表現のゲームも勿論ありますが、これらも根底では 3D で演算されていることが多いので、3D を理解できていることは強みになります。

といっても普通は新人にいきなり 3D グラフィックスのコアな部分なんて組ませたりはしないので、基礎的な理論と、実際の使い方だけ知ってれば良いです。

最低限、ベクトルとマトリクスによる座標変換は理解しておきましょう。

ゲームプログラミングのための3Dグラフィックス数学

ゲームプログラミングのための3Dグラフィックス数学

ゲームエンジンの知識

大手開発会社やレベルの高い小規模独立系会社を除いて、既存のゲームエンジンを利用したゲーム開発は当たり前になってきています。これらの知識を持っていると、潜り込める企業の幅が圧倒的に広がります。3D グラフィックスの基礎理論を学ぶためにも良いです。

メジャーなゲームエンジンとしては、

・Unity
・Cocos2d

などがあります。これらは無料で個人利用できるので、学んでおかない手はないです。

Unityで作るスマートフォン3Dゲーム開発講座 Unity4対応 (Smart Game Developer)

Unityで作るスマートフォン3Dゲーム開発講座 Unity4対応 (Smart Game Developer)

プランナーとの兼務はありえるのか

では、次の質問に。

ゲームエンジニアはプランナーを兼務する事はあるのでしょうか。
様々な情報サイトを見ていると、全部兼務してるような事が書いてあったり、情報の真意がわかりかねています。

これは企業さんの規模と、作っているものの規模によります。大企業さんの場合はリップサービスの意味合いが強く、小規模の企業さんの場合はリアルに切実な意味合いが強いかもしれません。

基本的には、開発規模が大きいほど作業は分業化していく傾向です。コンシューマ機の開発は基本的に大規模になります。スマホアプリの開発はそれと比べると小規模ですが、最近では小規模とは言えない規模のものもありますね。

いずれにしてもエンジニア(プログラマー)としてのスキルが確立していない新人が、兼務について悩む場面は通常あまりありません。プログラマーにしろグラフィッカーにしろ専門分野での要求レベルがものすごく上がって行っているので、あんまり多方面に手を伸ばしている余裕は無かったりします。募集する企業さんも、それは解っているでしょう。

しかしその上で企業さんが敢えて「何でもやってますよ!」と書いてくるのは、ゲームデザインに興味のないプログラマーは使えないからです。お客さんがそのゲームをどのように楽しむかといった事に無関心では、ゲームのどの部分により時間を割くべきか、どの部分に変更が入り得るか等々、判断できるはずがないですから。

なので実際に兼務がなかったとしても、いつでもウェルカムです!という姿勢と、実際に兼務があった場合にそれを厭わない心構え(あるいは覚悟?)は必要になってきます。

企業さんが欲しいのは、とりあえずエンジニアとしてゲームに関わっていたい人ではなく、ゲームを作るという目的のためにエンジニアとしての技術を駆使する人、という事ですね。

平均的な業務時間

最後の質問です。

平均的な業務時間について。

職場によって変わるとは思いますが、経験した業務時間を参考に教えてください。

気になりますよね(笑)

平均というとちょっと難しいんですが‥ そうですね、概ね一日 11 時間程度といったところでしょうか? 自分の勤めていた会社は裁量労働制(残業代が出ない)を採っていたので、その前提での感覚です。

忙しい時期とそうでない時期が、割とはっきり分かれています。マイルストーン近くは超多忙、それ以外は割とまったり。

多忙な時期はぶっちゃけ、終電が帰宅時間の基準になります。コンシューマー機の開発だと、マイルストーンの 1 ~ 3 ヶ月前からこの状態。人によっては、ずっと。

まったりな時期なら定時帰りしているかと言うとそうでもなく、2 時間程度の残業は定常的にしてました。これは、現行業務と直接的には関係しない(かも知れない)スキルアップのための作業や調査などが常にあるためです。新人のうちは特にこの時間が多いかと思います。残業代がきっちり出る勤務体系だと家に帰ってからやれと言われると思うので、そのぶん見た目の勤務時間は減ります。

まぁ正直、勤務時間は長いですよ。それ込みで、楽しい!と思える人でないとキツいと思いますね。



といった感じでまとめてみましたが、如何だったでしょう。質問者さん、参考になりましたか?

書き始めると筆が乗る乗る。うっかりあらぬことを書いては消し消し(笑)、なるべく過不足なく質問者さんの現状に則した回答をしたつもりですが‥ まぁ足りなかったらまた質問してもらって、ブログのネタにさせてもらいましょう。

以上、今でもやっぱり軸足はゲームエンジニアな、えのきでした。

Visual Studio で Android のスタティックライブラリを参照したらビルドが通らない時の対処方法

プログラミング

Visual StudioAndroid のプロジェクトを構成する時のメモ。

NativeActivity から StaticLibrary を参照してビルドしたら、

f:id:oppyen:20161023174306p:plain

エラーになった。

error : Unable to open file _out\x86\Debug\libStaticLibrary1.a.recipe because 2

ファイル自体は存在してるなぁ? because 2 って何やねん。

出力ディレクトリを変更してるライブラリだけエラーになるようだったので、

f:id:oppyen:20161023174350p:plain

試しにマクロ展開後にフルパスになるように出力ディレクトリを修正したら通った。

f:id:oppyen:20161023185223p:plain

まぁ、Visual Studio あるあるですね。PS やら Xbox やらの環境でも良くありました。なるべくデフォルト設定のまま使うほうが幸せ。(でも変えちゃう)


アプリを作ろう!  Visual C++入門 Visual C++2015対応

アプリを作ろう! Visual C++入門 Visual C++2015対応