数年前、CおよびC ++のサブセットで記述し、十分な数のプラットフォーム抽象化(SDLなどを使用)を使用した場合、インディーが利用できるすべてのプラットフォーム(Linux、Windows、Mac OSのさまざまなバージョン)で実行できました、BeOSのようなあいまいなもの、GP2Xや死後のドリームキャストのようなオープンコンソール。ある時点でクローズドプラットフォームの契約を結んだ場合、「最小限の」コード変更でゲームをそのプラットフォームに移植することもできます。
今日、独立系開発者はXNAを使用してXbox 360(および今後のWindows Phone)にアクセスする必要があります。XNAを使用してWindows以外の場所で作業しないでください。最近までAndroidでJavaを使用する必要がありました。Flashは電話では動作せず、HTML5はIEでは動作しません。たとえばDirectXとOpenGL、またはWindowsとUnixとは異なり、これらはコードを記述するコア言語の変更であり、基本的にコンパイラを書かなければ書けません。一部のゲームロジックをスクリプトに移動し、インタープリターを含めることができます。ただし、できない場合を除きます。iPhoneSDKでは許可されないため、JITを許可しないためパフォーマンスが低下します。
本当にクロスプラットフォームのポータブルゲームが必要な場合、またはエンジンとロジックコードのかなりの部分さえ必要な場合は、どうすればよいでしょうか?
プラットフォームが根本的に分岐しているため、これは問題ではありません。共有ゲームでiPhoneとXbox 360の両方をターゲットにしようとするのは価値がありません。(これはめったにありません。WindowsMobile電話とAndroid、またはXbox 360とiPadの間でゲームを共有したいということは簡単にわかります。)移植時間はごくわずかなので、インターフェイスは非常に高レベルですか。(私はこれをビジネスアプリケーションに信じているかもしれませんが、厳しいパフォーマンス要件のゲームには信じていません。)
これは将来さらに顕著になるでしょうか?分割は、いくぶん恐ろしく、ベンダーラインを下回りますか?クロスプラットフォームを実現するために、FlashやUnityのような高レベルのミドルウェアに依存するでしょうか?
tl; dr-移植は問題ですか、それは将来より大きな問題になるでしょうか?もしそうならどのように解決しますか?