두 가지 방법으로 게임 회사가이 작업을 수행 할 수 있습니다 :
1) 작성/게임을 포팅 멀티 플랫폼 엔진 2)을 사용하여
플랫폼 별 행동에 대한 추상화 (윈도우를 만드는 기능을한다 멀티 플랫폼 엔진 API 호출, DirectX vs OpenGL 렌더링 등)을 사용하여 모든 작업을 한 번 수행 한 다음 두 시스템에 모두 사용할 수 있습니다. 일반적으로 Direct3D 호출과 같은 것에 대한 간단한 래퍼 메서드를 작성하는 문제입니다. 대부분의 최신 게임 엔진은 멀티 플랫폼을 지원하여 처음부터 구축되고 있습니다. 다른 업체들은 다중 플랫폼 지원을 추가하고 있습니다.
게임 엔진이 멀티 플랫폼이 아닌 경우 대상 플랫폼에서 실행되도록 변환해야합니다. 이것은 대개 두 부분으로 구성된 작업입니다. 먼저 하드웨어와의 모든 API 호출 및 인터페이스를 대상 플랫폼에 다시 적용해야합니다. 두 번째 부분은 성능을 위해 게임을 디버깅하고 최적화하는 작업입니다. 일반적으로 직접 포트는 새 대상 플랫폼에 적용되지 않는 플랫폼 별 최적화가 코드에 적용되므로 성능이 떨어집니다.
포팅 된 게임은 다양한 이유로 시각적 인 물결에도 불구하고 성능 문제가 발생할 수 있습니다. PS3의 오렌지 박스 또는 CoD : Wii의 현대 전쟁이 잘못된 포트의 두 가지 예를 확인하십시오. OB에게는 Valve가 게임을 EA로 포팅하는 작업을 아웃소싱했습니다. 두 번째 사례에서, Activision은 Wii를 최대한 활용할 수 있도록 설계된 새로운 엔진 위에 게임을 제작하는 대신 더 강력한 플랫폼으로 더 강력한 하드웨어를 위해 설계된 엔진에서 게임을 이식하는 것이 더 합리적이라고 판단했습니다.
하드웨어 특정 레이어 위에 공통 코드를 사용하기를 기대합니다. 따라서 XBox에서는 DirectX를 사용할 수 있기 때문에 해당 레이어의 라이브러리가있을 수 있지만 Linux의 OpenGL 레이어와 동일한 인터페이스를 사용하므로 스왑해야합니다 그래픽/오디오/IO 라이브러리를 하나의 플랫폼에서 다른 플랫폼으로 이동하십시오. –
XNA는 제임스 블랙 (James Black)이 말한 것 중 합리적으로 좋은 예입니다. 적어도 이론적으로 Windows와 Xbox를 동시에 개발하려는 노력은 크게 줄었습니다. –