플레이스테이션3는 발매전부터 개발이 어렵다는 이야기가 많이 나왔다. 이는 플레이스테이션2 시절의 악몽과 겹쳐져 많은 개발자들을 덜덜 떨게 만든 부분인데, 실제로는 처음부터 플레이스테이션2보다는 훨씬 나은 수준이었다고 한다. MIPS기반이지만 명령어셋까지 싹 갈아치운 이모션엔진과 달리 플레이스테이션3의 명령어는 IBM의 Power 아키텍쳐의 타 제품과 크게 차이가 없었기 때문에 IBM에서 제공하는 라이브러리를 쓰면 기본적인 개발에 큰 문제는 없었던 모양이다.
기본적으로 PS3는 PPC 기반의 칩을 사용하는 맥킨토쉬에서 테스트를 하면서 개발을 진행해왔을 정도로 PPC와의 명령어 셋이 유사한 것이 특징이며, 그래픽라이브러리는 OpenGL ES 2.0의 개량판을 사용하고 있다.
그러나 IBM이 기본 제공하는 셀 칩의 컴파일러에서 지원하는 명령은 메인 프로세서인 PPE에만 적용이 되는 범용 Power 코드들이어서 실제로 돌려보면 SPE는 전혀 구동이 되지 않는다는 엽기적인 상황이 펼쳐졌다. 이 때문에 초기에 나온 PS3용 게임들이 하나같이 동시기에 나온 엑스박스360 게임들에 비해서 퀄리티가 떨어지는 편인게 특징이다. 플레이스테이션2 시절처럼 특정 기종이 독점하는 시장에서는 그렇다해도 상관없었겠지만 엑스박스360과 시간을 양분하는 상황이 되고나니 PS3에 특별히 공을 들이는 회사가 사라져 그 차이가 특히나 크게 벌어지게 되었던 것이다. (따지고보면 기계를 이상하게 만든 소니가 전부 나쁘다)
심지어는 존 카멕조차 발매 1년 된 플레이스테이션3을 보고 ‘성능은 좋은데 프로그래밍하기 너무 힘들다’고 했을 정도.
셀 칩의 PPE는 기본적인 Power 아키텍쳐 전체를 집어넣은 칩이 아니라 상당히 단순화를 시켜 정수연산력이 떨어지고, 분기예측 확률이 크게 떨어지는 특성이있는 것으로 알려지는데, 기본적으로 IBM은 셀을 단독으로 운용하기보다는 보조적인 CPU로서 설계를 한 것으로 보인다. 셀에서 가장 주목할 부분은 7개 장착된 SPE로, DSP와 같은 단순 연산칩이지만, 단순 연산을 반복하는 한도 내에서는 단일 칩 하나로 다른 범용 프로세서를 상회할 정도의 효율을 보이는 칩이기 땜누이다. 하지만 앞서 말했듯 코딩이 복잡하다보니 이를 사용하려고 나서는 회사가 없었던 것이 문제였던 것.
그렇다고 단기간에 SPE를 쓸 수 있는 기술이 축적되기는 어려운 상황이었다. SPE는 어셈블리보다 약간 높은 수준의 저레벨 프로그래밍을 사용해야 하는 상황이었기 때문에 서드파티는 아예 이 기능을 활용할 엄두조차 못내고 있는 것이었다. 게다가 플레이스테이션2 시절 소니의 최대 구세주였던 렌더웨어 (Renderware)를 개발하던 크라이테리온 게임 (Criterion games)이 EA에 인수되면서 타사 라이센스가 불가능해졌기 때문에 자체적으로 문제 해결을 해야했다.
(1)이에 소니는 자회사 중 그래픽 분야에 나름 정평이 있던 너티독과 소니 런던 스튜디오에 개발툴을 보완하도록 지시하게 된다.
너티독은 자사 게임 언챠티드를 개발하면서 만들어진 그래픽 파이프라인을 추적하는 툴 ‘ICE’를 제공, 그래픽칩인 RSX와 SPE에 작업을 분산시킬 경우 생기는 파이프라인의 흐름을 모니터링하고, 어떤 작업이 적합한지를 파악할 수 있도록 했다. 현재 소니 산타모니카 스튜디오 등의 소니 퍼스트파티에서 MLAA 등의 각종 후처리나 기타 SPE를 활용하는 프로그램을 작성, 테스트할 때 사용하는 것은 툴이 이것이다.
소니 런던 스튜디오에서는 통합 그래픽 라이브러리인 ‘엣지(Edge)‘를 서드파티들에게 공개했다. 엣지는 소니 퍼스트파티에서 게임을 개발하면서 얻어진 기술들을 모아서 제공하는 것으로, SPE를 활용하는 기술들의 미리 작성된 코드, 그리고 그 코드를 연동해서 게임을 꾸밀수 있게 해주는 API등이 포함되어있다. 이후 이것에 더해서 크로스 플랫폼에 최적화된 개발환경을 더해, 윈도우, 엑스박스360으로도 PS3게임을 쉽게 컨버팅할 수 있도록 해주는 ‘파이어엔진(PhyreEngine)‘을 제공하면서 개발환경을 대폭 개선, 서드파티를 끌어들이는데 상당한 공을 들이는 모습을 보여주었다.
실제로 엣지 라이브러리 공개 이후 플레이스테이션3의 서드파티 게임들의 그래픽이 상당히 향상되었으며, 파이어엔진 공개 이후에는 코드마스터 등의 회사들이 적극적으로 멀티플랫폼 게임을 개발하는 계기가 되기도 했다.
기계가 괴이하면 기술적인 발전이 빨라진다는 소리가 맞는 것인지
(2), 이후에도 소니 퍼스트파티에서는 SPE를 이용한 별 희한한 기술들을 대거 도입하게 된다. 문제는 이 기술들이 타 사의 게임기에는 적용되지 않다보니 파이어엔진 등에서는 그대로 사용하기 힘들고, 엣지 라이브러리에서 골라서 써야한다는 점. 그래서인지 UBI 등의 멀티플랫폼 중심의 회사들은 소니에서 제공하는 라이브러리 중에서 타 기종에서 돌아가지 않는 기술들은 최대한 배제하고 사용하는 듯한 모습을 보여준다. 물론 PS3를 위해서 특별히 시간을 들인다고 판매량이 딱히 늘어나는 것도 아닐테니 크게 나쁜 생각이라고 하기는 또 어렵다. 이러한 선택을 현명하다고 해야하는지 게으르다고 해야하는지는 보는 사람이 판단할 몫.
또한 언리얼 토너먼트3 발매 이후로 에픽에서 언리얼 엔진3를 PS3로 공식 포팅하면서 언리얼 엔진을 사용하는 이번세대의 다수 게임이 손쉽게 이식되기 시작했다. 전체적인 퀄리티는 엑스박스360에 최적화된 면이 없잖아 있는 엔진이지만, PS3에서도 그럭저럭 문제없이 돌아가면서 많은 회사들이 사용하고 있다.
개발문제는 초기에는 여러모로 문제도 많았고 논란도 많이 되었지만 현재는 여러 문제들도 거의 해결이 되어서 사실상 개발환경이 더러워서 개발 못한다는 소리는 ‘윈도우로 개발한 것 컴파일만 다시하면 돌아가게 해주세요’라는 소리로, 엑스박스360에서는 통하는 소리일지 몰라도 플레이스테이션3는 OS도 API도 다르므로 그냥 개발하기 싫다는 소리로 받아들여도 무방하다.
그러나 여전히 개발에 문제가 되는 부분들이 적지 않은 것도 사실. PS3는 엑스박스360과 달리 아직도 보이스채팅 기능을 기본으로 지원하지 않으며, 온라인 모드의 경우 자체적으로 서버를 구축해야 하는 등 여러모로 제약이 많은 상황이다. 소니 유럽에서는 이러한 문제에 대해서 ‘일본 소니 본사에서 트렌드에 제대로 대응을 안해주기 때문’이라는 푸념을 늘어놓은 바 있는데, 실제로 소니 유럽측에서 내놓은 수많은 아이디어를 일본 소니에서 보고받고도 대답도 없이 묵살하는 경우가 태반이라고 한다.
(3)