< Return to Video

ゲーム開発で語られない作業

  • 0:00 - 0:05
    やあ、僕はマーク
    磁石のビデオゲームを作ってる
  • 0:05 - 0:09
    このシリーズの目標の1つは——
  • 0:09 - 0:15
    ゲーム制作に必要なものについて
    本当の、透明な、ありのままの姿を見せることだ
  • 0:15 - 0:22
    つまり楽しくてワクワクする
    良い動画素材になるものだけを見せるわけにはいかない
  • 0:22 - 0:27
    例えば、メカニクスの試作、ステージの設計
    突然のデモ版公開とかだ
  • 0:28 - 0:33
    そして分かったのは、ゲーム開発には
    華やかじゃない作業がたくさんあるってことだ
  • 0:34 - 0:40
    例えば、メニュー、HUD、データのセーブ・ロード
    各種コントローラーの対応
  • 0:40 - 0:45
    設定の同期、進行状況の記録
    ステージの切り替えなどなど
  • 0:45 - 0:50
    こういうのは開発日誌や記録番組では
    あまり語られない
  • 0:50 - 0:52
    実際、とても退屈だからだ
  • 0:52 - 0:57
    でも誰かがこれを作らないといけない
    このゲームでは…その誰かは…
  • 0:58 - 1:00
    僕のことだよな?
  • 1:10 - 1:15
    さて、前回の動画で
    僕はキャラの操作性を完全に作り直した
  • 1:15 - 1:20
    その中でキャラ操作に関する設定を
    いくつか実装した
  • 1:20 - 1:26
    例えばボタン押しっぱなしの照準を
    オンオフの切り替え式に変えたり
  • 1:26 - 1:30
    全てのキーやボタンの配置を
    再設定したり
  • 1:30 - 1:33
    磁石の色を変えたりできる
  • 1:33 - 1:40
    これは使い捨てのテストステージでは問題ないが
    これらの設定をゲーム全体で機能させるには
  • 1:40 - 1:44
    何らかの方法でこうした設定を
    ステージ間でも同期させ
  • 1:44 - 1:48
    設定を HDD に
    セーブ・ロードできるようにして
  • 1:48 - 1:53
    プレイヤーがこれらの設定を
    設定する UI も用意する必要がある
  • 1:53 - 1:57
    で、あちこちいじった後
    これを思いついた
  • 1:57 - 2:03
    初めてゲームを起動してタイトル画面に入ったとき
    「設定管理器」を生成する
  • 2:03 - 2:08
    これは大量のコードがある非表示の GameObject で
    設定を記録したり
  • 2:08 - 2:12
    その設定を HDD に
    セーブ・ロードしたりする
  • 2:12 - 2:16
    この Object の名前は
    「ロード時に削除しない」
  • 2:16 - 2:22
    プレイヤーがゲームを始めると、タイトル画面が
    メモリーから削除されてステージに置き換わるが
  • 2:22 - 2:27
    設定管理器は
    臭い屁のように残り続ける
  • 2:27 - 2:32
    まだメモリー上にあるので
    新しいステージは設定管理器を見つけて
  • 2:32 - 2:34
    本質的には質問できる
  • 2:34 - 2:38
    例えばキャラは
    「今すぐ低感度の照準になるべき?」と聞き
  • 2:38 - 2:41
    磁石は「何色になればいい?」と聞き
  • 2:41 - 2:45
    パネルは「今すぐアクセシビリティ記号を
    表示したほうがいい?」と聞ける
  • 2:45 - 2:48
    僕がここで本質的にやったことは——
  • 2:48 - 2:53
    メタなゲームロジックと
    その時々のステージ設計の分離だ
  • 2:53 - 2:59
    今にしてみれば当然に思えるだろうが
    MVP の頃は絶対になかった
  • 2:59 - 3:03
    当時は、セーブ・ロードや
    ステージ遷移をやるコードを
  • 3:03 - 3:06
    各ステージに複製して使っていた
  • 3:07 - 3:12
    ゲームの一時停止メニューですら
    全ステージに複製していた
  • 3:12 - 3:16
    これはとても非効率で
    テストステージが重くなるし
  • 3:16 - 3:22
    階層に余計なものが増えるし
    これらの設定を変えるのが難しくなり
  • 3:22 - 3:25
    ステージ間で要素を管理するのが
    大変だった
  • 3:25 - 3:29
    この新システムのほうが
    ずっと賢い
  • 3:29 - 3:35
    だからこういう見えない管理器を
    もっと作ることにした
  • 3:35 - 3:38
    で、ステージ名を「遷移管理器」に送ると
  • 3:38 - 3:42
    そいつが現在のステージを消して
    新しいステージに置き換える
  • 3:42 - 3:48
    これは「音楽管理器」と上手く連携する
    まだ存在しない楽曲を取り出して
  • 3:48 - 3:52
    ステージの読み込みに合わせて
    フェードイン・アウトしてくれる
  • 3:52 - 3:55
    また「HUD 管理器」は画面の前面に描画する
  • 3:55 - 4:00
    チュートリアルの指示や
    状況に応じたボタンアイコンなどだ
  • 4:00 - 4:03
    もちろんコントローラーごとに
    表示が変わる
  • 4:03 - 4:10
    そして一時停止メニューと設定メニューを
    維持する「UI 管理器」を作った
  • 4:10 - 4:15
    確かにゾッとするほど醜いが
    今は機能だけに集中してる
  • 4:15 - 4:17
    将来キレイにするつもりだ
  • 4:17 - 4:23
    音響設計と同じく
    UI 設計は「未来のマークの問題」だ
  • 4:23 - 4:27
    未来のマークの問題が
    少し増えつつある
  • 4:28 - 4:30
    だがもう1つ作りたい管理器があった
  • 4:30 - 4:37
    MVP の場合、ゲームはステージ1から
    ステージ2、3というふうに進んでいく
  • 4:37 - 4:43
    そういう直線的なステージ進行が
    パズルゲームに最適なのかどうかは分からない
  • 4:43 - 4:47
    確かに『Portal』や『Inside』などは
    こういう形式だが
  • 4:47 - 4:52
    『Braid』『Stephen's Sausage Roll』
    『Baba Is You』などは
  • 4:52 - 4:54
    もっと自由な構造になっている
  • 4:54 - 4:58
    ステージを飛ばしたり
    パズルを好きな順番でやったり
  • 4:58 - 5:03
    過去に省略したパズルにあとで戻ったりできる
    僕はこれが好きだ
  • 5:03 - 5:09
    パズルの1つにお手上げになっただけで
    進行不能になるのは良くないと思う
  • 5:09 - 5:15
    それで非直線的なステージ構造を作りたいので
    こういう風にした
  • 5:15 - 5:18
    各ステージの目標は鍵の発見、収集だ
  • 5:18 - 5:23
    新しい「進行管理器」には
    ゲーム内の全ての鍵のリストがあり
  • 5:23 - 5:27
    鍵を1つ得るとそれを記録して
    そのデータを HDD にセーブする
  • 5:27 - 5:32
    とても単純なハブステージを作って
    色々なパズルに行けるドアを用意した
  • 5:32 - 5:38
    最後にある特別なドアは
    鍵を一定数集めた後に解除される
  • 5:38 - 5:43
    この数はゲームのバランスを調整するとき
    簡単に変更できる
  • 5:43 - 5:46
    あと調整とバランスと言えば
  • 5:46 - 5:51
    パズルの相対的な難しさに関する
    プレイヤーの意見に基づいて——
  • 5:51 - 5:56
    ステージの順番を
    簡単に変更できるようにしたかった
  • 5:56 - 6:02
    それでシステム全体は基本的に
    ステージのファイル名を経由している
  • 6:02 - 6:06
    ステージには「01 Lift 02」みたいな
    名前が付いていて
  • 6:06 - 6:10
    最初の2文字は
    ステージが属するハブを表し
  • 6:10 - 6:15
    最後の2文字は
    そのステージにある鍵の数を表す
  • 6:15 - 6:18
    そして関連する全てのシステムは
    ステージ名を読み取って
  • 6:18 - 6:22
    必要な文字列を取り出し
    そのステージがどこに属しているか調べる
  • 6:22 - 6:27
    つまりファイル名を変えるだけで
    ステージの順番を変更できる
  • 6:27 - 6:30
    これは超効率的だ
  • 6:30 - 6:33
    効率化に凝ったついでに
    ツールの話もしよう
  • 6:33 - 6:37
    僕が MVP で感じたもう1つのことは
  • 6:37 - 6:43
    ビルドと、特にステージ設計の試行錯誤には
    本当にイライラすることだ
  • 6:43 - 6:45
    例を挙げよう
  • 6:45 - 6:50
    この電磁石を少し短くして
    赤色に変えたい場合
  • 6:51 - 6:55
    僕は Area Effector の大きさを変えて
    ビームの見た目の大きさを変えて
  • 6:55 - 7:00
    粒子システムを移動させて持続時間を減らし
    粒子の色も変えて
  • 7:00 - 7:02
    ビームの色を変えて
    ドット絵の色を変えて
  • 7:02 - 7:05
    磁石のレイヤーを変えて
    バッファーゾーンのタグを変えて
  • 7:05 - 7:07
    Area Effector のコライダーマスクを
    変える必要がある
  • 7:07 - 7:11
    これをゲームのほぼ全てに
    やることを想像してくれ
  • 7:11 - 7:18
    何かを1タイル上に動かしたいとか
    ステージ開始時に閉じていたドアを開けたいだけなのに
  • 7:18 - 7:23
    そして僕が気づいたのは
    Unity はゲーム制作のツールではあるが
  • 7:23 - 7:28
    僕のゲームを作るためのツールではないってことだ
    だってそれは僕の責任だから
  • 7:28 - 7:32
    僕はツールとシステムを整備して
  • 7:32 - 7:36
    僕のゲームのコンテンツを
    量産できるようにする必要がある
  • 7:36 - 7:40
    それを念頭に置いて
    新しい電磁石パネルを作った
  • 7:40 - 7:43
    高さを調整する
    単純なスライダーがあり
  • 7:44 - 7:50
    このスライダーを上下に動かすと
    さっき話した全ての変数も自動的に変わる
  • 7:50 - 7:55
    このボタンも同様で
    赤と青、オンとオフを変更できる
  • 7:55 - 7:59
    要はゲーム内に変えたい要素が
    たくさんあるのに——
  • 7:59 - 8:02
    そのやり方が同じ手順の
    繰り返しだったら
  • 8:02 - 8:06
    1ボタンで全てを処理できる
    単純なコードを書いたほうがいい
  • 8:07 - 8:13
    そこで MVP の要素をさらに改善して
    より使いやすく効率的にした
  • 8:14 - 8:17
    例えばこの移動ボックスだ
    Unity の新しいなんかを使って
  • 8:17 - 8:22
    ボックスの始点と終点
    あと移動経路を表示させた
  • 8:22 - 8:26
    さらに定型の仕掛け専用の
    画面を整備したので
  • 8:26 - 8:30
    ドラッグ&ドロップでシーンに追加できる
    まるで『Super Magnet Maker』だ
  • 8:30 - 8:35
    あと MVP でもう1つ困ったのは
    Unity Event だ
  • 8:35 - 8:39
    Event そのものではない
    素晴らしい機能で、基本的にはこんな感じだ
  • 8:39 - 8:42
    例えばこの緑色ボタンのコードでは
  • 8:42 - 8:47
    ボタンが押されたとき
    「Unity Event を呼び出す」と書ける
  • 8:47 - 8:52
    その後、エディターに戻ると
    画面に単純な入力欄が表示され
  • 8:52 - 8:58
    シーンから好きな Object をドラッグするだけで
    基本的にはどんな機能も実行できる
  • 8:58 - 9:02
    それで緑色ボタンを押したら
    電磁石パネルが消えるようになった
  • 9:02 - 9:05
    パズルゲームにとっては
    とても強力な機能だ
  • 9:06 - 9:11
    だが階層の中から目的のものを
    探すのは少しイライラする
  • 9:11 - 9:18
    Photoshop 的なピペットでシーン内の
    Object をクリックできたら超最高だと思う
  • 9:18 - 9:24
    それで僕はネットでの自分の知名度を悪用して
    自分よりずっと賢い人に
  • 9:24 - 9:29
    僕が説明した通りのものを作ってもらったのだが
    素晴らしくていつも使ってる
  • 9:29 - 9:34
    この Unity アセットの GitHub リンクは
    動画の概要欄にある
  • 9:34 - 9:40
    パズルを簡単かつ効率的に設計できそうな
    ツールをたくさん用意したので
  • 9:40 - 9:44
    試しにパズルを作ってみようと思った
  • 9:44 - 9:51
    もちろんずっと効率的になったが
    この工程には厄介な部分や障害がまだあったので
  • 9:51 - 9:55
    それを修正して
    また試しに別のステージを作ってみた
  • 9:55 - 9:59
    それから別のステージ
    また別のステージを作ったら…
  • 9:59 - 10:01
    あることに気づいた
  • 10:01 - 10:06
    僕は裏で動いている
    システム管理器の艦隊を作った
  • 10:06 - 10:12
    僕はこのハブ構造全体を作ったし
    新しいパズルを4つか5つ作った
  • 10:12 - 10:16
    僕はうっかりビデオゲームを
    作ってしまったのか?
  • 10:16 - 10:17
    あらま!
  • 10:17 - 10:21
    面白いことに僕は新しいデモ版を作るつもりは
    本当になかったのだが
  • 10:21 - 10:25
    いま僕の HDD には
    90% のデモ版がある
  • 10:25 - 10:30
    これは効率的なツールが
    いかに強力かを示していると思う
  • 10:30 - 10:37
    これがゲーム制作を速く簡単にしてくれるから
    気づかないうちに何かを作ってしまう
  • 10:37 - 10:44
    だから開発工程の序盤で
    少し余分な努力や苦労をする価値はあると思う
  • 10:44 - 10:48
    ゲーム開発の主要部分でかかる
    多くの時間、労力、苦悩を
  • 10:48 - 10:51
    省いてくれるからだ
  • 10:51 - 10:56
    だがいずれにしてもこれは最高だ
    というのも、また MVP の話に戻ると
  • 10:56 - 11:01
    僕が対応すべき課題が大量にあった
    皆が好きじゃなかった点を挙げると——
  • 11:01 - 11:04
    キャラの操作感は
    信じられないほど悪いし
  • 11:04 - 11:08
    視覚言語にはイライラする矛盾が
    たくさんあったし
  • 11:08 - 11:13
    アクションと謎解きが混在していて
    遊び方に混乱する人もいたし
  • 11:13 - 11:17
    ほとんどのパズルは「アハ」という
    閃き体験に達していなかったし
  • 11:17 - 11:23
    多くのステージは乱雑でバグだらけで
    周期がリセットされるのを待たないといけない
  • 11:23 - 11:28
    そしてこのゲームは
    磁石が中心になっている感じがしなかった
  • 11:28 - 11:32
    そこでこの新しいデモ版
    『Untitled Magnet Game version 2.0』で
  • 11:32 - 11:37
    これらの問題を全て解決して
    皆がどう思うか確認するいい機会だ
  • 11:37 - 11:42
    だから君が itch.io に立ち寄って
  • 11:42 - 11:46
    このできたてのデモ版をプレイしてくれたら嬉しい
    そう、我慢できずに公開した
  • 11:46 - 11:51
    支援者だけじゃなく誰でもプレイできる
    PC と Mac 対応で
  • 11:51 - 11:54
    キーボードとマウスや
    色々なコントローラーでプレイできる
  • 11:54 - 12:01
    ぜひ一丁やってみて、この動画か itch.io の
    コメント欄に感想を書いてほしい
  • 12:01 - 12:06
    そしてまた戻ってきて
    新たな意見について一通り議論して
  • 12:06 - 12:09
    ゲームの次の方向性を考えようと思う
  • 12:09 - 12:13
    ご視聴ありがとう ゲームを楽しんでくれ
    またすぐに話そう
  • 12:13 - 12:18
    おっと、最後に GMTK Game Jam が
    2022 年も開催だ
  • 12:18 - 12:22
    7月15日に始まるから
    itch.io にアクセスしている間に
  • 12:22 - 12:27
    ゲームジャムにも登録しといてくれ
    また次回会おう
  • 12:28 - 12:29
    (字幕翻訳:Nekofloor)
Title:
ゲーム開発で語られない作業
Description:

more » « less
Video Language:
English
Duration:
12:53

Japanese subtitles

Revisions Compare revisions