- 先日誕生日だったので実家に電話した
- おかんが出てきた
- おかんの友人の奥様の息子さんの話になる
- なんでやねん
- 中学3年で進学シーズンです
- なんかゲームプログラマーとかになりたいらしい
- けど情報科の高校とか嫌で工業高校がいいらしい
- あんたプログラマーでしょなんかアドバイスとかないの
■いきなり結論
ゲームプログラマーですか? もちろんなれます。続けられるのであれば。
なんだか世の中には 一万時間の法則 というものがあるらしくて、一万時間ほど経験を積めば大成できるらしいです。私も身に覚えがちょっとだけあるので、この一万時間というのはあながち間違ってないのではないかと思います。リンク先の lifehacking.jp さんの記事によりますと、
2年:10000 / (2 x 365) = 13.7 時間 5年:10000 / (5 x 365) = 5.4 時間 10年:10000 / (10 x 365) = 2.7 時間らしいので、こう考えることが出来ます。
- 一日 13.7 時間、365日、一日も休むこと無くPCの前に座ってプログラムを書いていられる!
- おめでとう、2年でゲームプログラマーになれます!むしろイチローにだってなれますよ!
- 一日 8 時間、一日も休むこと無く学校に通ってプログラムの勉強ができる!
- 3年間学校に通うとすれば、卒業するまで毎日やってもまだ6割程度。残りは自分で身につけるため、まだまだ勉強を続ける必要があります。
- 一日 2.7 時間、365日、一日も休むこと無く家に帰ってからプログラムを書いて勉強できる!
- それでも10年続ける必要があります。いまあなたが15歳なら、25歳です。5歳のときの自分、覚えてますか?
■でもちょっとまった
ただちょっと思ったのが、多分彼はゲームプログラマーという仕事を勘違いされているんじゃないかと。ゲームプログラマー = ゲームを作れる人、と思われているのではないかと。実際私も中学生ぐらいの頃はそうでした。
しかし現実は ゲームプログラマー = ゲームを作れる人 ではなく、 ゲームプログラマー = ゲームの一部を作れる人 です。まずこれに気づいて、この現実を受け入れることがすごく大事です。
これはものすごく当たり前のことなのですが、たいてい子供時代に夢見ているゲームプログラマー像にはこれが含まれていません。実際、面白いゲームを作るには、
- むちゃくちゃ面白いゲームのアイディア
- 超カッコイイグラフィック
- 2D
- 3D
- 爽快な音楽
- BGM
- 効果音
- そしてもちろんプログラミング
で、それではゲームプログラマーがやるプログラミングってなんなの、という話になりますが、一番地味です。どんな名作ゲームでもプログラマーが褒められることはまずありません。考えてみてください:
- このゲームは話が面白い
- このゲームはシステムが斬新
- このゲームはゲームバランスが絶妙で対戦が面白い
- このゲームはグラフィックが超綺麗
- このゲームのBGMはマジ燃える
じゃあ何が楽しくてゲームプログラマーをやるのか?
最高の自己満足です。プログラムを書くこと自体が楽しいのです。以上。
さて、どうしてわざわざこのような事を書いたのかといいますと、実は彼がなりたいのはゲームプログラマーではなくてゲームに関わる仕事の何かじゃないかと思ったからなのです。単にゲームが好きで、PCを使ってゲームに関わる仕事がしたいなら、いくらでも他に道があります。絵を書いたり、音楽を作ったり、シナリオを書いたり。いろいろ試してみて、一番自分が好きになったものを極めればいいのです。ですので心あたりがあるのであれば、プログラミングと決めつけずに絵を書いたり音楽を作ったりシナリオを書いたり、ああそれより何より大事、自分以外のゲームに関わる仕事がしたい仲間を探してみたり、いろいろやってみてください。どうすればいいかわからない?私はプログラマーであって絵を書いたり音を作る方法は全然知りませんが、 Google先生が知っています。 思いつく限りGoogle先生に100回でも200回でも聞けばいいのです。一日 2.7 時間、365日、一日も休むこと無くプログラムを書くのに比べたら屁でもないぐらいカンタンですよね?
■それじゃあプログラマーになろう
よし、これだけ脅してもまだ プログラマー最高!! とお考えのHENTAI諸君、ようこそ!それではさっそく10年間続ける方法を考えます。
- 楽をして楽しんで毎日続ける
- ほんの僅かでもわからないことがあったら即ググれ
- エライ人と仲良くなれ
- 英語は絶対に意地でも覚えろ
- 入門書を読む
そこで最初はまず楽しむことをおすすめします。F1レーサーだって、最初からいきなりF1マシンに乗ったりはしません。最初は普通の車やカートに乗ります。同じように、いきなり難易度激高のC言語をマスターするのではなく、楽をして楽しんで毎日続けられてしかもためになる、そんなプログラミング言語がいいですよね。いくつか私のおすすめをご紹介しましょう。
- Processing
- 本当におすすめです。ぶっちゃけこの言語だけで2Dグラフィックを使った簡単なゲームを作ることが出来ます。いちいち超面倒なrun loopの管理を自分でする必要もありません。そして使っていて面白い! http://akisute.com/2009/12/processing.html とか見ていただければ面白さが伝わるかと!Processingで何か色々作ってみて、遅いとか重いとかもっと難しいことがしたいと思ったら、DirectXとかバリバリ使ったものに挑戦すればよいのです。
- Python
- これは非常に地味な言語なのですが、プログラムのロジックやオブジェクト指向などを学ぶのに最適だと思ってます。なにより使っていて楽です。もっとも楽すぎてC言語に戻れなくなるかもしれませんが・・・
- HSP
- これも入門にはよさそうなのですが、使ったことがないのですみません、感想が出せなくて。
そこで三番目。エライ人と仲良くなれ。昔はそんなの絶対不可能でしたが、いまや Mixi Twitter はてな Facebook なんでもござれです。これらのサービスを使ってちょっと調べればHENTAIレベルの神プログラマの日々のつぶやきを簡単に見ることができます。テンション上がりますね。それにひょっとしたらHENTAIたちと仲良くなれるかもしれません。そうすればGoogle先生すら教えてくれない情報をお互いに交換し切磋琢磨することができるようになります。
中学三年生でプログラマーといえばやっぱり tefu 君をフォローするのがいいのかなと。
四番目。英語は絶対に意地でも覚えろ。これは英語が好きとか嫌いとか関係なく必須です。覚えてください。なぜかというとあなたの目の前にあるコンピューター自体が基本的には英語のような言語しか理解出来ないから(日本語もついでに表示できるよっていう程度に思っておけばよいかと)と、そのコンピューターの中身を作っている連中のほとんどが英語でしゃべっているからです。当然文章も全部英語です。今後もこの状態が変わることはまずないでしょう。なので意地でも覚えてください。どうしても嫌ならば、最後の手段。海外のゲームを買ってきて辞書片手に英語字幕のままプレイしてください。私はこれで覚えました。
最後、入門書を読みましょう。ぶっちゃけ私なんぞに聞くよりそのほうが何倍もいいです(これが言いたかった!)。でもどれを買えばいいかって?これが難しい。でも基本的にはGoogle先生に聞くか、エライ人に聞くかですよね?ここではひとつだけ私が最も好きな本を紹介しておきます。
ゲームプログラマになる前に覚えておきたい技術 平山 尚(株式会社セガ) 秀和システム 2008-11-15 by G-Tools |
セガの中の人が書いている本なので大変スパルタですが、非常にためになります。
■ゲームプログラマーに必要なスキル?
いままではとっかかりのところを説明しましたが、うってかわって仕事でゲームを作るにはこれぐらいのスキルが必要だろうというところです。私は本業がゲームプログラマーではないのでなんともですが、これぐらいは知っておかないとなーと思ってます。なので以下の項目は 好き嫌いかかわらず覚えなくてはなりません。
- プログラム言語系
- C
- C++
- 学問系
- 数学, 特に幾何学, 平面幾何は最低限必要, 3次元以上のものが分かれば嬉しい
- ベクトル
- 行列
- 三角関数
- 物理, 特に運動物理
- 英語
- 数学, 特に幾何学, 平面幾何は最低限必要, 3次元以上のものが分かれば嬉しい
OpenGLとかDirectXを含めていないのは、そんな低レベルなところを直接自分で触ることはまずないと踏んでいるからです。行列の概念さえ理解できていればゲームエンジンにお任せできます。
あと数学の授業は真面目に受けておいたほうがいいです。どこの学校の、文系でも理系でも何でもいいので、嘘でもいいのでうけておきましょう。どうせ細かいことまで覚えて居られませんが、キーワードだけ覚えておけば後からGoogle先生に聞くことが出来ます。私は数学をサボっていたせいで、この年にして勉強し直しです><
■まとめ
こんだけ書いておいて何なんですが、私ゲームプログラマじゃないんです!(キリッ
いや、 ゲームっぽいもの なら作ったことあるんですよ一応><
あ、そうだ、もし世の中のゲームプログラマになりたい中学三年生ぐらいのお子さんをお持ちのお母さん方が万が一
おしまい。