ホーム > VR > Making of Polybius: バスタブ曲線

Making of Polybius: バスタブ曲線

(ラマソフトblogより参考訳)

The Bathtub Curve http://minotaurproject.co.uk/blog/?p=452

統計分析の分野で使われるグラフがある。特に時間経過に伴う要素の故障率を示すのに使われるものだ。その形状からバスタブ曲線としても知られていて、素晴らしい名前だがワイブル分布というもので構成される。こうした形状のものだ:

bath1.jpg

これがPolybiusの開発とどのように関係しているのか不思議に思うかもしれない。失敗率の分析にはならないようにしたいとは思っている。この形状を取り上げたのは、ゲームの開発で通過する状態をよく表現していると思うからだ。(ゲーム以外のソフトウェアでもそうだと推測する)

私にとっての曲線はこうだ:

bath2.jpg

コーディングしている時の気分の曲線だ。とても冴えていて、朝起きたら一日のプログラミング作業が楽しみでたまらなくて、自分が作るものを作っている事自体が素晴らしい、という時がある。その状態を「最大groovosity」と呼ぼう。

逆にうまく考えが浮かばず、プログラミングもまったくうまくいかないように感じ、流れも見つからず、なにもしないほうがましだったのではと思うような時もある。この状態を「最低groovosity」と呼ぼう。

ここでのグラフはプロジェクトの時間経過とgroovosityの変化を示している。見て分かる通り、3つのフェーズがある。説明しよう:

Yayフェーズ。これが起こるのはプロジェクトのまさに最初だ。最初はノッている時期になる。何か新しいものに取り掛かり、熱意にあふれている。ゲームデザインの重要な基本要素が実装されていき、ゲームが動くようになる。毎日、自分の頭の中から飛び出したものが画面上に形を持ち、それにコントローラで触れることができるようになる。Yayフェーズでの仕事は楽に思える。とても楽しんでいるからだ。しかし時間が経過すると成果はスローダウンし、プロジェクトの終わりまでには恐ろしいほど多くの作業が必要だと感じるようになる。段々とgroovosityが落ちていき、歯を食いしばる次のフェーズがはじまる:

Gruntフェーズ。本当の「仕事」と感じるのはこのフェーズだ。最初のコンセプトの承認が降りてロンドンから戻ったとき、私は同時に、これから数多くの面も、敵も何もかも実装する必要があると実感した。それはまさにGruntフェーズのはじまりだった。Polybiusの面は、原則的にはシンプルだったとはいえ、それぞれ何日も作業が必要だった。パーフェクトで、爽快で、流れをとめるものを無くすには精密な調整が必要で、それには何度も何度もうまくいくまで繰り返し調整することが必要だった。そして作業はVRで行った。最高のVR体験にしたいと思ったからだ。そして自分の能力の最善を尽くしてVR酔いをなくしたいと考えていた。(これはPSVRヘッドセットの耐久性と快適性を試すことにもなった。毎日何時間も被って、数千回もヘッドセットの着脱をしたが、部品の消耗は感じなかった)

Gruntフェーズはつらい時期になりえる。プロジェクトが無限に引き伸ばされたような感じがして、シシュポスのような気持ちになる。UIやランキングボードのように、特に面白くないとはいえ必須の作業を多くこなさなければならない。そしてこのフェーズでは恐れや自分の能力への不信感が沸き起こる。ゴミのようなプログラミングしかできない日があり、作りたいものを作る能力が足りない自分がゴミのように思える。面のデザインがうまくいかず、お前はゴミのようなゲームデザイナーで誰もがお前のゲームを嫌うだろう、と自分に語りかけてしまう。そしてゲームが自分の希望していたようにはうまく行くことはなく、成功の見込みもない、という気持ちになってくる。

これは誰にでも起こる。これは普通のことだ。よくある言葉のように、キープ・カーム・アンド・キャリー・オン、平静を保って続けていくしかないのだ。

趣味の開発とプロの開発の壁は時にGruntフェーズにある。プロジェクトをはじめて、Yayフェーズを抜けて、Gruntフェーズに突入して大変な仕事が多くあることに気がつき、そこで別のこと、よくある例としては新しいプロジェクトのYayフェイズ、をするようになり道をそれてしまう人はよく見かける。それも悪くはない、特に学習中であったり、クリエイティブな楽しみを得ることを目的としているのなら。だから短いプロジェクトや「ゲームジャム」が楽しかったりする。Gruntフェーズに近づかずに、YayからPhewまで駆け抜けるからだ。

ただ、もし契約にサインするようになれば、Gruntフェーズを抜けるだけの持久力が必要になるだろう。そうした方向を目指すのであれば、これは大事なスキルだ。ゲームプログラマ志願者にとって一番大事なスキルは何かと、人に尋ねられることが時にある。私の答えはいつも「完成できること」だ。プロジェクトの一番苦しい時期で最低の気分になっても、他のことに逃げずに前に押し進む意志力こそが、プロの証だ。

この努力は報われるときが来る。いつしか、トンネルの向こうに光が見えることに気がつく。列車のライトではない。向こう側の終わりが見えてくる。無限に引き伸ばされた先ではなく、数ヶ月、数週間、それか何日かすれば、完成できることがわかるようになる。そう、Gruntの砂漠を越えて次のフェーズにたどりついたのだ:

Phewフェーズ。とうとうここまで来ることができた。残りの部分をまとめて完成させている。残りは数多くあっても、それを完了して行き、残りの仕事はどんどん減って、気分も良くなっていく。全体のまとまりを感じる。タイトル画面もメニューもすべて中身があり機能して、面は完成しバランスも良好で、ハイスコアテーブルも機能し、完成したゲームに必要な詳細部分も存在し、正しく機能している。作品が結晶化していき、最終的な輝く姿になるにつれて、groovosityレベルが上がっていく。

これはすばらしい体験だ。ここにたどり着くまでの努力に値するものだ。Phewフェーズの体験に匹敵するようなものはない。すべてを乗り越える不屈の精神を持っていたと自分を正当に誇らしく思える。Gruntフェーズのつらい時期に恐れていたほどひどいゲームではないと気がつく。(「自分のゲームがよくなったのは完成の一ヶ月前だった」と言っていた開発者がいた。私にもそうした経験がある。これはPhewフェーズの安堵の感覚から自然と来るものなのだと思う。)

ゲームを完成してリリースすることはゲームデザイナーのキャリアとしての重要なマイルストーンでもある。クールなアイデアとデモを友人に見せるというのはそれはそれで大事とはいえ、実際に製作して完成した作品を世界にリリースすることは、別物だ。これは素晴らしい体験で、一度でも完成させて自分には「出来る」と知れば、次からは少しだけ簡単になる。何度も完成できればできるほど、「完成させることが出来る」と完全に信じることができるようになる。どれほどGruntフェースでつらいことがあっても、どれほど自分自身の不安が自分を迷わせて道から外そうとしても、だ。

もちろん、実際のプロジェクトではこれほど悲観的な軌跡にはならないかもしれない。Groovosityの底でGruntフェーズを過ごす必要がないこともあるだろう。大抵は、まあ順調で中間のgroovosityかもしれない。上手くいかない日もあれば、いい日もある。ある日に実装した何かがデザインに命を与える火花となって、面を遊んでいて笑みが浮かぶようになり、こうなってほしいというゲームの方向を思い出させてくれるかもしれない。ただ、この曲線は一般的なものだ。最初はYay。仕事の主要な部分を押し通して実装するのはGrunt。そしてPhewはゴールへと続く素晴らしいフェーズだ。そうだ、私はゲームデザイナーで、本当に出来るんだ、と実感させてくれるフェーズだ。

ただ、この曲線にはさらに続きがある。家庭用ゲーム機でリリースしたい人に当てはまるものだ。どの家庭用ゲーム機でもほぼ変わらない。起こることは同じようなものだ。続きの曲線はこのようなものだ:

元の曲線のPhewフェーズの後にさらに2つのフェーズが追加されている。これは家庭用ゲーム機向けの開発に固有で、これから説明しよう。

Smeg(最低)フェーズ。血圧にとってはプロジェクト全体で一番ひどいフェーズだ。Gruntフェーズより一般的に短いとはいえ、意味もなく長いように感じてしまうところがある。私はこのフェーズを「リリースにおけるお役所仕事のフェーズ」とも表現する。大量の書類を書く必要があり、似たようなものを何度も書くこともある。ややこしい手順を通過する必要があり、わかりにくい製品やサービスのコードも扱い、スクリーンショットやビデオや、マーケティング向けのゲームの説明やメタデータも必要だ。(自分のゲームを最高に持ち上げる文を書くのはいつも居心地が悪い気がする)

それにサーティフィケーションも通過する必要がある。ああ、あの「楽しい」サーティフィケーション。良識ある開発者ならテストにテストを重ねて重要なバグは全部修正しているだろうからサーティフィケーションも悪くないのでは、と思っているかもしれない。全部問題ないように見えて、何も壊れたりはしないし、ゲームもいい感じだ。それでも、最良の努力の後でも一度は却下されることになる。複数回却下されることもあるだろう。(Smegフェーズのノコギリ波はそれを表している)ムッとして、イタリア語の罵倒も溢れてくる。このフェーズを生き残るには落ち着いて、こうしたことを思う必要がある:

サーティフィケーションをしている人間は、自分と同じものを探しているわけではない。

例えば以下のような問題を考えてみよう。どれが一番大事でリリースプロセスを止めてしまうようなものだろうか?

(a)面の途中で時々クラッシュすることがある

(b)時々自機が増えるべきなのに増えないことがある

(c)クレジット画面で商標テキストの一部が隠れる瞬間がある

開発者であれば(a)と思うだろう。クラッシュバグでゲームが台無しになるのは避けたい。(b)もそうだ、クラッシュではないとはいえゲームプレイに影響する。(c)は問題ない、誰がそんなことを気にする?

サーティフィケーションの人間は、この逆だ。クラッシュバグも報告される。ただ、自分でそれはもう修正している可能性は高い。頻度が低いクラッシュもテストで起こると報告されるが、一番深刻な問題とは考えられていない。

では、一番深刻なものとは?サーティフィケーションにとっては、(c)だ。コピーライトされた単語の誤用、正式名称とは違う名称の使用、そうしたものだ。自分にとっては些細なことに思えるものがサーティフィケーションでは絶対修正必須となる。これまででこうして修正必須とされたバグにはこうしたものがある:

  • 製品名で(R)の代わりに(TM)と書いていた
  • クレジットでシステム名を表記
  • 「右スティック」ではなく「右ジョイスティック」と表記
  • FINAL SCOREがサーティフィケーションの目にはANAL SCOREに見えた
  • d-padという言葉。d-padは使用してはいけない
  • ボタンという言葉を使わなかった

そうしたものがいろいろあった。何度もするうちに感覚はわかってくるとはいえ、それでもわかりにくいこともある。サーティフィケーションから差し戻されるとプロセスは一時停止し、やり直すまでに数日かかる。リストされたバグの修正が簡単でも(一番深刻なものでも自分とジャイルズが見つけるのにかかったのは20分だった。ほとんどはテキスト修正だった)、それでも苦痛に思えるようにリリースフェーズが伸びてしまう。

これは普通のことだ。やがては終わると心に刻もう。これは自分を苦しめたり足止めするためにあることではない。プラットホームホルダーは倫理的、法的な意味で物事を見る必要がある。特定のルールでチェックすることなしに数百万の人に古いコードを送り込むことはできない。たとえこのルールは自分たちには気まぐれで変なものと思えたとしてもだ。サーティフィケーションは、こうしたプラットホームで出すために必要なそうしたものだ。リラックス、落ち着いて。平静にやるべきことだと思おう。何度もしていけば修正作業も減ってくる。問題もただのテキストの修正になってくる。修正して、やりなおして、それから外で過ごそう。もう何ヶ月もGruntフェーズにいたのだから、外の空気を吸おう。

最終的にはSmegフェーズの対決を抜けてすべてが承認されて、家庭用ゲーム機開発の最終フェーズに入る:

Pubフェーズ。ゲームはとうとう家庭用ゲーム機でリリースされた。

そしてパブはYay、Grunt、PhewとSmegを抜けた後の終着点として自然だ。よくやった。ゲーム開発者としての袖章がまた増えた。ビールを飲んで、脳みそのシワをのばそう。

そしてまた遠くないうちに、もう一度すべてをやることになる。

 

広告
カテゴリー:VR
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。