[잡담] 출처 비디오게이머X-각각의 차이가~세기종
* 기술적인 면에 약한 관계로 번역이 매끄럽지 못합니다. 죄송 ^^;
각각의 철학의 차이가 느껴지는 신 게임기
고토 히로시게
자택에서는 게임기가 풀가동
자택에서 신게임기가 요 2개월 정도 풀가동되고 있다. 12월부터 1월에 걸쳐 Xbox 타이틀을 3개 정도 피니시했다. 한편 게임큐브는 아들이 담당하고 있는데, 이쪽도 순조롭게 게임을 소비하고 있다. 이렇게 신게임기를 건드리고 있으면 각 게임기의 철학이 크게 다르다는 것이 피부로 느껴지게 된다.
Xbox와 게임큐브는 양쪽 모두 SGI의 흐름을 이어받는다. 둘다 메인 엔지니어 대부분이 SGI 출신자이다. 그 때문에 특히 Xbox가 그렇지만, 그래픽 워크스테이션적인 그래픽 제작으로 되어 있다. 그에 반해 PlayStation 2의 엔진은 게임기적이지도 않고 그래픽 워크스테이션적이지도 않다, 독특한 것으로 독특한 그래픽이 되고 있다.
우선 하드웨어적으로 말하면 각 게임기는 제각기 약점을 갖고 있다. 그것이 현저한 것은 메모리이다. 단순하게 말하면 다음과 같다.
·Xbox는 메모리의 대역이 약점
·PlayStation 2는 메모리의 배치가 약점
·게임큐브는 메모리의 양이 약점
PlayStation 2 Xbox 게임큐브
비디오메모리+메인메모리
용량 34MB 64MB 27MB
메모리대역 51.2GB/sec 6.4GB/sec 20GB/sec이상?
비디오메모리
용량 4MB 64MB(메인메모리 혼용) 2MB+1MB
아키텍쳐 혼재 UMA 혼재
메모리대역 48GB/sec 6.4GB/sec 10.4GB/sec이상
메인메모리
용량 32MB 64MB 24MB
아키텍쳐 DRDRAM DDR SDRAM 1T SRAM
메모리대역 3.2GB/sec 6.4GB/sec 2.6GB/sec
메모리의 양에 비해 대역이 빈약한 Xbox
Xbox의 메모리 용량은 64MB으로 가장 많은데다 유니파이드 메모리 아키텍쳐(UMA)의 단일 메모리로, 비디오 메모리의 영역을 자유롭게 설정할 수 있다. 예를 들어 절반인 32MB를 텍스쳐에 취해, 거기에 텍스쳐 압축으로 32MBx6= 약 200MB분의 텍스쳐를 집어 넣는 것도 가능하다. 게임기의 극소의 메모리량에 고생한 디벨로퍼에게 있어서는 꿈같은 양의 메모리가 있다.
이 메모리의 양은 텍스쳐뿐만 아니라 HDTV 대응 등에도 유리하게 작용한다. HDTV의 고해상도에 필요한 프레임 버퍼를 취해도 충분히 텍스쳐 등에 돌릴 메모리가 있기 때문이다. 실제로 미국 발매 타이틀의 경우 HDTV(그러나 대부분이 아직 480P) 대응 타이틀이 있다.
그러나 Xbox의 유니파이드 메모리의 대역은 6.4GB/sec로 비디오 메모리도 합해 계산하면 세 아키텍쳐 중에서 가장 좁다. 이 적은 메모리 대역은 이론상 Xbox의 약점이 된다. 이론상이라고 쓴 것은 실제의 게임 개발에서 어느 정도 약점이 될 지를 아직 알 수 없기 때문이다. Xbox는 텍스쳐 압축이나 프리페칭으로 메모리 대역의 약점을 커버하고 있는데다, 원패스로 최대 4 텍스쳐를 붙일 수 있기 때문에 텍스쳐를 4개 겹쳐도 텍스쳐 리드 이외에서는 메모리 대역을 먹지 않는다. 그 때문에 이 메모리 대역에서도 어느 정도까지는 문제가 없다. 아마 통상의 아날로그 TV의 해상도에 출력하는 한은 문제가 없을 것이다.
그러나 Xbox의 스펙을 풀로 사용하려고 하면 어떻게 될지는 모른다. 예를 들어 HDTV 대응으로 해상도를 더 올리면 프레임 버퍼나 Z버퍼의 대역이 확대된다. 텍스쳐도 해상도에 맞춰 풍부하게 하면 텍스쳐 리드도 증가한다. 또 풀 스크린 안티앨리아싱이나 메모리 대역을 잡아먹는 타입의 필터링 등을 하면 더 먹힌다. 그렇게 되면 대역이 문제가 될 가능성이 있다. 이 부분은 실제로 게임 디벨로퍼가 Xbox의 기능을 완전히 써보지 않으면 모른다.
현 단계는 Xbox의 스타트 대시여서 디벨로퍼는 Xbox의 한계를 끌어내고 있는 것으로 보이지 않는다. 아직 Xbox의 잠재 성능을 끌어내고 있다고는 말할 수 없다. 확실히 「Dead or Alive 3(DOA3)」의 텍스쳐는 압권이며, 「Halo」는 멀티 텍스쳐로 중후한 질감을 내고 있고, 「DOUBLE-S.T.E.A.L」은 DOF(Depth-of-Field:피사계 심도를 설정해서 음영을 넣는 멀티샘플링 테크닉)를 효과적으로 사용하고 있다. Xbox가 아니면 불가능한 그래픽의 타이틀은 분명 있지만 아직 풀은 아니다.
이런 Xbox의 메모리에 대한 생각을 요약하면 다음과 같다. 「메모리 대역도 중요하지만 그 때문에 메모리의 양이 희생된다면 주객전도」라는 철학이다. 이것은 텍스쳐를 풍부하게 팍팍 붙이는 CG무비적인 그래픽 제작이 Xbox의 기반에 있기 때문일 것이다.
메모리 배치의 효율이 나쁜 PlayStation 2
그에 비해 PlayStation 2는 메모리 대역에서는 압도적인 스펙을 자랑한다. PlayStation 2의 비디오 메모리는 그래픽 칩 「Graphics Synthesizer(GS)」에 내장된 임베디드 DRAM으로, 대역은 48GB/sec이다. 그런데 비디오 메모리의 양의 경우 불과 4MB 밖에 없다. 그래서 프레임 버퍼, 더블 버퍼, Z버퍼 하고 취해 가면 텍스쳐 메모리는 반정도 밖에 남지 않는다.
그 때문에 PlayStation 2에서는 메인 메모리 상에 텍스쳐를 로딩해 두고 사용할 만큼의 텍스쳐를 비디오 메모리에 빈번하게 전송할 필요가 있다. 그런데 메인 메모리는 CPU+지오메트리엔진인 「Emotion Engine(EE)」에 접속되어 있다. EE의 메모리 유닛으로 억세스해 GS에 전용 포트로 전송하기 때문에 아무래도 레이턴시가 길어진다. 게다가 이 캐싱은 자동적으로 이루어지지 않기 때문에 게임의 엔지니어측이 돌봐야할 필요가 있다. 또 메인 메모리상에 압축되어 있는 텍스쳐는 늘려서 비디오 메모리에 보낼 필요가 있기 때문에 대역도 잡아먹게 된다.
이런 비효율적인 메모리 배치 때문에 PlayStation 2에서는 텍스쳐가 약점이 되고 있다. 풍부한 텍스쳐를 사용하기 힘들어, 디벨로퍼는 텍스쳐 데이터를 줄이는 것과 텍스쳐의 캐싱에 머리를 쓰지 않으면 안된다. 예를 들어 스테이지를 어둡게 해서 색수를 억제하는 식의 회피 테크닉을 사용하게 된다. 또 PlayStation 2에서는 렌더링 파이프는 1패스에 1 텍스쳐이기 때문에 텍스쳐 레이어를 겹치기 힘들다. PlayStation 2의 이 약점은 유명해서, 대부분의 게임 디벨로퍼들이 고생해 왔다.
무엇보다도 PlayStation 2의 이러한 약점은 의도적인 것이라는 느낌도 든다. 즉 아키텍쳐로부터는 멀티 텍스쳐나 필터링으로 리얼한 질감을 내는 것이 아니라, 디자이너가 아름다운 텍스쳐를 그리는 편이 좋다는 디자인 철학이 느껴진다.
인텔리전트한 캐싱으로 커버하는 게임큐브
한편 게임큐브도 PlayStation 2와 마찬가지로 비디오 메모리에 임베디드 RAM를 사용하고 있다. 그러나 어프로치는 상당히 다르다. 게임큐브의 그래픽 칩 「Flipper(플리퍼)」에 내장된 비디오 메모리의 양은 프레임 버퍼와 Z버퍼로 약 2MB, 텍스쳐 버퍼로 1MB. PlayStation 2보다 빈곤하다. 이것은 다이 사이즈(반도체 본체의 면적)을 줄여 코스트를 억제하기 위해서이다. 이 텍스쳐 메모리의 양이면 풍부한 최근 추세의 3D 그래픽을 만들기는 힘들다. 그 때문에 PlayStation 2와 마찬가지로 메인 메모리상에 취한 텍스쳐 영역과의 사이에 캐싱이 필요하게 된다.
여기서 게임큐브가 PlayStation 2와 다른 것은, 이 캐싱을 하드웨어가 맡는 것이다. 즉 디벨로퍼측은 텍스쳐 데이터가 어디에 있는지 신경쓰지 않아도 자동적으로 사용되는 텍스쳐가 임베디드 메모리쪽에 받아들여진다. 물론 그래서 메인 메모리가 늦으면 잘 작동하지 않지만, Flipper의 경우는 메인 메모리도 랜덤 억세스에 강한 1T-SRAM이기 때문에 서스테인의 레이턴시는 약 10ns로 대단히 작다.
또 PlayStation 2와 달리 그래픽 칩 자체가 메인 메모리에 접속되어 있다. 그 때문에 PlayStation 2보다 훨씬 텍스쳐는 다루기 쉽다. 게임큐브에서는 이 고속의 메인 메모리 상에 더블 버퍼 영역도 취할 수 있다. 즉 더블 버퍼로, 직접 묘화하는 쪽 버퍼는 내장 메모리에 두고, DAC에 출력해서 표시하는 쪽 버퍼는 메인 메모리에 취한다. 덧붙여 게임큐브의 경우, DAC는 Flipper가 아니라 놀랍게도 비디오 케이블에 내장되어 있다.
이런 아키텍쳐로 비디오 메모리의 양을 잘 커버하고 있는 게임 큐브이나 약점이 있다. 그것은 메모리의 양이다. 독특한 1T-SRAM을 메인 메모리로 사용했기 때문에, 메인 메모리는 96Mbit의 x32 칩 2개인 합계 24MB로 되어 있다. 이 불리함을 보충하기 위해 게임큐브에서는 128Mbit의 SDRAM(x8)을 1개 탑재하고 있다. 이것으로 16MB가 플러스되는 셈이지만, 이 메모리는 메인 메모리와는 아키텍쳐도 버스도 달라 사용법은 한정된다. 실제로 어떻게 사용하고 있는지는 모르지만, 그다지 유용하게 사용할 수 있다고는 생각되지 않는다.
이 적은 메모리량은 이론상 게임 큐브의 약점이 된다. 이론상이라고 쓴 것은 이쪽도 Xbox처럼 이 약점을 커버하는 장치를 여러 가지 갖추고 있기 때문이다. 가능한 한 데이터량을 줄일 수 있도록 많은 고안이 되어 있다.
또, 이러한 아키텍쳐를 채택한 게임 큐브는 칩수가 불과 5개로 대단히 적다. 실장면적도 작아, 그것이 그 작은 케이스를 실현하고 있다. 거기에는 게임기는 작고 컴팩트해서 어린이 방의 바닥에 둘 수 있는 것이 아니면 안된다는 철학이 느껴진다.
* 기술적인 면에 약한 관계로 번역이 매끄럽지 못합니다. 죄송 ^^;
각각의 철학의 차이가 느껴지는 신 게임기
고토 히로시게
자택에서는 게임기가 풀가동
자택에서 신게임기가 요 2개월 정도 풀가동되고 있다. 12월부터 1월에 걸쳐 Xbox 타이틀을 3개 정도 피니시했다. 한편 게임큐브는 아들이 담당하고 있는데, 이쪽도 순조롭게 게임을 소비하고 있다. 이렇게 신게임기를 건드리고 있으면 각 게임기의 철학이 크게 다르다는 것이 피부로 느껴지게 된다.
Xbox와 게임큐브는 양쪽 모두 SGI의 흐름을 이어받는다. 둘다 메인 엔지니어 대부분이 SGI 출신자이다. 그 때문에 특히 Xbox가 그렇지만, 그래픽 워크스테이션적인 그래픽 제작으로 되어 있다. 그에 반해 PlayStation 2의 엔진은 게임기적이지도 않고 그래픽 워크스테이션적이지도 않다, 독특한 것으로 독특한 그래픽이 되고 있다.
우선 하드웨어적으로 말하면 각 게임기는 제각기 약점을 갖고 있다. 그것이 현저한 것은 메모리이다. 단순하게 말하면 다음과 같다.
·Xbox는 메모리의 대역이 약점
·PlayStation 2는 메모리의 배치가 약점
·게임큐브는 메모리의 양이 약점
PlayStation 2 Xbox 게임큐브
비디오메모리+메인메모리
용량 34MB 64MB 27MB
메모리대역 51.2GB/sec 6.4GB/sec 20GB/sec이상?
비디오메모리
용량 4MB 64MB(메인메모리 혼용) 2MB+1MB
아키텍쳐 혼재 UMA 혼재
메모리대역 48GB/sec 6.4GB/sec 10.4GB/sec이상
메인메모리
용량 32MB 64MB 24MB
아키텍쳐 DRDRAM DDR SDRAM 1T SRAM
메모리대역 3.2GB/sec 6.4GB/sec 2.6GB/sec
메모리의 양에 비해 대역이 빈약한 Xbox
Xbox의 메모리 용량은 64MB으로 가장 많은데다 유니파이드 메모리 아키텍쳐(UMA)의 단일 메모리로, 비디오 메모리의 영역을 자유롭게 설정할 수 있다. 예를 들어 절반인 32MB를 텍스쳐에 취해, 거기에 텍스쳐 압축으로 32MBx6= 약 200MB분의 텍스쳐를 집어 넣는 것도 가능하다. 게임기의 극소의 메모리량에 고생한 디벨로퍼에게 있어서는 꿈같은 양의 메모리가 있다.
이 메모리의 양은 텍스쳐뿐만 아니라 HDTV 대응 등에도 유리하게 작용한다. HDTV의 고해상도에 필요한 프레임 버퍼를 취해도 충분히 텍스쳐 등에 돌릴 메모리가 있기 때문이다. 실제로 미국 발매 타이틀의 경우 HDTV(그러나 대부분이 아직 480P) 대응 타이틀이 있다.
그러나 Xbox의 유니파이드 메모리의 대역은 6.4GB/sec로 비디오 메모리도 합해 계산하면 세 아키텍쳐 중에서 가장 좁다. 이 적은 메모리 대역은 이론상 Xbox의 약점이 된다. 이론상이라고 쓴 것은 실제의 게임 개발에서 어느 정도 약점이 될 지를 아직 알 수 없기 때문이다. Xbox는 텍스쳐 압축이나 프리페칭으로 메모리 대역의 약점을 커버하고 있는데다, 원패스로 최대 4 텍스쳐를 붙일 수 있기 때문에 텍스쳐를 4개 겹쳐도 텍스쳐 리드 이외에서는 메모리 대역을 먹지 않는다. 그 때문에 이 메모리 대역에서도 어느 정도까지는 문제가 없다. 아마 통상의 아날로그 TV의 해상도에 출력하는 한은 문제가 없을 것이다.
그러나 Xbox의 스펙을 풀로 사용하려고 하면 어떻게 될지는 모른다. 예를 들어 HDTV 대응으로 해상도를 더 올리면 프레임 버퍼나 Z버퍼의 대역이 확대된다. 텍스쳐도 해상도에 맞춰 풍부하게 하면 텍스쳐 리드도 증가한다. 또 풀 스크린 안티앨리아싱이나 메모리 대역을 잡아먹는 타입의 필터링 등을 하면 더 먹힌다. 그렇게 되면 대역이 문제가 될 가능성이 있다. 이 부분은 실제로 게임 디벨로퍼가 Xbox의 기능을 완전히 써보지 않으면 모른다.
현 단계는 Xbox의 스타트 대시여서 디벨로퍼는 Xbox의 한계를 끌어내고 있는 것으로 보이지 않는다. 아직 Xbox의 잠재 성능을 끌어내고 있다고는 말할 수 없다. 확실히 「Dead or Alive 3(DOA3)」의 텍스쳐는 압권이며, 「Halo」는 멀티 텍스쳐로 중후한 질감을 내고 있고, 「DOUBLE-S.T.E.A.L」은 DOF(Depth-of-Field:피사계 심도를 설정해서 음영을 넣는 멀티샘플링 테크닉)를 효과적으로 사용하고 있다. Xbox가 아니면 불가능한 그래픽의 타이틀은 분명 있지만 아직 풀은 아니다.
이런 Xbox의 메모리에 대한 생각을 요약하면 다음과 같다. 「메모리 대역도 중요하지만 그 때문에 메모리의 양이 희생된다면 주객전도」라는 철학이다. 이것은 텍스쳐를 풍부하게 팍팍 붙이는 CG무비적인 그래픽 제작이 Xbox의 기반에 있기 때문일 것이다.
메모리 배치의 효율이 나쁜 PlayStation 2
그에 비해 PlayStation 2는 메모리 대역에서는 압도적인 스펙을 자랑한다. PlayStation 2의 비디오 메모리는 그래픽 칩 「Graphics Synthesizer(GS)」에 내장된 임베디드 DRAM으로, 대역은 48GB/sec이다. 그런데 비디오 메모리의 양의 경우 불과 4MB 밖에 없다. 그래서 프레임 버퍼, 더블 버퍼, Z버퍼 하고 취해 가면 텍스쳐 메모리는 반정도 밖에 남지 않는다.
그 때문에 PlayStation 2에서는 메인 메모리 상에 텍스쳐를 로딩해 두고 사용할 만큼의 텍스쳐를 비디오 메모리에 빈번하게 전송할 필요가 있다. 그런데 메인 메모리는 CPU+지오메트리엔진인 「Emotion Engine(EE)」에 접속되어 있다. EE의 메모리 유닛으로 억세스해 GS에 전용 포트로 전송하기 때문에 아무래도 레이턴시가 길어진다. 게다가 이 캐싱은 자동적으로 이루어지지 않기 때문에 게임의 엔지니어측이 돌봐야할 필요가 있다. 또 메인 메모리상에 압축되어 있는 텍스쳐는 늘려서 비디오 메모리에 보낼 필요가 있기 때문에 대역도 잡아먹게 된다.
이런 비효율적인 메모리 배치 때문에 PlayStation 2에서는 텍스쳐가 약점이 되고 있다. 풍부한 텍스쳐를 사용하기 힘들어, 디벨로퍼는 텍스쳐 데이터를 줄이는 것과 텍스쳐의 캐싱에 머리를 쓰지 않으면 안된다. 예를 들어 스테이지를 어둡게 해서 색수를 억제하는 식의 회피 테크닉을 사용하게 된다. 또 PlayStation 2에서는 렌더링 파이프는 1패스에 1 텍스쳐이기 때문에 텍스쳐 레이어를 겹치기 힘들다. PlayStation 2의 이 약점은 유명해서, 대부분의 게임 디벨로퍼들이 고생해 왔다.
무엇보다도 PlayStation 2의 이러한 약점은 의도적인 것이라는 느낌도 든다. 즉 아키텍쳐로부터는 멀티 텍스쳐나 필터링으로 리얼한 질감을 내는 것이 아니라, 디자이너가 아름다운 텍스쳐를 그리는 편이 좋다는 디자인 철학이 느껴진다.
인텔리전트한 캐싱으로 커버하는 게임큐브
한편 게임큐브도 PlayStation 2와 마찬가지로 비디오 메모리에 임베디드 RAM를 사용하고 있다. 그러나 어프로치는 상당히 다르다. 게임큐브의 그래픽 칩 「Flipper(플리퍼)」에 내장된 비디오 메모리의 양은 프레임 버퍼와 Z버퍼로 약 2MB, 텍스쳐 버퍼로 1MB. PlayStation 2보다 빈곤하다. 이것은 다이 사이즈(반도체 본체의 면적)을 줄여 코스트를 억제하기 위해서이다. 이 텍스쳐 메모리의 양이면 풍부한 최근 추세의 3D 그래픽을 만들기는 힘들다. 그 때문에 PlayStation 2와 마찬가지로 메인 메모리상에 취한 텍스쳐 영역과의 사이에 캐싱이 필요하게 된다.
여기서 게임큐브가 PlayStation 2와 다른 것은, 이 캐싱을 하드웨어가 맡는 것이다. 즉 디벨로퍼측은 텍스쳐 데이터가 어디에 있는지 신경쓰지 않아도 자동적으로 사용되는 텍스쳐가 임베디드 메모리쪽에 받아들여진다. 물론 그래서 메인 메모리가 늦으면 잘 작동하지 않지만, Flipper의 경우는 메인 메모리도 랜덤 억세스에 강한 1T-SRAM이기 때문에 서스테인의 레이턴시는 약 10ns로 대단히 작다.
또 PlayStation 2와 달리 그래픽 칩 자체가 메인 메모리에 접속되어 있다. 그 때문에 PlayStation 2보다 훨씬 텍스쳐는 다루기 쉽다. 게임큐브에서는 이 고속의 메인 메모리 상에 더블 버퍼 영역도 취할 수 있다. 즉 더블 버퍼로, 직접 묘화하는 쪽 버퍼는 내장 메모리에 두고, DAC에 출력해서 표시하는 쪽 버퍼는 메인 메모리에 취한다. 덧붙여 게임큐브의 경우, DAC는 Flipper가 아니라 놀랍게도 비디오 케이블에 내장되어 있다.
이런 아키텍쳐로 비디오 메모리의 양을 잘 커버하고 있는 게임 큐브이나 약점이 있다. 그것은 메모리의 양이다. 독특한 1T-SRAM을 메인 메모리로 사용했기 때문에, 메인 메모리는 96Mbit의 x32 칩 2개인 합계 24MB로 되어 있다. 이 불리함을 보충하기 위해 게임큐브에서는 128Mbit의 SDRAM(x8)을 1개 탑재하고 있다. 이것으로 16MB가 플러스되는 셈이지만, 이 메모리는 메인 메모리와는 아키텍쳐도 버스도 달라 사용법은 한정된다. 실제로 어떻게 사용하고 있는지는 모르지만, 그다지 유용하게 사용할 수 있다고는 생각되지 않는다.
이 적은 메모리량은 이론상 게임 큐브의 약점이 된다. 이론상이라고 쓴 것은 이쪽도 Xbox처럼 이 약점을 커버하는 장치를 여러 가지 갖추고 있기 때문이다. 가능한 한 데이터량을 줄일 수 있도록 많은 고안이 되어 있다.
또, 이러한 아키텍쳐를 채택한 게임 큐브는 칩수가 불과 5개로 대단히 적다. 실장면적도 작아, 그것이 그 작은 케이스를 실현하고 있다. 거기에는 게임기는 작고 컴팩트해서 어린이 방의 바닥에 둘 수 있는 것이 아니면 안된다는 철학이 느껴진다.