Epic GamesのシニアコンソールプログラマーJosh Adamsは、今週のGame Developers Conferenceでゲーム開発者をUnreal Engine 3の新しいiPhoneエディションに公式に紹介しました。
プレゼンテーションの多くは、EpicのWindowsベースのツールがiPhone開発キットのMacベースの「Xcode」ワークフローとどのようにインターフェースされたかに関するものですが、AdamsはAの作業モデルも示しました。非現実的なトーナメントAppleデバイスでレベルが実行され、開発者はデモが1秒あたり25〜30フレームのレートで更新されたことを確認しました。
Adamsは、UE3をiPhoneに持ち込むプロセスを「私たちはそれをすることができますか?」と説明しました。 Open GL ES 2.0に基づくプロジェクトは、iPhone 3GS、iPad、第3世代のiPod Touchなどの新しいAppleデバイスでのみ機能することを意味します。 UE3は、エンジンが必要とするプログラム可能なピクセルシェーダーをサポートしていないため、古いiPod TouchやiPhoneで動作しませんが、モバイルAppleファミリーのより速いデバイスが表示されると、Epicのエンジンは明らかに縮小します。
興味深いことに、プレゼンテーション中に、Adamsは、Epicが現在作業しているUnreal Engine 3を現在持っているサポートされていないプラットフォームの範囲を明らかにしました:Linux、Mac、およびNvidia Tegra 2(潜在的に潜在的にとても任天堂DS 2の噂が真実であることが判明した場合、興味深い)。
EpicのミドルウェアをiPhoneに変換することは、偉業ではありませんでした。エンジン自体は、16MBの実行可能ファイルの200万行のコードで構成されており、そのコードの90%がプラットフォームに依存していません。
エンジンのコア機能のほとんどすべては、技術のiPhone反復に残っています。同じゲームプレイ、衝突、数学ルーチン、さらにはファイル形式さえも使用されます。 Unreal Engine Editorに使用されるゲームメーカーは、iPhone用に開発する際にまったく同じWindowsベースのツールセットを使用しています。 EPICが変更しなければならなかった場所は、主にレンダリングハードウェアインターフェイス(RHI)にありました。これは、エンジンのレンダリングスレッドとホストプラットフォームのAPIの間の「薄層」です。
ジョシュ・アダムスはまた、非現実的なエンジンライト環境を説明しました。コードは、アーティストによって決定された静的および動的なライトを収集し、代わりに1つまたは2つのライトに変え、方向性、周囲、または球状の高調波ライトがすべてサポートされています。これは、アーティストによって多くのライトが設定されたり、ゲームプレイ中に動的に生成されたりすることで、レンダリングコストが非常に少ないという点で、iPhoneに最適です。
新しいコードは、iPhoneのユニークなコントロールに対処するために作成されました。タッチスクリーン入力を保存するバッファーが設定されており、新しいフレームがレンダリングされるたびに処理されます。チルト関数は、同様の期間で投票されますが、バッファリングなしで投票されます。 Adamsはまた、iPhone 3GSの磁力計がターニング情報を強化する手段と見なされた方法についても話しましたが、生成された入力が使用できないことが判明したため、却下されました。
Core Unrealエンジンレンダラーに加えられた変更は2つありました。まず第一に、Open GL ES 2.0へのシフトは(既存のオープンGLドライバーを拡張することで)収容する必要がありました。次に、モバイルチップセットがUE3の通常のターゲットプラットフォームよりもかなり強力であるという事実を考慮する必要がありました。
Unrealのシェーダーサポートは完全にオーバーホールされました。エンジンは何千ものシェーダーで動作し、5〜20のシェーダーは1つの材料にのみ使用されます。 Epicの解決策は、これらのシェーダーを単一のテクスチャに「自動フラット」することでしたが、PCエディターにプレビューサポートを追加して、アーティストが最終的なアートが画面上でどのように見えるかを見ることができました。
精度は失われますが(鏡面図と通常のマップのサポートと同様に)、効果は似ています。最終作業が非常に小さな画面に表示されるにつれて、品質の低下はそれほど明白ではありません。 Epicの通常のアートパイプラインは引き続き使用できます。ロードするテクスチャが少なく、明らかにモバイルプラットフォームでより速く実行されます。
ジョシュ・アダムスが特定した別の弱点は、Open GL ES 2.0自体にありました。ゲームは、オクルージョンのカリングを通じてレンダリングを最適化します - ユーザーには見えないポリゴンを殺します。閉塞クエリは現時点ではESでサポートされていません。つまり、非現実的なエンジンで作成されたレベルは、結果として小さくする必要があります。
今後、Epicは、iPhone、iPad、iPod Touchのデバイスが、新しいハードウェアリビジョンが市場に登場するにつれて、次第に強力になることを期待しています。新しいハードウェアは明らかにより多くのパワーを意味し、エンジンメーカーは、ある時点で鏡面および通常のマッピングをサポートすることを期待しています。
Epicはまた、Open Gl ES 2.0ドライバーの後の演出でOcclusionクエリの問題が解決されることを期待しています。これにより、より大きく、より複雑な環境が可能になります。 UE3の他のミドルウェアとの統合 - たとえば、GamespyやPhysxなどは、モバイル形式に移植されたときのようにiPhoneエンジンにも追加されます。
UE3のiPhoneバージョンが最初に発表されたとき、Epicは、明らかに最近発表されたiPadである「別のプラットフォーム」もサポートすることを明らかにしました。ジョシュ・アダムスはGDCの代表団に、Epicは現在iPadテクノロジーにアクセスしておらず、新しいハードウェアがテーブルにどれだけの力をもたらすかについての本当の考えではないと語った。
iPad自体は、iPhone 3GS内で見つかった同じPowerVR SGX535チップのより高度にクロックされたバージョンと組み合わせて、1GHz ARM A8 Cortex CPUを実行していると広く信じられています。 Epicによると、モバイルプラットフォーム上のUE3を使用したパフォーマンスのボトルネックは、ほとんどがCPUに由来しており、その結果、グラフィックチップは実際にはストレスを感じていません。
したがって、iPhone 3GSで持っていた短い非現実的なトーナメントデモは印象的に見えましたが、iPadアーキテクチャは、iPadの画面を大幅に解決した後でも、かなり急進的なパフォーマンスの増加を見る可能性があります。
2人のチームとの壮大な4人の作業が必要でした。非現実的なエンジン3をiPhoneに持ち込み、Tegra 2の仕事の驚きに基づいて、ミドルウェアを広くすることに非常に興味があることは明らかです。モバイルプラットフォームの範囲。 UE3がAndroidに向かっているかどうかを尋ねられたJosh Adamsはコメントを拒否しました...