『Cities: Skylines II』がリリースされたが、この待望のゲームのPC上での著しく悪いパフォーマンスについて、Unityの新機能が関与している可能性が示唆されている。この問題を深く掘り下げたフィンランドの開発者Paavo Huhtala氏が、ゲームのコードを手作業で分析し、そのパフォーマンスの遅さの原因を突き止めたのだ。
『Cities: Skylines II』は、2023年10月24日にPC版がリリースされたが、そのパフォーマンスの問題からコンソール版のリリースは2024年第2四半期に延期された。技術評論家の中には、このゲームが過去最悪の最適化されたゲームの一つであると指摘する者もいる。最新のGPUを使用しても、1080p(4Kではない!)の最低設定で60fpsを維持することが困難であるほどなのだ。
Huhtala氏の分析によると、パフォーマンスの問題の主な原因はUnityの新機能「DOTS」にあるという。
DOTSは、データ指向設計をゲームのアーキテクチャに適用することで、ゲームの処理を高性能にスケーリングすることを可能にする技術とパッケージの組み合わせだ。これは、Unreal Engine 5のNaniteに似た機能で、カメラやプレイヤーが近づくにつれてテクスチャやマテリアルの詳細レベル(LOD)を向上させ、遠くのテクスチャは高い忠実度でレンダリングする必要がないため、LODを低く保つというものだ。
しかし、DOTSが完成していなかったため、『Cities: Skylines II』の開発チームは、彼らが作成しているものとDOTSが本来行うであろうものの間を埋めるために、特別なソリューションを作成する必要があった。これが不適切な最適化につながり、必要のないモデルをレンダリングしたり、適切にカリング(表示範囲外のオブジェクトを描画処理から省くこと)が行われていなかったりしたというのだ。
Huhtala氏が発見した2つの主な問題は以下の通りだ。
- 一部のモデルにはLODバリアントがまったく存在しない。
- ゲームのカリングシステムがあまり進んでおらず、カスタムレンダリングコードは視錐体カリングのみを実装しており、遮蔽カリングはまったく行われていない。距離に基づくカリングはいくらか行われているが、ポップインを避けるために積極的ではないが、パフォーマンスには良くない。
これは、遠くにある建物が240pや非常に低い詳細レベルでレンダリングされるべきLODバリアントを持っているべきだが、カメラが近づくまで一つのLODバリアントしか持たず、常に全詳細でレンダリングされていることを意味する。
カリングに関する問題は、3Dレンダリングプロセスの早い段階で行われ、最終レンダリングに寄与しないオブジェクトやポリゴンを取り除くことを含む。不適切なカリング最適化により、多くのモデルとテクスチャがレンダリングされ、GPUに重い負荷をかけているのだ。
Huhtala氏は、これが開発者の技術的なスキルの欠如ではなく、設計決定の悪運と最適化と磨きをかけるための時間の不足によるものだと述べている。時間をかけて、チームがゲームのパフォーマンスを向上させ、コンソールバージョンを来年予定通りにリリースできるようになることが期待される。
Source
- paavohtl’s blog: Why Cities: Skylines 2 performs poorly
コメントを残す