Unityでインディゲームを作る!

Unityでのゲーム制作を目指し、それに関わる話題についてのブログ

ゲームエンジン・アーキテクチャ感想![書籍レビュー]

f:id:miur-us:20190927214836j:plain

 世界トップクラスのゲームスタジオである、ノーティドッグ所属のジェイソン・グレゴリー氏が、現代のゲーム制作に欠かせないゲームエンジンの構造についてまとめた一冊です。
 

 ゲームエンジンの全体像、そこに含まれる様々な技術や知識について包括的に解説されており、結果的にゲームにはどんな機能が求められるか、ということを俯瞰的に学ぶことが出来る本にもなっています。  

 

 AmazonKindleにて一章を丸ごとサンプルで読むことができ、本ブログでも以前、サンプル版の感想を書いています。

 

 二年も前の話ですが、まず電子書籍版のサンプルを読み、その後、購入して一回通して読んで・・・これも一年前の話です。そして、最近また読み返し、ある程度読みこなせるまでになったな、と思ったのでようやく本格的な感想、レビューを書く運びとなりました。

 

 触れるべき内容はたくさんあるのですが、自分では扱いきれない部分もあるし、書ききれない、というのもあるので詳しくは各人読んでみてください、としておきます。今後の記事中で各々引用して活用できればなと。

 

Unity使いも読む必要はあるのか?

 本ブログのテーマとしては、ここは大事なところです。Unity使いも読むべきか。結論から言うと、読んだ方がいいと思います。

 この本はかなりの広範囲のトピックに渡り、入門書とは言え、浅くはないテキストが多く含まれています。これからUnityを使おうとする人にとっては、ハードルが高く、情報過多かもしれません。

 しかし、ゲーム制作への根本的な理解を深めたいのならば、少なくとも目は通しておくべきだし、出来れば手元において置くべき一冊です。(とは言え、自分はKindle版だけど!)

 

 単純にUnityを使うだけなら、特に知る必要の無い情報は確実にありますし、ゲームエンジンがテーマに関わらず、Unityの名前は出てくるにせよ、アンリアル・エンジンに比べるとほぼ名前が出てくる程度でUnity自体の詳しい解説などもあるわけではありません。(初版が出た頃はUnityもまだまだ発展途上でしたし、ほんとに触れる程度)

 しかし、本文中で解説されるように、世にある多くのゲームエンジンというのは本質的には同じような構造になっており、つまり、この本に書かれていることもやはり、Unityに少なからず通じているわけです。(とはいえ、近年のUnityは急激な進化を遂げているのでカバーできない要素は今後増えていく?)

 

 実際に直接的に役立つ知識もそれなりにあるので、決して無駄にはならないのかなと思います。一回通して読みきるだけでも大変な大著ではありますが。

 

だからこそUnityを使おう!

 ゲームエンジンとは制作ツールであり、かつ実際にゲームを駆動させるソフトウェアです。様々なサブ・システムが統合された総体システムで、その技術や知識は多分野に渡り、それらを一人の人間が把握するのは、ほぼ不可能なのではないでしょうか。

 

 だからこそ、現代のゲーム制作は分業制によって成り立っているのだし、継続して再利用可能なゲームエンジンというものが必要になってくるわけです。そうです、この本を読めば、いかにUnityがありがたい存在かを実感することが間違いなく出来ます。この本の中で分からないこと、自力では出来ないことがあっても、Unityがなんとかしてくれる・・・!かもしれない!

 

 完全に理解し、読破するというのは難しいのかもしれません。(自分も出来ません・・・)しかし、何も分からずにUnityを漠然と触るのか、それとも自分の無知を分かった上で、Unityの機能及びアセットを活用して補おうとするのでは問題意識が異なるし、効率も違ってくるはずです。

 実際、ああいうことをするにはこういうアセットが必要だなーというような検討が付けやすくなった気がします。

 

Unityを使う上での基礎知識

 Unityも特に最近、初心者向けのチュートリアルにチカラを入れており、英語版ですが、短い時間の中でコンパクトに学ぶことが出来る、スクリプトに関する動画シリーズがスタートしています。

 しかし、残念ながらネット上の情報は、公式でさえ断片的なものになってしまいがちです。そして、Unityの解説はあくまでUnityの使い方であり、普遍的なゲーム制作のための基本知識をきちんとカバーしているかというと、まだまだそこまではカバー仕切れていないと思います。

 

 例えば、デルタ時間とは何?マテリアルとは?ノーマルマップって?シェーダーって何?、リジッドボディって?というようなことを学んでいくのには、きちんとした学校でゲーム作りを学んでいる人はともかく、体系立てられたテキストが必要なはずです。 

 

結局は数学なのだ

 この本は最終的には、ゲームを作るにはやはり数学が大事なのだ、という事実をも突きつけてくれます。三角関数微分積分複素数など。ムリゲー!!

 

 だけど、まぁ最低限の数学はなんとかするしかないな、という気にはさせてくれます。

 

プログラミング(コーディング)はほぼ触れてない

 この本のテーマはゲームエンジンであり、ゲームに必要な様々な機能を分野ごとに解説していく、という内容です。なので、いくつかの有用なサンプルコードは含まれているにせよ、基本的には、具体的なコーディングの実践についての知識はあまり載っていません。

 実践的な、をどう捉えるかは難しいですが、しかし、データ構造やCPUの仕組みについてそれなりに詳しく触れられてはいるので、教養の方に重きが置かれている、という感じでしょうか。

 

 Visual Studioなどのコードに対するツールの使い方などについては、かなり解説してくれているので、そうした補助的な情報はありがたいのです。なので、プログラミングに関してはヒント程度なので、コーディングに関して学ぶ場合は別の書籍は必要になるかと思います。 

 ただし、C++や、オブジェクト指向についての解説はそれなりのスペースを取ってやってくれています。

 

翻訳について

 日本語版を読んだのですが、かなり自然な柔らかい文章なので、翻訳版の専門書にありがちな読んでてとにかく苦痛ということはないです。内容の高度さから来る困難さは別として。ただし、何度か読み返すと、やはり複数人による共同翻訳なので、テキストの統一感やトーンがややブレている気もしてきていますが、そこは翻訳書の限界ですね。ともかく翻訳は高水準になっております。

 

 っていうか、英語版って読んだことないな、どんなんかな、ともこの記事を書いているときに調べたら・・・ 第三版、去年末に出てました!!

 

これは実本での購入を検討中。

 

まとめ!

 というわけで、本気でゲームを作りたいなら読んでおいて損はないんじゃね?と素人ながらに思った、という話です。

 この本から得られた知識に関しては、今後の記事において引用という形で活用できればいいかなーと考えとります。