元々はPS3向けに開発され、PS4の予定は無かったそうです。PS4版の開発決定からチームはどう動いたのか。元々はPS3向けに開発され、PS4の予定は無かったそうです。PS4版の開発決定からチームはどう動いたのか。リードプログラマーの厚考氏が語りました。「龍が如く」シリーズは、単一チームで開発が行われながら、ほぼ毎年新作が発売されている日本では稀有なフランチャイズです。いった内容が掲げられましたが、当初はPS4版は計画されていなかったそうです。最初の打診があったのは2013年春のこと。「PS3版から遅れても構わないのでHD版を作れないか?」とチームに打診があったそうです。当時はPS4は年末発売だと考えられていて、チームでもPS3版の後、本体の発売から2、3カ月後に用意しよう、というような雰囲気だったそうです。技術的な検証が行われましたが、64bitになっている点、グラフィックスAPIの世代の違い、PS3版がまだ開発中である点、などを除けば、性能的にはPS4の方が圧倒的に上であり、何より開発がPCベースで行われていたという点が安心材料でした。従って、まずPCでDirectX11/64bitのバージョンを開発し、それをPS4に移植するという流れが採用され、「なんとかなるだろう」という雰囲気で開発が始まったそうです。PS4に着手したのは6月初旬。当初は厚氏が一人で携わり、PCで、DirectX11/64bit環境で動作する形に移植が行われました。PS3はDirectX9ベースですが、DirectX11になることで幾つかの命令が廃止されていて、変更する必要があったそうです。64bit化においては、長年32bit環境でしか開発が行われてこなかったため、誤っているコードでも、32bit環境であれば意図せず動作が行えてしまう、というケースが散見されたそうで、これを潰すために、コンパイラの警告レベルを最大にして修正を行っていったそうです。シェーダーモデルも3.0から5.0に変更されていて、その関係で実現できていたものが落ちてしまった部分が幾つかあったそう。PS3ではシェーダーの静的分岐を擬似的に実現していましたが、PS4ではパフォーマンスに余裕があったことから動的分岐に変更。テクスチャ構文の変更もあり、膨大なファイル数を書き換える必要がありましたが、実装の大半が共通ファイル部だったため、事無きを得たそうです。7月中旬にはPS4版をPS3版と同時に発売することが決定。スケジュールがタイトになりましたが、下旬になってようやくPC版が初めて起動。一部シェーディングが崩れるなどの不具合はありましたが概ね問題なかったそうです。C++からClangに変わるため、MS拡張を意図せず使用していた部分で不都合があったほか。PS4とPCではlongのサイズが異なるというような躓きもあったそうです。動いたPC版(ただしイメージ)ただし、早くも8月初旬にはPS4版が起動する状態になり、PCからの移植では10日前後を要したという結果でした。ここまで厚氏が単独で作業に取り組んでいましたが、ようやく増員があり、本格的にチューニングに取り組むことになります。動作には成功したものの、25fps前後しかパフォーマンスが出なかったからです。ジョブの実行時間を分析したところ、4つのワーカーが動作しているうち、描画コマンド作成が全体の80%を占めていて(PS3版は30%程度)、ボトルネックになっていることが分かりました。PS3では長年の最適化の結果、かなり軽量化が進んでいたそうです。描画コマンドの作成に大きなコストがかかっていることが判明PS4版の最適化では可能な場合、描画を結合することでドローコールを削減したり、PS3では定数バッファの制限を受けていたスキンモデルを再構成してPS4に最適化を実施。これらの工夫で約10%の軽量化が出来たそうです。この時期にPS4版を発売することを正式に発表されました。するとPS4版に対する期待が高まり、何かしらの要素を追加する必要に迫られました。チームではゲーム内容をいじることなくプログラム作業で実現できる60fpsの実現を決めます。当時はまだ40fps程度しか出ておらず、30fpsであれば十分な形になっていましたが、大きなチャレンジが課されることとなりました。約60%の改善は「絶望的」(厚氏)として、並列化に取り組むことになります。20ほどあった描画パスを4スレッド化すことで50%程度の劇的な改善が見られました。処理の粒度にはばらつきがあり、不透明なOPAQUEの処理が重くボトルネックになっていることが分かりました。この処理を更に分割して並列化することで更に20%が改善。した最適化の結果、描画にかかける時間は34mmから14mmまで改善。11月7日に60fpsを見事達成することができました。最適化の結果その後は更なるチューニングを行い、ファイル読み込み時に瞬間的なフレームレートの低下が見られたため、この処理を別スレッドに移したほか、パフォーマンスに余裕が出来たため、遠方のモデルを高精細なものに差し替えました。メモリが大量に余っていたため、モーションやテクスチャの圧縮率を下げ、それでも余ったメモリは全てファイルキャッシュに使い、実に2.5GBのファイルキャッシュで快適なロードを実現することができました。厚氏はプロジェクトを振り返り、「かなり厳しいスケジュールでしたが、幾つかの好条件もありました。何より、優秀なスタッフに恵まれ、世代を超えたマルチプラットフォームを実現することができました」と話しました。維新』ですが、60fpsであり、モーションやテクスチャの品質が大幅に改善されていること、ロード時間もほぼ無いという、エンジニアリングの観点からゲームを大幅に改善することに成功した事例と言えそうです。当サイトに掲載の記事・見出し・写真・画像の無断転載を禁じます。Inc.人気ニュースランキングや特集をお届け...メルマガ会員はこちら。