「クローリング学習法」という言葉を聞いたことはありますか?
ひょっとしてご存知ない? ……いえ、聞いたことがなくても大丈夫です。なにせ今私が作った言葉ですから。
ゲーム開発の知識を手に入れる方法は無料、有料問わず様々な方法があります。色々と試してみてあなた自身に合った学習法を身につけていってもらうのが一番良いと思っています。
この記事ではそのひとつの方法として、無料で参照できる情報である技術ブログから知識を吸収する方法として「クローリング学習法」を紹介します。
この学習法は入門的な知識が身に付いて、自分でもゲームを作ったことのある人が実装の幅を広げる際に効果を発揮します。初心者がやるにはちょっと大変な方法なのでご注意を。
クローリング学習法とは
クロールといえば水泳の泳ぎ方のひとつ。英語のcrawlは泳ぎ方の他に、這う、蔓植物が一面に広がっていく、と言った意味があります。もしご自身でもブログを作成したことがあれば、Google社がサーチエンジンのインデックスを行う仕組みとしてのクローリングを聞いたことがあるかもしれません。
ここでは知識が蔓植物のように広がっていく様子や、Webサイトのページに順次アクセスしていく方法をイメージしてクローリング学習法を考えました。
クローリング学習法のやり方は至ってシンプルで、まず学習を行いたいブログを決めます。続いてそのブログの一番初めの記事を探し、どんどん現在へと進んでいきます。途中、関係ない記事もあるかもしれませんが、著者の思考の背景を知るためには大きなヒントになります。
ブログを書いている人は自分が興味を持っていることについて詳しく書くことが多いので、著者の背景情報を知ることで、どのような意図でこの記事を書いたのか、どのような意図でこの技術について学んだのかを知ることができます。
ソースコードなどはこうした土台があって生まれてくるので、著者の思考パターンや理想とする動作を追っていくことで、思考のトレースを行うことができます。これを元にソースコードを書き写していくと、意図と実装が結びついていきます。
対象とするブログの選び方
クローリング学習法の対象となるブログを選ぶことは大切です。なぜなら、そのブログの考え方を自分にインストールすることになるので、影響が大きいためです。
そもそも技術ブログの目的は知識を網羅的にカバーすることではなく、特定の分野について知識を深めて実装例を提示するものなので、入門書のように知識を広げるのには不向きです。
その上で技術ブログを選ぶなら、なるべく記事数が多く、ゲーム開発に大きな興味があって広い分野に渡って記事を書いているブログがおすすめです。
私がやっている別ブログで初心者におすすめしたいブログをまとめているので、こちらも参考にしてください。名前を出してしまいますが、「テラシュールブログ」さんがおすすめです。記事数の多さ、分野の広さが圧倒的で、かつ現在はUnityの中の人なので安心感があります。
クローリング学習法のメリット
クローリング学習法のメリットは以下の通りです。
- ゲーム開発の先輩の思考パターンをトレースできる
- 意図と実装が結びつく
- とことんやるガッツが身に付く
ゲーム開発の先輩の思考パターンをトレースできる
記事数の多い技術ブログを書いている人はゲーム開発の先輩であることが多いです。既にやっている人から学ぶ、というのは学習の基本中の基本なので、先輩の考え方を真似することが上達の近道です。
先輩が技術を身につけていく過程を追体験できるので、どういう点でターニングポイントがあったのかを知ることもできます。この部分はあなた自身の成長やブレイクスルーにもつながります。
意図と実装が結びつく
思考パターンをトレースすることで、何を実現したいからどのようなコードを書いたのか、というのを知ることができます。
プログラミングや開発は、まず先に「実現したいこと」があります。それを叶える手段としてプログラミングがあるので、願い事に対する解決手段を自分の引き出しとして知ることができます。
さらに効率よく実装するためのヒントもブログの中で語られていることが多いので、あなたの知識の幅が広がっていくと思います。
とことんやるガッツが身に付く
はっきり言います。クローリング学習法はめちゃくちゃめんどくさい学習法です。
何年にも渡って書かれた記事について全部目を通していくのですから、数週間ほど時間がかかるかもしれません。この間、あなた自身のゲームを作ってる時間もありますから、さらに長い時間がかかることでしょう。
「ゲームを作るのに疲れたから今日はいいかな……」なんて1日、また1日と休み、ついには「お気に入りに入れてあるから、また落ち着いてから再開しよう」なんて技術ブログのページを開いていたタブを閉じてしまう……なんてことはよくある話です。
とにかく時間がかかるし、めんどくさいんです。でもこれを乗り切るというのはかなりのガッツ。その時点でもう身に付いているといっても良いでしょう。
ゲーム開発はスマートなイメージがあるかもしれませんが、実際には泥臭い地味な作業が多いんです。こうした作業ではガッツが求められるので、やり切る力は本当に大切です。
クローリング学習法のデメリット
クローリング学習法のデメリットは以下の通りです。
- 網羅的な知識は得られない
- 時間がかかる
- 著者の思考パターンを読みきれないことがある
- 知識が古い可能性もある
網羅的な知識は得られない
技術ブログで勉強する場合は、網羅的な知識を得るのは難しいです。というのも、著者が経験し、かつ著者が書いたことからしか情報が読み取れないためです。
元々網羅的な知識を提供するというコンセプトでない限り、技術ブログでは特定の知識について触れています。目的が知識の深掘りなので、ブログだけ使ってゲーム開発の学習を進めるのはそもそも難しいんです。
時間がかかる
時間がかかるのが一番のデメリットです。メリットのところでも触れましたが、何年もかけて積み上げた記事をかたっぱしから参照していくので、数週間、場合によっては数ヶ月かかることもあります。
お金をかけた場合は投資を回収しようとする気持ちが働きますが、無料でかついつでもやめられる状況で数ヶ月かかる学習を行うのは精神的な強さが求められます。
著者の思考パターンを読みきれないことがある
著者が分かっている範囲のことは詳細に語られないことが多いので、内容を掴みきれないことがあります。入門者に向けて意図して書いてくれている場合はいいのですが、その時点の著者と同じレベルの読者に向けて書かれていることも多く、理解に時間がかかる記事もあります。
また、書籍と違って文章の校正や編集など、別の人の目を通して書かれているわけではないので、必ずしも内容の読み取れる文章になっているとは限らない点も考慮する必要があります。自分の発見した技術を伝えようと思考が先走ってしまうあまり、説明を数段飛ばして書いてしまうこともあります。
私もよくやってしまうのでこの点は気をつけないといけませんが……。
知識が古い可能性もある
ブログの著者の考えをトレースしていくためには古い記事から読んでいくのがいいのですが、技術的には古い情報を参照することになるので、現在のバージョンでは再現できないこともあります。
老舗のブログであればUnity5.xの時代の情報が残っていますが、一部読み替えて再現しないといけないこともあるため、完全初心者だと操作が分からなくなって進めなくなります。これもあって、中級者以上に向けた学習法としています。
その分、最新の技術に追いついたときにその恩恵を感じるという意味では、著者と一緒に感動を分かち合うことにもなるのですが、現在は実現すべきでない情報に触れるのはモチベーションが削られるので注意が必要です。
クローリング学習法は中級者以上におすすめ
上記のことから、このページで提案する「クローリング学習法」は中級者以上のゲーム開発者におすすめの方法です。無料で参照できるからといって初心者が最初からブログだけで勉強しようとするとおそらく心が折れます。
個人的には「入門書だけやる」「チュートリアルだけやる」「技術ブログだけで勉強する」のように知識を得る手段を限定すべきではないと思っています。自分の状況や段階に合わせて、適切な方法でゲーム開発の知識について学習していくのが良いですね。
最終的な目的地はあなたの理想とするゲームを作り上げることなので、その道具として知識をどんどん身につけていきましょう。