『SCREW IT!』は、1980年代後半のテレビのクイズ番組を舞台にした、4〜8人で遊べるボイスチャット型パーティーゲームです。
プレイヤーはそれぞれ専用のブースに座り、一人称視点でゲームに参加します。
お題のカードが表示されます。例えば、「30秒以内にスープの名前をいくつ言える?」
すると、プレイヤーたちは自分がいくつ答えられるかを宣言し、その数字をどんどん競り上げていきます。
誰かが「そんなに答えられるわけがない!」と思ったら、赤いボタンを押します。
最後に宣言したプレイヤーはマイクの前まで歩き、実際に声に出して、その実力を証明しなければなりません。
その場でランダムに選ばれた審査員が回答を数え、他のプレイヤーたちが判定を下します。そして、お金が動きます。
答えを入力する人はいません。マイクに向かって実際に答え、それが成功したかどうかを決めるのは他のプレイヤーたちです。
この記事は、『SCREW IT!』が現在の形になるまでの開発過程を振り返るシリーズの第1回です。
開発初期から順番に、いくつかの期間に分けて紹介していきます。
今回は、8月の最初の3週間についてです。
ボイスチャットを使うゲームには、何よりも先に答えなければならない疑問があります。
「それ、Discordでやればよくない?」
私たちが出した答えは、ゲームそのものがプレイヤーの声に干渉するというものでした。
ペナルティカードによって、他のプレイヤーに聞こえる自分の声が変化します。
甲高くなったり、低くなったり、もっとひどい声になったり。
しかも、スープの名前を必死に思い出している、その真っ最中にです。
これをネットワーク越しに、許容できる遅延で実現できなければ、そもそもゲームは成立しません。
だから、プレイヤー用のブースを一つも作る前に、この機能だけを検証する使い捨てのプロトタイプを作りました。
マイクから音声を取得し、声を変換して、別のPCから再生する。
ただ、それだけのテストです。
ところが、初日から危うく頓挫するところでした。
使用していた音声SDK(Epic Online Services)には、送信する音声を加工できそうなフックが用意されていました。
C++では、実際に加工できます。
しかし、C#のバインディングでは、渡されるのは読み取り専用のコピーでした。
どれだけデータを書き換えても、実際に送信される音声には何も反映されません。
最終的に採用した解決策は、SDKにマイク音声の取得を任せないことでした。
自分たちでマイク音声を取得し、独自のエフェクト処理を通してから、加工済みの音声をSDKに直接渡すようにしたのです。
テストは成功しました。
そして、ゲームの残りの部分はすべて、この仕組みの上に作られていきました。
『SCREW IT!』は、ホスト権限型のネットワーク構造を採用しています。
各プレイヤーはコマンドを送信し、ホストが結果を判断します。
その後、各プレイヤーには、自分が知るべき情報だけを含んだゲーム状態が送られます。
これは単に、ゲームの進行を整理するためだけではありません。
『SCREW IT!』には、ブラフを使った駆け引きがあります。
例えば、秘密のサイドベット(追加の賭け)です。
確定するまで公開されない賭けの情報は、他のプレイヤーに送られるネットワークパケットには、そもそも含まれていません。
送られてこない情報は、覗き見ることもできません。
最初のコミットから、私たちには一つのルールがありました。
カメラの上に、UIを浮かべない。
メインメニューはブラウン管テレビです。
自分の机に置かれたブラウン管テレビには、自分自身に関する情報だけが表示されます。
赤いボタンの役割は、ゲームの進行状況によって変わります。
操作方法は、机に貼られたメモに書かれています。
その隣には、現在放送中であることを示すタリーランプがあります。
電話も置いてあります。
そして時々、番組のプロデューサーから電話がかかってきます。
良い話なのか、悪い話なのか。
電話に出るまで、それは分かりません。
スタジオの観客席に、32体のアニメーション付き観客キャラクターを配置しました。パフォーマンスへの負荷は測定できないほど小さかったのですが、観客たちはなぜか光り輝いていました。原因は色の設定ではなく、Emissionでした。
机の上の物を、他のプレイヤーに向かって投げられるようにしました。頭にきれいに命中すると、頭上に小さな「ZzZ」が表示されます。ここまで実装するのに9回のコミットが必要でした。そのうちの一つは、投げた物が当たったプレイヤーの体にくっついてしまうバグの修正です。
友達と簡単に遊べるように、ルームコードを実装しました。コードは標準でマスク表示されます。なぜなら、配信するプレイヤーもいるからです。
8月14日、ゲームは初めて2台のPC間で動作しました。
最初の2週間、スタジオは灰色でした。
3週目に、現在の『SCREW IT!』につながるカラフルなスタジオを作りました。
そして、その週の大半を「なぜこんなに暗いのか」という問題の調査に費やしました。
原因の一つは、私たち自身がスタジオを暗くしていたことでした。
たった1行のコードが、本来変換する必要のない環境光の色をリニア色空間に変換していたのです。
その結果、スタジオの大部分を照らしていた光の強さが、約7分の1になっていました。
もう一つの原因は、スタジオに設置した13個のライトが、すべて天井を向いていたことです。
8月21日、新しいスタジオでゲームが動きました。
8つのプレイヤーブースすべてが接続できました。
そして、あることに気づきました。
出場者たちが、全員逆方向を向いていました。
もちろん、修正しました。
開発ログ #2では、ゲーム内に登場するマシンについて紹介します。
アヒル撃ちのアリーナ、アーケードバスケットボール、そしてお金が舞うキャッシュブース。
これらがどのようにして「Challenge Time」というミニゲームパートになっていったのか。
次回は、その開発過程を振り返ります。
『SCREW IT!』は現在開発中です。
ゲームに興味を持っていただけたら、ぜひSteamのウィッシュリストに追加してください!
フォローすると、開発ログや新作ゲームの公開が通知されます