콘솔 게임의 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에서 일부 그래픽 카드는보다 고급 기능을 지원하므로 더 나은 쉐이더를 사용하고 싶을 수도 있습니다. 음, 그것은 그 쉐이더를 작성해야한다는 것을 의미합니다.
콘솔 SDK에는 PC에 쉽게 매핑 할 수없는 편리한 기능이 많이있을 수 있습니다. 예를 들어 하드웨어 타이머 또는 우수한 사운드 API에 대한 액세스를 제공 할 수 있습니다.
이러한 것들은 일반적으로 PC에서 사용할 수 없습니다. 이러한 것들을 달성하기 위해 다른 방법을 사용해야하며 플랫폼 차이를 추상화하는 방법이 변경 될 수 있습니다.
간단한 이유는 콘솔마다 콘솔마다 동일한 단일 하드웨어 세트가 있기 때문입니다.
XBox, PS3 및 Wii는 모두 이웃 XBox, PS3 및 Wii와 동일한 하드웨어를 갖습니다. 그러나 컴퓨터에는 다른 CPU, 다른 그래픽 카드, 다른 양의 RAM이 있으며 실제로 전체 구성 및 운영 체제 설정에 따라 설치된 드라이버는 전 세계 어느 누구도 갖지 못한 완전히 고유 한 순열 일 수 있습니다.
이 때문에 PC로 포팅하기가 어렵습니다. 최소 시스템 요구 사항 이상에서 가능한 모든 하드웨어를 고려해야합니다. 그것은 프로그래밍하고 디버깅하기가 까다 롭고 어려운 과정입니다. 개발자가 프로그래밍 할 모든 구성을 알고 있으며 이러한 구성에서 테스트를 실행하는 것은 거의 불가능합니다.
PC 용으로 개발 한 후에는 개발자들이 자체적으로 광범위한 테스트를 수행하지만 몇 주에서 몇 개월 이상 사용자의 베타 테스트에 의존 할 수도 있습니다. PC 로의 포트가 공식적으로 릴리스되기 전에 베타 플레이어를 사용한 테스트 아웃소싱은 일반적으로 콘솔과 PC 사이의 릴리스 날짜에 차이가있는 이유입니다.
새로운 플랫폼으로 코드를 포팅하려면 시간이 걸립니다. XNA에서 개발 한 적이없는 Xbox 360 용 나노초 타이머를 만들려면 Linux, Mac 또는 Windows에서 동일한 나노초 타이머와 다른 구현이 필요합니다. 이제 엔진이 충분히 큰 경우 포팅이 필요한 수백 가지 유형의 기능이 있다고 상상해보십시오.
새로운 플랫폼에 대해 서로 다른 구현을 추가하는 데 한두 달의 코딩이 쉽게 걸릴 수 있습니다. 또한 Xbox 360에서 Windows, Playstation 3 또는 기타 플랫폼에서와 동일한 라이브러리를 항상 사용할 수있는 것은 아닙니다. 따라서 Xbox 360 버전에서와 동일한 작업을 수행하려면 완전히 새로운 라이브러리를 사용해야합니다.
전반적으로, 이런 종류의 일들은 많은 시간이 걸립니다. 큰 AAA 타이틀에서는 새로운 플랫폼으로 포팅하기가 쉽지 않습니다.
많은 경우 에 어려움을 겪는 것과는 거의 관련이 없습니다 .
그것은 우선 순위가 아닙니다. 그들은 거의 제 시간에 문을 나가기 위해 노력하고 있습니다. 매 순간의 차이는 처리하는 데 시간이 걸립니다. 마감일까지 몇 대의 콘솔이나 PC에서 릴리스 할 수있는 경우 먼저이를 수행 한 다음 포트를 마무리하십시오. 빨리 출시하고 더 많은 돈을 벌 수 있습니다. 일반적으로 콘솔은이 마지막 세대의 박스 게임에 더 잘 적용되었지만 새로운 콘솔로 전환하기 시작했습니다.
또한 콘솔 제작자는 독점 릴리스에 혜택을주기 때문에 게시자가 특정 콘솔에서 먼저 릴리스 한 후 나중에 다른 플랫폼에서 릴리스하는 경우 할인을받을 수도 있습니다. 그것에 대해 기술적 인 것이 없습니다.
처음에는 게임을 PC보다 콘솔에서 만드는 것이 더 어렵습니다. 또한 콘솔에는 nintendo, sony 및 microsoft간에 사양이 다르고 하드웨어가 다르기 때문에 성능이 저하 될뿐만 아니라 병목 현상 문제도 발생합니다.
일반적으로 게임은 각 콘솔에서 품질과 성능을 최대화하기 위해 엔진을 조정합니다.
PC에 적응할 때 다른 문제가 있습니다. 콘솔은 동종이므로 모든 콘솔에 동일한 하드웨어가 있습니다 (모든 PS3의 하드웨어 성능이 동일 함). PC 용 게임을 만들 때는 최소 사양을 목표로하지만보다 강력한 PC의 품질을 향상시킬 수 있습니다. PC를 대상으로하는 게임은 덜 최적화되었지만 프로그래머가 쉽게 만들 수 있습니다.
콘솔 프로그래밍은 한 가지 장점이 있으며 프로그래머가 성능을 극대화 할 수 있으므로 모든 콘솔 게임이 항상 훌륭하게 수행됩니다.
PC에는 하드웨어가 많기 때문에 더 나쁩니다.하지만 더 자유 롭습니다. PC가 항상 최첨단에 있기 때문에 최고의 결과물 인 게임은 항상 PC에있을 것입니다.
콘솔은 게임 성능을 위해 설계된 것이기 때문에 콘솔에서 PC로 게임을 포팅하는 것은 까다로울 수 있지만 PC는 그렇지 않지만 전반적으로 콘솔의 메모리가 훨씬 적기 때문에 콘솔에서 PC로 게임을 포팅하는 것이 훨씬 쉽습니다. 2 ~ 4 배 적은 것.
이 메모리 제한에 맞게 코드를 변경하는 것은 항상 완전한 재 프로그래밍을 의미합니다.
콘솔에서 PC로 게임을 포팅하는 것이 어렵다고 생각하지 않습니다. API의 문제 일뿐입니다. 콘솔로만 작업하는 회사 및 프로그래머는 PC에 익숙하지 않기 때문에 PC로 이식하는 데 어려움을 겪을 것입니다. 콘솔 API에 지속적으로 적응하기 때문에 코드가 콘솔 컴파일러 제한에 자주 응답합니다. 반드시 PC API를 관리 할 필요는 없습니다.
물론 엔진은 모든 콘솔과 PC에서 실행되도록 프로그래밍 할 수 있으며, 일단 완료되면 3 ~ 4 년 동안 계획하지 않았다고 말한 후 프로그래머에게 엔진을 PC로 이식하도록 지시하는 것보다 낫습니다.
TL; DR 콘솔은 균질하고 마지막 1 세대이며 PC는 이기종이며 하드웨어와 API는 지속적으로 발전합니다. 프로그래밍과 하드웨어 구축간에 비용이 분산되며 이는 타협입니다.
한 가지 좋은 점은 모든 하드웨어가 모든 것을 실행할 수 있도록하는 것이지만 게임 회사는 콘솔 제조업체에 라이센스를 지불하기 때문에 콘솔 가격이 보상되므로 지불하는 게임 회사 만 실행하도록 하드웨어를 잠급니다. 지저분합니다.