コンソールゲームのPCポートは、1〜2か月後に出てくることがよくあります。どうしてこれなの?
ゲームもPC上でコンパイルする言語で記述されているため、ゲームロジックは問題なくコンパイルされるはずです。当時の彼らは何を抑えているのでしょうか?それはレンダリングコードですか?
コンソールゲームのPCポートは、1〜2か月後に出てくることがよくあります。どうしてこれなの?
ゲームもPC上でコンパイルする言語で記述されているため、ゲームロジックは問題なくコンパイルされるはずです。当時の彼らは何を抑えているのでしょうか?それはレンダリングコードですか?
回答:
PCポートに時間がかかる理由はいくつかあります。(どこかで自分自身を繰り返しているように見える場合、私は謝罪します;これはその場で書かれているようなものです。)
コンソールでプレイしているとき、ユーザーが持っているのはゲームパッドだけなので、これだけではできることに一定の制限があります。
キーボードのキーとコントローラー入力の間に1対1のマッピングを作成するだけでは、常に可能とは限りませんが、良い解決策を見つけるのに時間がかかる場合があります。
Wii U向けに開発する場合、Wii Usはすべて同一であるため、Wii Uの動作を正確に把握できます。これはPCには当てはまりません。多くの異なるグラフィックカードとCPUを使用しており、それらの一部で動作しない場合があります。これらのバグを発見するには多くのテストが必要であり、修正にも時間がかかります。
エンジンを使用してPCバージョンを作成したことがない場合は、それに応じてハードウェアアブストラクションをコーディングする必要もあります。一部のゲームは、複数のDirectXバージョンと Linux / Mac向けのOpenGL をサポートすることを望んでおり、それがまだ行われていない場合、すべての作成に時間がかかります。
コンソールでは、ゲームはリソースなどについてOSと競合する必要はありません。バックグラウンドで大量の処理が行われるわけではありません。
PCでは、OSが実行されており、バックグラウンドプログラムが多数あります。これは、期待したほど大きなシェアを獲得できないことを意味します。これは、特に低価格のシステムのプレーヤーに対して、追加の最適化を実行する必要がある場合があることを意味します
コンソールでは、ターゲットが固定されているため、そのターゲットに一致するシェーダーなどを記述します。
PCでは、一部のグラフィックスカードがより高度な機能をサポートしているため、より優れたシェーダーを使用したい場合があります。それは、そのシェーダーを作成する必要があることを意味します。
Console SDKには、PCに簡単にマッピングできない便利な機能がたくさんある場合があります。たとえば、ハードウェアタイマーや優れたサウンドAPIへのアクセスを提供する場合があります。
これらは通常、PCでは使用できません。これらのことを達成するために他の方法を使用する必要があり、それがプラットフォームの違いを抽象化する方法を変えるかもしれません。
単純な理由は、コンソールにはコンソールごとに同じ単一のハードウェアセットがあるためです。
XBox、PS3、およびWiiはすべて、隣接するXBox、PS3、およびWiiと同じハードウェアを備えています。ただし、コンピューターのCPU、グラフィックカード、RAMの量、実際には構成とオペレーティングシステムの設定、インストールされているドライバーはすべて、他の人が持っていない完全に一意の組み合わせである可能性があります。
これにより、PCへの移植が難しくなります。最小システム要件以上の範囲内で、可能な限りすべてのハードウェアを考慮する必要があります。これは、プログラミングとデバッグが困難で難しいプロセスです。開発者がプログラムするすべての構成を知ることは非常に難しく、これらの構成でテストを実行することはほぼ不可能です。
PC向けに開発したら、開発者によって社内で大規模なテストが行われますが、数週間から数か月間はユーザーからのベータテストに依存することもあります。PCへの移植が正式にリリースされる前のベータプレーヤーを使用したテストのこのアウトソーシングが、通常、コンソールとPCのリリース日のギャップを確認する理由です。
コードを新しいプラットフォームに移植するには時間がかかります。Xbox 360用のナノ秒タイマー(XNAで開発したことがない)を作成するには、Linux、Mac、またはWindowsの同じナノ秒タイマーとは異なる実装が必要になります。ここで、移植が必要なこれらのタイプの関数が何百もあり、エンジンが十分に大きい場合は数千を持っていると想像してください。
新しいプラットフォームにこれらの異なる実装を追加するには、簡単に1〜2か月のコーディングが必要です。さらに、Xbox 360では、Windows、Playstation 3、またはその他のプラットフォームで使用できるライブラリと同じライブラリを常に使用できるとは限りません。つまり、Xbox 360バージョンで行ったのと同じことを行うには、まったく新しいライブラリを使用する必要がある可能性があります。
全体として、これらの種類の事柄は、膨大な時間になります。新しいプラットフォームへの移植は、大規模なAAAタイトルではめったに簡単ではありません。
多くの場合、それは難しいこととはほとんど関係ありません。
優先事項ではありません。彼らは間に合うようにドアをかろうじて抜け出そうとしています。1分ごとの違いを考慮するには時間がかかります。期限までにいくつかのコンソールまたはPCでリリースできる場合は、まずそれを実行してから、ポートをまとめます。早くリリースし、より多くのお金を稼ぎましょう。一般的に、この最後の世代の箱入りゲームでは、コンソールの方が優れていますが、新しいコンソールがそれを変える可能性があります。
また、場合によっては、コンソールメーカーが排他的リリースにメリットを与えるため、特定のコンソールで最初にリリースし、後で他のプラットフォームでリリースした場合、パブリッシャーは割引などを受け取ります。技術的なことは何もありません。
最初は、ゲームはPCよりもコンソールで作成するのが困難です。その上、コンソールは、任天堂、ソニー、マイクロソフトの間で非常に異なる仕様と異なるハードウェアを持っているため、パフォーマンスが異なるだけでなく、ボトルネックの問題も異なります。
通常、ゲームはエンジンを微調整して各コンソールの品質とパフォーマンスを最大化します。
PCに適応するとき、他の問題があります。コンソールは同種です。つまり、すべてのコンソールのハードウェアは同じです(すべてのPS3のハードウェアパフォーマンスは同じです)。PC用のゲームを作成する場合、最小仕様をターゲットにしますが、ユーザーはより強力なPCの品質を向上させることもできます。PCを対象としたゲームは最適化されていませんが、プログラマーにとっては簡単に作成できます。
コンソールでのプログラミングには1つの利点があります。プログラマーがパフォーマンスを最大化できるため、コンソールゲームは常にうまく機能します。
PCでは、多くのハードウェアが存在するため、さらに悪いことになりますが、当然のことながら、より自由になります。PCは常に最新の状態にあり、コストがかかります。
コンソールはゲームのパフォーマンスのために設計されているため、コンソールからPCへのゲームの移植は難しい場合がありますが、PCはそうではありませんが、コンソールはメモリが非常に少ないため、ゲームをコンソールからPCに移植する方がはるかに簡単です。 2倍か4倍少ないようなものです。
このメモリ制限に適合するようにコードを変更することは、ほとんどの場合、完全な再プログラミングを意味します。
ゲームをコンソールからPCに移植するのは難しくないと思います。APIの問題です。コンソールのみで作業する企業やプログラマーは、慣れていないだけでなく、コンソールAPIに常に適応しているため、PCに移植するのに苦労します。つまり、多くの場合、コードはコンソールコンパイラーの制限に対応します。 PC APIを必ずしも気にする必要はありません。
もちろん、エンジンはすべてのコンソールとPCで実行するようにプログラムできます。一度実行すると、簡単になりますが、3、4年は計画されていないと言われた後、プログラマーにエンジンをPCに移植するように指示するよりも優れています。
TL; DRコンソールは同種であり、最後の1つのコンソール世代、PCは異種であり、ハードウェアとAPIは常に進化しています。コストは、プログラミングとハードウェア構築の間で分散しますが、これは妥協です。
良いことの1つは、すべてのハードウェアですべてを実行できるようにすることですが、ゲーム会社はコンソールメーカーにライセンスを支払うため、コンソールの価格は補償されます。面倒です。