数学の知識を活かそう
皆さんは学生時代に数学なんて何に使うんだよと思ったことはありませんか? 私はあります。こんなんだから私は偏差値50切ってる高校に入学してしまいました。
もう一つ質問です。ゲームを作りたくありませんか?
無駄だと思ったその知識、ゲーム制作で使えます。
せっかく身に着けたその知識、活かしてみませんか?
どこで使うの?
ゲームの内部は数学で成り立っているといっても過言ではありません。
様々なところで使えます。
例えば、
- ベクトル キャラクターなどの位置を示したり、動かしたりするのに使用
- 外積 ゲームに登場する3Dモデルに影を付けるのに使用
- 平方根や三角関数 距離を求めるのに使用
- 行列 3Dモデルを描画したり回転、拡縮、移動するのに必要
- クォータニオン 3Dモデルを回転するのに必要(行列より適している)
聞いたことがあったり習ったことがある項目が複数あると思います。
多くの人が学生時代に習い、必要ないと思ったものが実はたくさん使われています。
今はあんまり知識がなくても問題ないんですよね
先ほど色々なところで数学が使われていると書きました。
なので、知識がないと作れないんじゃないかと思うかもしれません。
昔はそうでした。昔は。
今は便利なゲームエンジンが登場しました。UnityとかUE(アンリアルエンジン)とかのことですね。
これらを使えば正直ベクトルさえ分かっていれば問題ないと思います。
行列などを扱う処理はゲームエンジンに組み込まれているため、正直わかっていなくても問題ないと思います。
エンジン開発者に任せとけば数学学ぶ必要ねぇじゃん。と思うかもしれません。
とりあえずゲームを作りたい方はそれでもいいかもしれません。
しかしせっかく学んだ知識、活かしたいですよね。
なので、エンジンを使わずに1から制作してみてもいいんじゃないでしょうか。
ゲーム制作初心者でもDXライブラリなどを使えば、ある程度は機能が用意されていますが、結構自分で実装する必要があるので、知識が役に立つなぁと実感できます。
めっちゃやる気があったらそれすらも使わずに開発してみてもいいかもしれませんね。
その場合どんな感じになるのか。続きは下で!
ゲーム制作用ライブラリ制作者のお話
適当に色々書く記事その1で私がゲームを作ることができると書きました。
ただエンジンを使っていないため、エンジンに実装されている機能も自力で実装しています。
今回はエンジンを使わずに自分で開発環境を整えて行うゲーム制作がどんな感じなのかを書いていきます。
一応ちゃんと作ってるというのを証明するためにリポジトリを載せておきます。
知識が身につく
エンジンを使わない場合、基本的には自分でエンジンの処理を実装していきます。
ゲームに登場するオブジェクトはどう管理するか、この当たり判定とこの当たり判定はどう計算すれば結果を求められるかなどを考えたり調べたりする必要があります。
結果実装力やゲーム制作の知識が身に付きます。
好きな機能を実装できる
自分で自由にいじることができるので、どんな機能でも自由に実装できます。
内部構造がわからなくてまずそこから調べないといけないから大変! という心配もありません。
欲しい機能をどんどん実装していきましょう。
ゲームの制作が進まない
エンジンを使わずにゲーム作るとなかなか制作が進みません。
作業量が増えるというのもあるのですが、それ以上に納得がいく開発環境を整えるのに時間がかかってしまうのです。
例えばゲームを制作しているとここが使いにくいと思ったりします。
そしてそれを実装したとします。
するとどうなるでしょう。仕様が変わってしまい、今制作しているゲームで大量のエラーが出てしまうではありませんか。
使いずらいままゲームを作りたくない、かといって修正するとゲーム側のプログラムの修正が必要になってしまう。
それが嫌になってしまい、なかなかゲーム制作に手が出なくなってしまいます。
まとめ
ゲームプログラマーを目指す場合、私みたいにライブラリを自作するまでいかなくても内部の処理がわかっていたりすると有利らしいです。
エンジンを使わずに作るのも個人的には楽しいと思うので、知識を身に着けたい方やゲーム制作がマンネリ化してきた方は私と一緒にエンジンを使わないゲーム制作をやってみませんか?