DirectXを習得していないと、就職活動は致命的に厳しいです。 せめてゲームエンジンを使って、ゲームプログラミングを実際に行っていないと、箸にも棒にもかかりません。 C++等のプログラミング言語を習得するのは、「あいうえお(平仮名)」を学ぶレベルに過ぎません。 「あいうえお(平仮名)」を学んだだけでは、商社マンなどの実際の職業には就けません。 「あいうえお(平仮名)」を学んだ後に、商業の基礎を学ぶことは、必須条件です。 それと同じように、C++を学んだ後は、DirectXの基礎を学ぶことが必須条件です。 今からでも直ぐに学習を始めるべきです。 ゲーム会社への就職活動をされている学生さんの記事がありましたので、下記にその記事を紹介します。 下記を読めば、DirectXの基礎を学ぶことは必須条件で、さらにプラスアルファが必要だと実感されると思います。 [就職活動をされている学生の記事] 下記の学生さんは、DirectXの基礎は習得済で、さらにオフスクリーンレンダリングなるものの習得をプラスアルファとしています。 オフスクリーンレンダリングの意味は、後に説明します。 オフスクリーンレンダリングは、かなり重要で、なぜ重要なのか、その理由も説明します。 DirectX11 でオフスクリーンレンダリング備忘録 https://qiita.com/yuta6686/items/7e2d1fbf285b162f44aa 引用 ------------ 情報をあさるとまず、オフスクリーンレンダリングをする必要が在るようでした。 しかし、調べてもDirectX11のオフスクリーンレンダリングの情報が全然ありませんでした。 備忘録も兼ねて、誰かの参考になればと思います。 ------------ オフスクリーンレンダリングは、大雑把に説明しますと、ダブルバッファリングの使い方を発展させた手法です。 2Dゲームや3Dゲームでは、パラパラ漫画のように画面を次から次へと切り替えることによってアニメーション的な動きを作っている。 しかし、画面と画面を切り替える際に、ざらざらっと画面がちらついてしまう。 そのちらつきを防止する対策が、ダブルバッファリングです。 詳しくは、以下に説明します。 [オフスクリーンの意味] オフスクリーン(off-screen)とは、名前から推測すると「画面がオフ」と言う状況を指しますが、IT上(プロイグラミング上)では以下の意味を持ちます。 グラフィックを描画する際に、裏画面用に確保したメモリ領域をオフスクリーン(off-screen)、あるいはオフスクリーンメモリ(off-screen memory)、オフスクリーンバッファ(off-screen buffer)、バックバッファ(back buffer) と呼ぶ。 描画領域(スクリーン側)と同じサイズのバッファ領域をメモリ上に用意してこれに描画処理を行なう。 [ダブルバッファリングの意味] ダブルバッファリング(double buffering)とは、画面や画像を連続的に書き換える際に、描画領域(スクリーン側)と同じサイズのバッファ領域をメモリ上に2つ用意して、交互に描画処理を行なう手法。 フロントバッファ(front Buffer)と呼ばれるメモリ領域と、バックバッファ(back buffer)と呼ばれるメモリ領域を用意する。 フロントバッファは、スクリーンへ直接描画を行うためのメモリ領域(バッファ領域)です。 これに対してバックバッファは、スクリーン描画とは関係しない裏画面用のメモリ領域(バッファ領域)です。 グラフィックの描画処理は、いったんバックバッファで行う。 一画面分の画像処理を終えた時点で、そのバックバッファの画像をフロントバッファへ転送する。 画像処理は裏側で行っているので、スクリーンで見える画像はちらつくことがない。 なお、ここで説明したバックバッファが、先に説明したオフスクリーンです。 ちらつき防止が目的の場合は、バックバッファと呼ぶ場合が多いです。 しかし、下記に説明するオフスクリーンレンダリングが目的の場合は、オフスクリーンと呼ぶことが多いです。 [オフスクリーンレンダリングの意味] 当たり前な話しですが、グラフィックの描画処理では、スクリーンを描画先にします。 しかし、描画先をスクリーンではなく、メモリ領域(バッファ)に描画することが可能です。 これをオフスクリーンレンダリング(off-screen rendering)と言います。 描画先をスクリーンではなく、メモリ領域にして何の意味があるのかは、以下に説明します。 [目的1: テクスチャーマッピングに使う] オフスクリーンメモリに描画された画像は、テクスチャーマッピングに使えます。 例えば、立方体の一面に、オフスクリーンメモリの画像を貼り付けると、テレビのイメージの3Dオブジェクトになります。 テクスチャーマッピングで貼り付ける画像は一般に静止画ですが、動画を貼り付けることが可能になります。 [目的2: エフェクトに使う] エフェクト(effect、画像の特殊効果)に使います。 すなわち、オフスクリーンメモリの画像に二次加工を行います。 雪をさらさらと降らせたり、炎をボウボウと燃やしたり、剣をきらりと光らせたり、スポットライトのように中央だけ明るくしたり。 この手の処理を全て3D処理で行うと重くなるので、画像の加工と言う形で行います。 [目的3: PythonやJavaScript系言語で3Dを取り扱うため] 昔は、DirectXは、C++(C言語)でプログラミングを行うものだと決まっていました。 OpenGLは、JavaかC++(C言語)でプログラミングを行うものだと決まっていました。 今もDirectXやOpenGLを直接操作するのは、C++(C言語)やJavaが中心ですが、そのC++(C言語)やJavaの処理を、JavaScript系言語やPythonから呼び出せます。 オフスクリーンメモリの画像を、JavaScript系言語、もしくはPythonへコピーします。 「フロントエンドを勉強している学生です。 この下記のサンテFXさんのサイトのギラギラした鏡のような表現はthree.jsのGLSL言語によるものですか?」 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10280453945 [オフスクリーンレンダリングはなぜ重要か] 上記の[目的3: PythonやJavaScript系言語で3Dを取り扱うため]で説明しましたPythonやJavaScript系言語は、インターネット系でよく使われるプログラミング言語です。 さらに、クラウドコンピューティング系のシステムでの活用で有力視されています。 すなわち、クラウドコンピューティング系で、本格的に3D(VRを含む)を取り入れるのに重要です。 前述の参照先の学生さんは、就職活動を成功させる可能性が、かなり高いです。 [前述の参照先の学生さんが、技術公開しても、あまり不利にはならない] 前述の参照先の学生さんは、技術の記事を投稿しましたが、ライバル達に手の内を見せて不利になるかと言うと、そうでもありません。 オフスクリーンレンダリングとか、その類のプログラミングは、理論通りにプログラミングしても、だいたいエラーになります。 コンパイル時のエラーが散々出て、苦労してコンパイルが通っても、次は実行時エラーがでます。 前述の参照先の学生さんは、何度も何度もチャレンジして成功しているはずです。 前述の参照先の学生さんを採用する企業は、実際にプログラミングした結果を評価して採用します。
ゲーム会社のディレクターです C、C#、Java、Pythonが、大学の授業レベルの話であれば論外だと思います。マルチスレッドや排他制御、デバッガを使ったトレース実行、GCに伴うメモリ管理なども、授業ではほとんどやらないと思います。もう2段階くらい上のレベルが必要です。 また、DirectXもUnityも触れないとなると、ゲームエンジンの経験もほとんどなしということでしょうから、クライアント系のゲームプログラマとしてはちょっと厳しいです。 ゲーム業界は、「自分から進んで勉強する」姿勢がすごく重視されるところです。「この人は教えてもらわないと勉強しないのでは?Unityも会社に入ったら教えてもらえるとか思ってるのでは?」みたいに思われると、それだけで不利になります。 特に、Unityくらいは触ってる学生が大量に応募してくるので、ゲームプログラマやりたいならなんで勉強しなかったの?ゲーム以外が本命でゲーム会社も受けてみただけでしょ(こういう人は毎年一定数います)、ってどうしても思われちゃうのです。
ゲーム業界への就職に関してはネット上の情報は混乱しているため、知恵袋で誰かもわからない人に聞くより、インターンシップや会社説明会に参加して直接各社に聞くべきです。そういう情報は各社のサイトや就職活動サイトで登録すれば募集のお知らせをもらえます。 また、一言で就職と言っても職種によって状況や評価する点はかなり変わります。 以下は珍しくネット上に就職状況を公開している開発会社社長の記事です。 https://note.com/piroshi3/n/na6b130af4664 https://note.com/piroshi3/n/n0104706f2ccf https://note.com/piroshi3/n/n266c2928b423 私の感想としては、質問に書いてある事ができても一般的なゲーム開発者志望者としてはかなり低レベルなので勝ち目はないと思います。 会社があなたに何を求めているのか現時点では全く知らない・考えていないと思うので、まずはそれを知る事から始めると良いでしょう。 なお、ゲーム業界の就職活動はかなり早く始まり、終わります。例えば gumi は来年卒業の新卒募集は既に終了した、と就活ページでアナウンスしています。 一般的なゲーム業界就職志望者は数年かけて準備して臨んでいます。そろそろ最終学年だけどゲーム業界もどうだろう、程度だったらとても太刀打ちできないと思いますよ。
プログラマーでいいんですかね?他の職種もありますけど。 であれば、ちょっと不利かなレベルで致命的ではないです。 そこまで即戦力が求められているわけではないですし、ちゃんと言語を使って開発、デバッグができているようであれば基礎能力はあると判断されるでしょう。 もちろん3Dの基礎知識なんかはあった方がいいですし、ゲームを自分で作ったことがあるならなおさらいいですが、サンプルレベルのゲームをたくさん作ってもそれほど高評価にはならないかと思います。 ちなみに3Dのゲーム本体以外にもゲームのプログラマーの仕事はたくさんあります(例えばネットワーク周りであるとかレンダリング周り、もう少し広いところで自動ビルド、テスト環境の構築とか)が、 ゲームプログラマーと言われると大抵がゲーム本体のプログラムしかやったことがないとかなので、そういう周辺技術の基礎知識があると目立つかも知れません。
< 質問に関する求人 >
ゲーム業界(東京都)この条件の求人をもっと見る
求人の検索結果を見る
< いつもと違うしごとも見てみませんか? >
覆面調査に関する求人(東京都)この条件の求人をもっと見る