クロスプラットフォーム
クロスプラットフォーム(英: cross-platform)とは、異なるプラットフォーム(例えばPC/AT互換機とMacintosh、あるいはWindows・macOS・FreeBSD・Linuxなどのように、仕様が全く異なる機械(ハードウェア)またはオペレーティングシステム)上で、同じ仕様のものを動かすことが出来るプログラム(ソフトウェア)のことを言う。同様の呼称にマルチプラットフォーム[1]がある。
また、家庭用ゲームにおいては「クロスプラットフォーム」と「マルチプラットフォーム」で意味が異なる場合がある。本項ではこのケースについても後述する。
クロスプラットフォームのアプリケーションプログラムの例[編集]
具体的には次のようなものがある。
実際のところ、いちいち挙げるまでもなく、Unix系の各システムについて、近年しばしば見られるように、ディストリビューション毎などに「別のプラットフォーム」とみなすようであれば(その是非はともかくとして(というより問題のほうが多いが))、無数にあるUnix系のプログラムの相当数が、そのままでは難しくても恐らく少々の手直しで、無数にあるUnix系の他のプラットフォームで動くであろう。そういう意味では、クロスプラットフォームのアプリケーションプログラムの例はいくらでも当然のごとく存在している。
クロスプラットフォームなプログラムは、表面上はどのオペレーティングシステム上でも全くほぼ同じように動作するが、場合によってはオペレーティングシステム側とのやり取りを行う部分は、それぞれのOSの機能に応じて最適化がなされていて、一方のオペレーティングシステムで動いていたものを、そのまま他のオペレーティングシステムに持っていっても動作しない場合がある。そのため一部のプログラムでは、各オペレーティングシステム専用のコードをどのオペレーティングシステム向けのパッケージにも含ませていることがある。また、保存された設定などの一部データは、他のオペレーティングシステムに移植しても正常に動作することがある。例えば、Mozilla Thunderbird のメールデータや設定などのプロファイルを別のプラットフォームへ持っていけば、新たなプラットフォーム上で引き続き利用できる[2]。
Java の実行環境は Windowsや macOS、Linux や UNIX、携帯電話などに存在するため、Java バイトコードできたアプリケーションはこれらのプラットフォーム上で同じように利用できる。
モジラ・ファウンデーションがオープンソースで開発しているインターネットアプリケーション群も複数のオペレーティングシステムに提供されている。Mozilla は単なるブラウザやメールクライアントなどのアプリケーションという位置だけではなく、それらアプリケーション上で動作する共通のプログラムを扱える。例としては Firefox の拡張機能(エクステンション、アドオン)にFTPクライアントの機能を持たせる FireFTP というものがある。これを用いれば Firefox からFTPを利用できる。つまり、Firefox がインストールできる異なったOSで、同様の機能のソフトを利用できるということである。
Opera のケースでは、オペレーティングシステム環境に依存せず異なる環境へ移植可能で軽量なプログラムコードを用いているため、デスクトップ環境のみならず、容量の少ない携帯電話や家庭用ゲーム機にもブラウザ機能を移植するケースが存在する。
さらに、ダイナミックHTMLを活用したリッチインターネットアプリケーションが既に広く利用されており、ウェブブラウザもクロスプラットフォーム環境である。
家庭用ゲーム機におけるクロスプラットフォーム[編集]
家庭用ゲーム機におけるクロスプラットフォームという語は、ハードの垣根を越えてゲームなどのコンテンツを楽しむことができるプラットフォーム連携機能のことを指す[3]。具体的な機能としては、異なるハード間でのプレイを可能にする「クロスプレイ」、異なるハード間でのセーブデータの共有を可能にする「クロスセーブ」、ネットワークを通じてゲームを遠隔操作でプレイする「リモートプレイ」などがある。これらの機能を利用することで、家庭用ゲーム機のプレイヤーとPCのプレイヤーで対戦や協力プレイを楽しんだり、家では据え置き型のゲーム機で遊び、外出先では携帯型のゲーム機でその続きをプレイしたりするなど、より幅広い形でゲームを楽しむことができるようになっている。
また、家庭用ゲーム機におけるマルチプラットフォームという語は汎用コンピューターにおける意味とは異なり、ある一つのソフトウェアを各ハードウェア向けにそれぞれ別々に開発することを意味する場合がほとんどである。家庭用ゲーム機(コンシューマーゲーム)の場合はマルチプラットフォームという語の方が主に用いられる。
囲い込みを至上とした(かつては)家庭用ゲーム以外では、例えば8ビットパソコン時代のパソコンゲームのように、わざわざそのようなご大層な名前で呼んだりすることもなく、普通にあたりまえにあったものである。
メリットとして、ハード間である程度素材を流用できるため、別々にソフトを開発するよりも製作費や時間を抑えられ、より多くの人に買ってもらえる有効な手段である。ただし、ゲーム機の仕様として、インターフェースや表示手段などの動作環境がハードに強く依存しているため、ハードウェア性能が著しく異なる場合、ゲームデザインのレベルから再構成する場合もあり、中には同じ作品でありながら、テーマや世界観以外は全く異なるゲームとして発売されているものも存在する。