前回の Developing で― 僕はゲームエンジンの Unity を選んで その使い方を学び始めた だが今度は、自分の作品の アイデアを披露して… その制作に取りかかる時が来た でも、ゲームを開発するときは どこから手を付けたらいいのだろうか? これは死ぬほど重要な問題だと思う というのも これからお見せするように― 開発を始めるときに もし間違った方向へ進んでしまうと その企画が悲惨な結果になってしまうかも しれないからだ いまから説明しよう 「Developing - 開発過程」 Okay ゲームのアイデアの話から始めよう 僕が作ろうとしているのは… 覚悟して聞いてくれ クレイジー 2D 横スクロール ジャンプアクションゲームだ そうだ 独立系開発者はみんな 横スクアクションを作るところから出発してる だが僕にも相応の理由がある 僕はこの形式が大好きだし ジャンプアクションは、総合的に見れば 比較的簡単に作れる 少なくとも MMO とは違うわけだ 僕はこの形式のステージ構造や キャラ設計の動画をたくさん作ってきたし それが役に立つはずだ さて、これもまた… もう一度覚悟して聞いてくれ 独特なひねりを加えた ゲームにするつもりだ 僕の作品のアイデアは 磁力をもった主人公だ つまり、ある足場から反発したり 別の足場に引き寄せられたりする プレイヤーはボタンを押すだけで 極性を変えられる 実はこのアイデアは ここから着想を得た 『ゼルダの伝説:ふしぎの木の実 大地の章』だ このゲームでは「マグネグローブ」という アイテムを手に入れる リンクがある場所から反発したり そこへ向かったりできるようになる デカイ鉄球を拾ってパズルを解いたり 戦闘に使ったりもできる クールな仕掛けだが 多少の制約があるように感じる このジャンルや 俯瞰のカメラ視点や もちろん、ゲームボーイの 技術的制限によるものだ そこで僕は考えた… このアイデアを借りて、別の形式に 当てはめてみたらどうだろうか? テンポの速い 2D ジャンプアクションに 付け足すわけだ 『Celeste』や『Super Meat Boy』に似たやつだ 速さ、柔軟性、正確さのために 磁力を会得しなければならないゲームだ これが僕の構想だ そして今の問題は― どこから始めたらいいのか? ってことだ すぐに Unity でコードを 書き始めればいいのか? 急いで Photoshop で 何か絵を作ればいいのか? 物語の展開やキャラとかを 考えたほうがいいのか? どこから始めれば良いんだ? ぶっちゃけた話をすると これは僕が初めて作ろうとしたゲームではない 子供の頃からゲームの構想があって 人生のなかで時々― 色々なツールとかで そのゲームを作ろうとしてきた だが、僕がそういったゲームを完成させることは ほとんど無かった その原因は毎回同じだと思う 間違ったやり方で始めていたからだ ご覧いただこう このフォルダは僕の実家から 持ってきたやつで Game Maker’s Toolkit を始める数年前に 作ろうとしたゲームのメモや下絵や構想がいっぱい入ってる こいつは『Starcraft Ghost』の マウスパッドだ これ開発中止になったやつだろ? eBay に出品する価値があるかもな それでこれは『カーターの呪い』という 題名になる予定だった ツタンカーメンの墓を発見した有名な考古学者 ハワード・カーターのゲームだ 少なくともゲームのなかでは 古代エジプトの呪いを目覚めさせてしまって ゾンビやミイラ、古代エジプトの神々と 戦う羽目になる 何時間もかけてこういう絵とかを 描いていたのを覚えてる つまり…なんてオタク野郎だ! ともかく じゃあどうやって敵と戦うのか? 答えは…ピクロスをやることだ ピクロスとは、論理とマス目を使った パズルのことで…数独にちょっと似てる 任天堂はたくさんの ピクロスゲームを作ってる 僕は『Bookworm Adventures』みたいなゲームに かなり影響を受けた 画面下にパズルがあって、それを解くと 上画面の小さな戦闘シーンで敵にダメージが入る 僕のアイデアも同じで 下画面でピクロスをやって ハワード・カーターが上画面で 怪物と戦うという内容だ それで僕はすぐに開発に取り掛かった Codea という iPad アプリを使った iPad 用に iOS ゲームを作れるアプリだ 僕は以前、これで iOS 用のごく普通の ピクロスアプリを作ったことがあって コードは自分で書けるだろうと思ったが グラフィックは最高のやつにしたかったから すぐに Photoshop を起動して 素材や動きをたくさん作った Dropbox のフォルダにはドット絵の素材や アニメーションがたくさん保存されている 色んなキャラを大量に作ったし ハワード・カーターの 必殺技も作ったし 冒頭のカットシーンも作ったし メニュー用の大きな ワクワクするボタンも作った 僕は本当に、夢中で作った だが僕はあることに気付いた かなり重要なことだ この企画にかなり不都合なことだ ゲームは全然良くなかった! とても粗悪で、全然面白くなかった コードを書けば書くほど 開発すればするほど 何が問題なのかが分かってきた ピクロスは、この種のゲームとしては 深さが欠如してる 戦法も戦略も無いし、戦う敵に応じて 行動を変えることもできない 突き詰めると、この戦闘には 実体が無かった 上画面を丸ごと無視しても ゲームはそのまま成立する だってピクロスを 解いてるだけだから つまり戦う敵に応じてもっと難しくしたり もっと面白くしたりすることはできないし プレイヤーは同じことを何度も何度も 繰り返すだけというわけだ 僕が作ったのは、浅くて作業的で 退屈なゲームだった これを修正することも出来たかもしれないが 僕はその時点でボロボロですっかり落ち込んでいたから そこで全てを破棄してしまった それで僕は何を間違えたのか? これは何年も経ってからの後知恵で(何年も経った後に分かったことだが)… もう 10年近くになるが… 事の真相(何でこうなったのか)は、かなり明らかだ ゲームを作るときは、制作しなければならないものが色々ある 主なものは、音楽、アート、ゲーム設計、物語、そしてコードだ これらが平等だと考えるのは簡単だが 実際はそうじゃない 多くの場合「ゲーム設計」は対等ではなく 他の全ての要素が乗っかる基盤になる だから設計を間違えると 全体が崩壊してしまう バグの修正や、グラフィックを描き直すことはできるが ゲームプレイに根本的な欠陥がある場合 企画そのものが救出不可能になることがある 僕の失敗は ほぼこれだった 絵と動きにたくさんの時間を費やしてしまい ようやく「遊び」の部分に手を着けたときに、何もかもが欠陥だらけだと気付いた 要するに僕はグラグラする地盤に家を建てたくせに トイレが床から抜け落ちてビックリ仰天してるわけだ 恥ずかしいことに、僕はこの手の失敗を 何度もやらかしている 僕は独自の「手がかり自動生成システム」を搭載した ポイントクリック型の犯罪捜査ゲームを作りたかったが あまりに多くの時間を、物語や 時代考証に費やしてしまって そのシステムを実際に 設計する余裕がなかった また携帯ゲーム『Snake』に、現代的な 速いテンポの工夫を加えたかったが バグ修正と動きのコードを 完璧にすることにハマってしまい このゲームが面白いのかどうか分からないまま 飽きて燃え尽きてしまった だから僕は自作ゲームを 設計しようとするたびに 物語やグラフィックとかの他の要素を ゲームプレイよりも優先させてきた なんでだ? 結局のところ、かなり間違った 2つの誤解をしてたのが原因だと思う 誤解 1. は、ゲームは脳内では いつもクールな感じがしたから これを作ったら面白いだろうと 思い込んでしまったことだ 明らかにこれは間違いだった 誤解 2. は、作ってみるまでそのゲームが面白いかどうかは分からないという前提(思い込み)だ そのゲームの制作をひたすら続けていけば いつかそれが良いものかどうか分かる…と思うだろ? いや、これも間違いだった 今となっては答えは明白(自明)だから これを言うのはドン引き???なのだが 当時は明白ではなかった(簡単に気付けなかった) Game Maker’s Toolkit をやるようになって ゲーム開発の調査をするようになって 数十人ものゲーム開発者に取材して、その後で 大成功したゲームがどう始まるのか分かるようになった ゲーム開発者はいつもたくさんのアイデアを持っている 頭の中では驚くほど楽しそうに見える だが最良の開発者は、自分の脳みそが ひどい悪臭の嘘つき野郎だと分かってる ゲームのアイデアが良いかどうかを知る唯一の方法は それを作って試すことだ だがゲーム全体を作るのではなく 開発者が作るのは…「試作品」だけでいい 試作品とは、アイデアを具現化した 小さい断片的な実験台で そのアイデアが楽しいかどうかを ただ確認するために作られる こうした試作品は、通常 信じられないほど不格好で 未完成のアートや、簡単な図形や 他からパクったドット絵とかで出来ている バグだらけで壊れてることが ほとんどで― アイデアの構造を試すために 最低限必要な機能だけで出来ている ゲームアイデアが十分機能するだけのバージョン??? ??? それは楽しいか? 興味深いものか? それは追求する価値があるのか? ゲームの残りの部分を構築できる 強固な基盤になっているのか? これが僕のやることだ 今度はちゃんとやるぞ 僕は試作品を作ることだけに専念して 徹底的に自制心を持って(規律を守って) ゲームのアイデアを試すこと以外は 何もしないつもりだ 絵に関しては、ググった画像で やりくりする 音楽も物語も用意しないし 題名や主人公の名前も考えない まだ作ってもないゲームの アプリアイコンを考えることもしないぞ マーク、お前アホだな まだ Unity を勉強中だから、コードは 間違いなくバグまみれで壊れてるだろう だがアイデアがイケるかどうかは 十分確認できるはずだ ゲームの構造を試して、何が楽しいのかを 調べるただの遊び場だ それじゃあ、早速 Unity を起動しよう まず必要だったのは、左右移動と ジャンプができるキャラクターだ そこで右キーを押した時に リジッドボディ(剛体)に力が加わるようにした ここで既に不具合があって、幸先の良いスタートではなかったが、最終的には上手く出来た(対処できた) 次にこのシーンに磁石を置いて キャラが磁石へ引き寄せられるようにする必要があった これを実現させるには、自分が 熟練プログラマーになる必要があって 僕は自分の銀河系脳みそコード技能を駆使しなければならなかった それで指の柔軟をしてから 次のような文字列を入力した 「リジッドボディを他の物体の方へ動かす方法」 Okay これをググって、コードを見つけて 僕のゲームに貼り付けた だが確実にその仕組みを理解しておいた 要は、キャラと磁石の間の方向を検出して リジッドボディに加える力をその方向にするわけだ また磁石に近付くにつれて速度が上がるように コードを微調整した 次に、ボタンを押して磁力を消せるようにした これで思惑通り、キャラの移動速度が維持され 空中へ飛ばせるようになった つまり、ここに足場を置いとけば キャラを磁石で引き寄せてから 磁力を消して ここへ飛び乗れるというわけだ これはかなり良い感じだが 制御するのはちょっとむずかしい このコードは完璧じゃないから すぐに手に負えなくなる だがこれを調べてるうちに Unity で本当に便利なやつを(偶然)発見した これはポイントエフェクタと呼ばれる 組み込みコンポーネントで 簡単に言えば 磁場を作ってくれる なんでこれを見落としたのか分からないが こいつのアイコンはただの磁石だ その仕組みはこうだ GameObject にコライダー(当たり判定)と ポイントエフェクタを付けて― 引き寄せる強さを設定する リジッドボディがコライダーの中に入ると 磁場の中心に引き寄せられるようになる Unity のレイヤーマスクを使って 特定の物体だけを引き寄せることもできる これでゲームが格段に作りやすくなるのは 間違いないから 試作品を作り直すことにした