【開発】ゲーム開発に必要な技術について

DEVELOP

ゲーム開発に必要な技術って実は沢山あります。近年ではUnityに代表されるゲームエンジンを利用することで、不足している知識や技術をカバーすることが可能となっています。しかし、アプリのパフォーマンスを最大限に引き出すには、そもそもの仕組みを理解していることがとても大切です。

ゲーム開発に使用する技術・要素

採用するプログラム言語としての知識
メモリ管理
マルチスレッド
タスクシステム
ステートマシン
モデル表示
ライティング
パーティクルシステム
カメラ
ポストエフェクト
サウンド
AI
シェーダー
物理演算
通信

ぱっと思いつくだけでもこれだけあります。ゲームエンジンがある程度カバーしてくれるとはいえ、これらのパフォーマンスを最大限に生かすためには、OpenGLやDirectXを使ってゲームを作っていた泥臭い頃の知識や技術が必要になってきます。これらは実際に今でも役に立っています。

ネイティブを知ることで、自身のパフォーマンスが上がる

ゲームエンジンを採用することに対しては大賛成です。しかしこれは事実だと思います。不具合が発生した時の見当がつく速度や最適化するうえでのセオリー、表に出ない部分、つまり裏方の仕組みを知っているだけで何倍も効率的に考え、動くことが出来ます。

例えば、ダイナミックフォントを使っていて、文字の多い画面に遷移すると一瞬表示が崩れてしまうという不具合が発生したとします。これは、文字がどうやってレンダリングしているのか仕組みを理解していると「フォントテクスチャのサイズオーバーで再構築が走って表示崩れが発生している」と想像できます。

この話は数年前、実際に現場で発生したのですが、某ソシャゲー会社のエンジニアは「Unityの不具合」と片付けていました。調べもせずに、なんでも道具のせいにするのは良くない。採用しているのは自分たちの意思なのだから。

ゲームエンジンを利用すると作るのは早いです。しかし、少しでも興味があれば仕組みを調べたり、自前で試してみるのも面白いと思いますよ!

Posted by kazupon