「ゲーム」を作りたいのだけれど...
「よしっ!プログラムを勉強したぞ!・・・さて何を作ろうか。」という段階になって、「・・・作りたいものがない。」という人もたくさんいるのではないでしょうか。
そもそも、プログラムを勉強し始めた理由が「おもしろそうだったから」とか「なんとなくできたら仕事で使えるかな」といった、特に目的を持たないでプログラムを勉強し始めた人が陥りがちなパターンです。
そんな人から受けたある相談。
それは「ゲームを作りたいんだけど」というもの。
さて、ゲーム作りに必要なものとは?
ゲーム作りのアイデア発想法
ここからは相談を受けた相手「二郎」くん(仮称)とのやりとりの中からゲーム作りに必要なものを見ていきたいと思います。
二郎:「あの〜」
自分:「ん?なに?」
二郎:「ゲームを作ろうと思ってるんですけど。」
自分:「どんなゲームを作りたいの?」
二郎:「え?どんな??」
自分:「何を作るか決めないと作れないでしょ?」
二郎:「あ〜。・・・」
ということで、「なんのゲームを作るのかを決める」。
これが一番初めに必要なことなのですが、「斬新でユニークなゲーム」を作るとなると、「何を作るのか?」を考えるのに、かなりの時間を要することになります。
プログラマが弱いのは「マーケティング・企画・提案力」です。
「どのようなゲームが市場で受け入れられるのか?」を考えることは、これらの能力を修練することにもつながります。
一見「これまでに無い新しいゲーム」に見えても、これまでにリリースされている要素の組み合わせを変えたり、新しい機能を追加しているものがほとんどで、「根本から新しいゲーム」はほとんどありません。
そのため、これまでにリリースされたゲームの要素を分解していき、新しいものに組み替えるだけでも、「新しさ」を感じてもらうことができます。
例えば、これまでにもたくさんリリースされている「恋愛系ゲーム」に、VRを追加すると没入感が増して、よりリアリティを感じることができるかもしれません。
このように、たくさんの組み合わせをリストアップしていくとこれまでに無い新しい組み合わせのパターンのゲームを作ることができます。
- 恋愛 + VR
- クイズ + 運動
- シューティング + 車
- アクション + AR
- 迷路 + オンライン対戦
これらの組み合わせから一つ選び、ゲームを作るという方法も有効ではないでしょうか。
他にも、「マインドマップ」「フィッシュボーン図」などを作成してアイデア出しを行うという方法もあります。
アイデアを出す時に大切なのは「実現できるか?」は気にしないで自由に発想していき、後ほど実現可能かを考えることです。
「こんなことできるの?」という多くの人の実現可能性の外にあるものが「斬新性」を生み出します。
ゲームプログラミングに必要なスキルとは?
ゲームを作る際に避けて通れないのが「グラフィック」を描画する方法を身につけることです。
プログラムから、グラフィックの「位置・表示角度・透過度」などさまざまなパラメータを制御していく必要があります。
グラフィックの位置を変化させるためには、「どの方向にどれくらい移動するのか」をプログラムで計算していく必要があります。
二郎:「あの〜」
自分:「ん?なに?」
二郎:「ゲームを作るためには具体的に何が必要なんですか?」
自分:「オリジナルキャラクター」を作るなら、キャラクターデザインのスキルも必要だし、キャラクターの画像を動かしたいなら、座標計算の知識も必要になるよ。
二郎:「それって難しいんですか?」
自分:「三角関数がわかれば大丈夫だよ。」
二郎:「げげげ!?三角関数・・・」
自分:「SINとかCOSとかTANとか、頑張って思い出しながら取り組んでね。」
二郎:「あ〜。でっかくてぶ厚い壁が目の前にある気分・・・」
数学が得意でない人は、二郎くんのような気分になってしまうのも当然ですが、2次元のキャラクターを移動させるだけなら難しい計算は必要ありません。
極端な表現をすると、公式さえ知っていて、どのような値を入力するとどのような値が得られるのかを知っているだけで、キャラクターを移動させることはできます。
しかし、理論を学ぶことで、独自の表現を行うことができるなど「応用力」のあるプログラマになることができますので、座標計算理論について学習しておきましょう。
多くの場合は、「物理計算ライブラリ」を利用することになると思いますが、「衝突判定」についても学んでおくと良いのではないでしょうか。
さまざまなプログラマがゲームの作り方を公開していますので、ソースコードからもぜひ学ばせてもらいましょう。
ゲーム作りのみならず、プログラミングには経験を積むことが大切ですので、ゲームの開発要件が決まったら、どんどんプログラムを書いてみてください。