移植 (ソフトウェア)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

コンピュータにおいて、移植(いしょく、: porting)とは、あるプラットフォームで動作するソフトウェアを改変して、ハードウェアOSライブラリなどの環境が異なる別のプラットフォームでも動作するように作り変えることを指す。

概要[編集]

コンピュータにあっては、様々な思想に基いた様々なコンピュータやプログラミング言語が、様々なメーカーから発売されている。かって古くはIBMとそれ以外の多くのメーカーが存在したメインフレーム市場において、次第にIBMとその互換機メーカーに集約された。今日でもパーソナルコンピュータの大半が、WindowsまたはMacintoshシリーズに集約され、大半のユーザーは、自分の使っているパソコンのOSだけを気にするようになっている。

これらのパソコンでは、OSに用意されたAPIや、それらによって利用されているデバイスドライバの働きによって、メーカーは元よりハードウェアの差異やメモリ構成の違いなどは気にせずとも同じソフトウェアが利用できる。これらは、OSが提供する標準化された環境で動作しているため、メーカーや機種の違いは関係無くなっている。

しかしWindowsとMacintoshシリーズでは、一部のソフトウェアを除いては、同じソフトウェアが動作しない。これらはOS側で提供している環境が異なるためである。これと同じように、世界中には様々なプログラミング言語が存在し、同じ動作をコンピュータにさせるためには、それぞれのプログラミング言語の仕様に則ったプログラムを作成しないと、動作するソフトウェアは作れない。例を挙げれば、プログラミングの基礎中の基礎とされるHello worldが挙げられる。この、“Hello world!”と表示するだけの、僅か数十文字程度のプログラムは、プログラミングに利用する言語によって様々に変化する(詳細はHello worldの項を参照のこと)。

移植の歴史[編集]

特に動作環境が異なるコンピュータの多くでは、同じ動作・作業をさせるために、全く別々にプログラムを作成しなければ成らない場合もあり、旧来のハードウェア構成の差異を補正するOSやドライバーが無かった時代には、同メーカー・別シリーズのパソコン間でも、プログラムの大半を作り直す作業が必要とされた。

このため、特にパソコンが普及し始めていた1980年代に於いては、各ソフトウェアメーカーとも、採算性の上でシェアが狭い機種など、売上が見込めない機種にはソフトウェアの移植を行わないケースも見られた。その一方で、採算さえ取れそうなら、非常に性能の低いパソコン向けにでさえ、ソフトウェアメーカーは多大なプログラミングテクニックと試行錯誤という労力を費やしてでも、移植ソフトウェアを作り続けた。このため、日本のパソコン市場は1980年代末には8ビット御三家と呼ばれる三強と、様々なメーカーからの互換性のあるMSXシリーズによる寡占化傾向が定着していた。

一方情報工学分野でも、様々なコンピュータメーカーから、多種多様な大型・小型を問わず1970年代以降、様々なコンピュータが発売・供給されたが、プラットフォームごとに操作方法が大きく違う事に辟易する利用者も多かった。その中で、マルチユーザー・マルチタスクの思想から生まれたUNIXは広く産官学分野に受け入れられ、様々なコンピュータ上に動作するUNIXの流れを汲むOSが移植された。

その中には、家庭にあるパソコン上でも同じOSを使いたいというユーザーもあらわれ、LinuxFreeBSD等の、PC/ATパソコン上で動作するものも開発され、今日に至る。特にLinuxに到っては、家庭用ゲーム機や携帯機器・過去のコンピュータハードウェア等で動作させる事が、一部のマニア間で腕試しに競われた結果、Xboxプレイステーション上でも動作する環境が開発されている。

コンピュータゲームの移植[編集]

コンピュータゲームのゲームソフトは通常1種類のゲーム機にのみ対応するので、他機種に同一内容のゲームソフトを提供するためにはソフトウェア開発メーカー、または外注ないしライセンス提供を受けた別のソフトウェア開発企業(サードパーティー)による移植作業が必要である。移植のパターンは大きく分けて以下の4通り存在する。

  1. 過去のゲームソフトを現行機種向けに移植する場合
  2. 比較的最近のソフトをより普及している現行機へと移植する場合
  3. アーケードゲームハードから家庭用ゲーム機へと移植する場合
  4. 同時期に普及する複数の家庭用ゲーム機へ移植することを、始めから前提として作られる場合

複数機種への移植はマルチプラットフォーム対応とも呼ばれ、場合によっては同時期に発売するために平行して移植作業が行われるケースもある。

かつて8ビット御三家のように主要なプラットフォームが平行進化の形で複数存在し市場を争っていた時代には、メーカーの開発陣に余力のある場合に、新製品のソフトウェアを複数機種向けに平行して開発して、ほぼ同時発売すること(例:DAIVA)もしばしば行われたが、余り規模が大きくない企業でも1機種向けに先行販売して、雪崩式に次機種向けに移植作業を続行、次々に多機種展開するメーカーも見られた(例:レリクス)。また外注やライセンス提供で結果的に多機種展開したケースも見られる(例:テグザー)。

ゲームの移植において独自の問題となるのは操作デバイスである。コントローラのボタン数やその配置、アナログ的入力の有無などは機種ごとに異なるので、違和感の無い操作を再現するために移植先にあわせたアレンジや調整が必要となる場合がある。各機種間のフレームレート画面解像度の違いも大きな問題となりうる。このような移植対象のゲーム機(コンシューマーゲーム)の性能や仕様上の違いによるゲーム内容の変更といったことも、かつては頻繁に行われていた。

たとえば、8ビットパソコンの時代には『タイニーゼビウス』(→『ゼビウス』)のようにゲームルールは変更せずにゲームの映像面を大幅に省略したり、あるいはファミリーコンピュータ用『グラディウス』のように、操作機器(入力装置)の違いによりアーケードゲームでは3ボタン(パワーアップ・空中攻撃・地上攻撃)だったものが2ボタン(パワーアップ・空中と地上への攻撃)にアレンジされたりしている。こういったダウングレード的改変はコンシューマーゲーム機の機能がアーケードゲーム機に及ばない時代にはしばしば見られたが、2000年代頃より1980 - 1990年代の古いゲームを最新機種に移植する場合では、逆に映像や音楽のアップグレードを図る場合もある(後述)。

また移植に際してバグ裏技として認識されるプレイヤーにとって好都合なものも含む)の修正や、ゲームバランスの調整、要素の追加などが行われる場合も多い。たとえば『アトミックロボキッド』のように、アーケードゲーム版が「敵との接触が即ミス」であったものが、PCエンジン移植においてはアレンジ移植版(タイトルも『アトミックロボキッドスペシャル』となった)としてライフ制に変更、「敵との接触でライフ減少・ライフ切れでゲームオーバー」になったものもある。その場合は、ゲームルールの改変などもあって、原作を元に別の内容の作品を作り上げるリメイクとの区別が曖昧である。

プレイステーションなどの世代からハードウェアの性能の向上に伴って、各メーカーは他機種からの完全移植を目指そうとしているが、メーカーによって移植度はまちまちであり、中には致命的なバグを含んだ移植ソフトや、或いは実質リメイクであるものも存在する。またロムカセットCD-ROMなど記録媒体の情報量増加に伴い、主となるソフトウェアはリメイク物ではあるが、オリジナルモードと称して原作の忠実な移植版を含んでいるソフトウェアもまま見受けられ、『スペースインベーダー』や『パックマン』など往年の有名ゲームでは複数モードを持つソフトウェアもみられる。

厳密な意味での移植に関しては、特にアーケードゲームの移植を待ち望んでいるユーザーらは、この移植度に厳しい傾向も見られる。たとえばアーケードゲームでやり込みプレイに興じたプレーヤーにとっては、入力機器の操作感の違いもあるが、アーケードゲームで鍛えたテクニックが使えないと不評を漏らしたり、アーケード版でバグないし設定ミスなどの形で存在していた(さして重要視されないような)要素が移植に際して修正されていたりすると、その再現性の違いに不評を述べたりするようなケースである。こういった傾向はゲーマーの中でもコアゲーマー(所定作品に思い入れの強いゲーム愛好家)に見られる要素である。一方で、バグの多いゲームの移植や、操作性の大きく異なるハードウェアに向けての移植(具体例を挙げると、WindowsからWiiiアプリからiPhoneiPod touchなど)のように、何らかの改善が期待される状況で何らの改善も行われていないものについて、「ベタ移植」と蔑まれるケースもあり、難しい。

ただ、コンピュータゲームプログラムの開発が次第に大規模になっていく過程で、異なるプラットフォームで同じように動作する環境を予め構築し、その上でゲームを動作させようという動きもある。ゲームエンジンと呼ばれる共通プログラムは、ゲームソフト開発の手間を軽減するために利用されているが、その一方でよく利用されるゲームエンジンが様々なプラットフォーム向けに移植されることで、そのゲームエンジンを利用するゲームソフトの移植に必要な労力やコストの低減にも役立てられている。

関連項目[編集]