新卒で業界入りしてから10年ほどとなりますが、数学・物理と言っても正直すべての数学がゲームに必要とは思っておりません。
そこで必要な数学をここにまとめることにしました。
ただ長くなりそうなので各項目の簡易説明は別の記事で随時紹介していこうと思います。
まとめる理由
新卒で業界に入ろうとするとどうしても時間が足りないからです。
例えば私のように専門学校に入学し、短ければ2年で卒業しなければなりません。
もし大学であれば普通の授業の単位も取らないと行けないためゲーム関連に割ける時間は少ないでしょう。
どちらにせよ、ただでさえ人気職のゲーム業界に新卒で入ろうとすると
それなりの努力と作品作りにかなりの時間を割く必要があるため数学に割く時間は最低限にする必要があると思っています。
ちなみに2年制の専門学生は入学から6ヶ月でプログラム・数学を叩き込んで、作品つくり半年、卒業の1年前から就職活動という鬼のようなスケジュールになるので尚更急ぐ必要があります。
実例:新卒採用の難易度
私が就職したときはリーマンショック直後だったので就職氷河期真っ只中のこともありましたが私が在籍したゲーム学科は40人程度だったと思いますが、ゲーム系にいけたのは2名のみです。
OBとして学校に話を聞いても、多くて年に5人いれば良い方だそう。
2020年現在は転職も活発で人手不足、Unityも出て、簡単にゲームを作れるようになったので
以前よりは簡単かもしれませんが、難しいことには変わりが無いようです。
ちなみに就職活動は運要素はなく、技術・コミュ力など総合力が高い人は内定をたくさんもらって苦手な人は内定が全くもらえないことが多いように感じます。
私もそうでしたが不景気で仕事がなくても有望な人は採用されている印象です。
私やゲーム業界入った人は知り合いも何社か受けて、ほぼ受かってました。
「欲しい人はみんな(どの会社)も欲しい。」ということだと思いますので運には頼らず確かな実力をつけていきましょう。
あと一点よくある学生の勘違いですが
ゲーム業界だからといってただのゲームプレイ好きを雇うこと絶対に無いということを肝に銘じておいてほしいです。
ゲームプログラマーに数学が必要か
ほかのWEB系やアプリ系のプログラマー職種は正直要らないと感じていますが
コンシューマなどのゲームプログラマーに限っては必要です。
学生時の決まり文句「どうせ使わないから要らない」が通用しない数少ない業界となります。
ただカジュアルゲーム、Unityプラグインのみで完結させている場合は
正直中身を知らなくても作れちゃうのが現状だと思います。
ただプロとして働く場合、契約関係でUnityを使えなかったり
あまり知られていないゲームエンジンやAPIのみ作らないといけなかったり
場合によってはフルスクラッチと呼ばれるほぼエンジンから作るケースもあります。
ゲームエンジンなどに依存した技術力だと正直フォローしきれない事が多いです。
なのでその根幹である知識。
数学や物理を知っていると環境が変わっても順応することができます。
必要な数学&物理の知識
ただ必要と言ってもすべてが必要というわけではなく。
主に「線形代数学」と呼ばれる分野が必要です。
難しい言葉を使いましたが、まとめると以下が最低限必要になります。
- 座標
- 三角関数(Sin,Cosなど)
- ベクトル
- 行列
- 初歩的な力学(物理)
これぐらいだと思います。
わからなくても学生の時に耳に挟んだことがあるかもしれません。
ひとまずフロントエンドのみでやっていく人であれば上記の知識で十分だと思います。
※フロントエンドエンジニア・・・ゲーム部分を作る人(難易度低)
※バックエンドエンジニア・・・システム部(描画、メモリ、ネットワークなど)を作る人(難易度高)
なぜバックエンドが難しいのか
当然グラフィック専任担当者やバックエンドでエンジン部分(ファイルアクセス、メモリ管理、ストレージ、通信周り、物理エンジン)を作ったりする人はそれなりの責任もあるため数学などの理論的な答えを持っておく必要があります。
その上、物理エンジンなどは流体力学と言われる分野、力学分野も幅広く知らないと務まりません。
またバックエンドの枠は少ないためなれる人は限られており、40~50代になってもフロントエンドをやっている人は多いです。
あくまで例ですが、私がスクエニに居た頃は大学教授の経験があり、博士号を持った方が担当していました。
それほど難しいセクションなのですぐになることは難しいと考えましょう。
またここで目指しているのはフロントエンドエンジニアとして業界に潜り込む事なので
その後、時間が確保できるようになってから勉強していけば良いと考えています。
数式が解ける≠数学が使える人
勘違いしないでほしいのですが、学生時のイメージのせいか数学の式を解けるのが数学できる人というイメージをお持ちの方が多いです。
ゲームプログラマーに限っては式はわからなくても
どう使うか、わかっていればプログラミングはできます。
逆に式が解けてもどう使うかわかってなかったら意味ないですよね?
そう、そういうことなんです!
当然、式を出来るに越したことはありませんが最優先ではありません。
必要になった時に勉強した方が良いと考えます。
めっちゃ簡単に数学物理について説明
いくつか書いてみたのですが、この記事に入れると多くなるので今回は省略することにしました。
本記事では「なぜゲームプログラマーに数学が必要か」にというのみに留めようかと思います。
ゲーム数学については随時ブログを更新していきますので
ご興味のある方はまた確認してみてくださいね。
現在執筆中…
おすすめの本
私も実のところ高校は底辺高校の底辺からの勉強を始めました。
専門学校に入学してから焦って勉強するまで、ほぼ数学ができませんでした。
入学時は式も解くことができませんでしたし、物理の「ぶ」の文字もわからないぐらいです。
ただ専門学校で学ぶ内容は初歩の初歩です。
正直あのペースで勉強していると就職に間に合わないと今となっては感じます。
たまたまではあったのですが、入学したばかりの頃からいきなりわからなさすぎて泣きそうでした。
※ちなみに専門学校は頭良い高校出身者とごちゃまぜなのでレベルの低い高校出身者は打ちのめされます。
そして数学がヤバすぎると、泣けなしのお金で購入したのがこちらの本です。
この本、私みたいに何もわからない人は数式の解き方などを調べる必要がありますが
ゲーム業界で最低限必要な数学、物理が詰まっています。
正直この本を一周して自身のゲーム開発に反映できればゲーム業界で飯は食っていけると思います。それぐらい必要な知識が揃っています。
本を普段読まない人は気合入れないと挫折するので「自分の人生を変えるターニングポイント」として取り組んでみてください。
それぐらいの覚悟を持ってやり遂げればゲームプログラマーとしての最低限の数学知識は得ることができるはずです。
ちなみに私は毎晩寝る前に1日1日1セクションずつ進めてすべての章を読み終えました。
一気に読む必要はないので毎晩習慣にして読んだり、練習問題を解いたりすると良いと思います。
最後に
今回は私の本職であるゲームプログラマーになるために必要な数学知識を紹介しました。
さきほど紹介した本は下記のように私の人生を変えた本であったと言っても過言ではありません。
- ド底辺高校のド底辺で絶望
- 専門学校から猛勉強(←ここで数学取り組む)
- 新卒でプログラマー採用
- リードプログラマーにアサイン→プロジェクト成功
- 英語できないながらも約1年英語留学(フィリピン、カナダ)
- スクエニに就職
- フリーランスとして独立
難しいとは思いますが、学生で時間のある方は一周出来るように頑張ってみてください。
ゲームプログラマーにとってあの本の知識は決してムダになりませんので。
ではここまでお読みいただきありがごうございました。
コメント