「Portal」をNINTENDO64に移植した開発者による解説動画が公開される
2007年にPCでリリースされ、その後Xbox 360やNintendo Switchにも移植されたアクションパズルゲームの傑作「Portal」をNINTENDO64でプレイできるようデメイク、つまりあえてレトロ風にリメイクしたYouTuberのジェームス・ランバート氏が、制作秘話を語る動画を公開しました。
How I optimized Portal to run on the Nintendo 64 - YouTube
今回ランバート氏が挑戦したプロジェクトは、単にPortalをNINTENDO64で遊べるようにするというもの。
ただの移植ではなく、NINTENDO64の振動パックにも対応させています。
以下が、ランバート氏です。
NINTENDO64のコントローラーを持って「Portal」のプレイを開始。よく見ると、メニューがスペイン語になっています。
まだ翻訳は完璧ではありませんが、字幕をさまざまな言語に切り替えることができるようになっているとのこと。
ランバート氏が本作の制作にあたって行ったことの1つは、コンパイラの最適化です。
コンパイラとは、コードをプログラムに変換するプログラムのこと。これを最適化することで、コンパイルやプログラムのビルドにかかる時間が短縮され、バグの特定も容易になります。
NINTENDO64版Portalをプレイしつつ説明するランバート氏によると、最適化によって発生するバグもあるので、最適化を有効にするのには不安もあったとのこと。しかし、幸いにも特に問題は起きませんでした。さらに、ランバート氏はコードにボトルネックがないかどうかを確認するため、処理が詰まっているところを特定する「プロファイリング」を行いました。
当初、ランバート氏は物理演算がゲーム処理に負担をかけていると予測していましたが、プロファイリングのおかげでレンダリングに時間がかかっていることがわかったとのこと。そこで、ランバート氏は見えているオブジェクトだけをGPUに送ってレンダリングするようにしました。
ところが、オブジェクトが画面に表示されているかをCPUにいちいちチェックさせていたので、今度はCPUが働き過ぎになってしまいました。
そこで、ランバート氏は境界ボリューム階層(BVH)という手法を導入しました。BVHとは、近くにあるオブジェクト同士を「境界ボックス」で1つのグループにまとめて扱うことです。
「境界ボックス」と呼ばれていますが、単にオブジェクトを詰めた箱というわけではありません。
「境界ボックス」はどちらかというと、複数のオブジェクトを収めることができる最小の箱だとランバート氏は説明しています。
これにより、境界ボックスをひとつチェックしてそれが視界内なら箱の中のオブジェクトをすべてレンダリングし、外側ならレンダリングを省略するという処理が実現し、パフォーマンスを犠牲にすることなくCPUとGPUの処理を最小限にすることができました。
ランバート氏はこの処理でフレームレートを大きく向上させることができました。動画では、再生開始から7分20秒のあたりで見ることができます。
そんなランバート氏にもテストチェンバー11は難しいらしく、解説しながら「こんなの不可能だよ」とこぼしています。
移植のもう1つのポイントが、振動パックのサポートです。
これにより、ポータルガンを発射するとコントローラーがブルブルと震えるようになりました。
しかし、振動パックには内部のピンの接続が振動で途切れて震え始めたら止まらないという問題があったので、対応には苦労したとのこと。
振動を止めるのに3回コマンドを送信するなどしましたが、うまくいかなかったので、振動させるべきではない時は1フレームごとに振動パックを止めるコマンドを送るという力業で対応しました。
コントローラーにコマンドを送るには、ただでさえ往復で約2ミリ秒かかります。これに振動パックの管理も加わったので、最終的に1フレームあたり約10ミリ秒、つまり各フレームの3分の1はコントローラーの管理に費やすことになったとのこと。
解説中に、光の粒子が不自然な挙動をして「新しいバグを見つけちゃったよ」とこぼすランバート氏。
コントローラーの話に戻ると、実際のところコントローラーの管理にかかる時間は待機しているだけのアイドルタイムだったので、ランバート氏はコントローラーのスレッドを分離することで、待機中はCPUを開放して別の処理を行えるようにしました。こうして、ランバート氏はNINTENDO64版Portalを振動パック対応ソフトにすることができました。
・関連記事
完全無料な傑作FPSパズル「Portal」のスピンオフ「Aperture Desk Job」プレイレビュー、Portalの世界観でドタバタ×奇想天外な展開を楽しむインタラクティブなノベルゲーム - GIGAZINE
1996年発売の「NINTENDO64」上でJavaを動かすことに成功 - GIGAZINE
ネットオークションでのNINTENDO64の売上が前年比200%超も増加している - GIGAZINE
NINTENDO64のゲームを解像度最大8倍にしてプレイできるエミュレーターが登場、プレイムービーも公開中 - GIGAZINE
「NINTENDO64のテストカートリッジ」に記録されていたデータが読み取られインターネットアーカイブで公開される - GIGAZINE
・関連コンテンツ