벤치리뷰·뉴스·정보/아키텍처·정보분석

[정보분석] 팀스위니 미래의 게임 개발 기술. 소프트웨어 렌더링으로 회귀

tware 2008. 9. 11. 22:00

 

 

게임 프로그래밍계의 거인, Tim Sweeney가 "미래의 게임 개발 기술"을 말한다
대규모 병렬 처리, 차세대 게임 그래픽 소프트웨어 렌더링으로 회귀

 

 

 

"CEDEC 2008"의 마지막 날, 해외 트랙 중심 세션이 개최 되었다. 강사는 미국 Epic Games의 CEO Tim Sweeney 씨. Sweeney 씨는 Epic Games의 설립자이자 1997 년에 출시 된 FPS "Unreal"의 메인 개발자이자 현재는 회사의 기술 이사를 겸임하고 연구 개발을 계속하고 있다는 현역 최첨단 기술자이다.

 "미래의 게임 개발 기술"이라는 제목의 이 강연에서는 Sweeney 씨가 예측하는 게임 개발의 미래상을 제시했다. Sweeney 씨는 평론가나 분석가가 아니라 그 미래상을 구현하는 최전선에 서있는 인물이다. 따라서 강연 내용은 단순한 예측이 아니라 매우 설득력이 넘치는 것이 되었다. 현재 게임 개발 기술이 향하는 곳에 무엇이 있는지, Sweeney 씨의 강연 내용을 소개하고 싶다.

"CPU와 GPU의 아키텍처는 수렴하고 있다"
 하드웨어 플랫폼은 대규모 병렬 처리의 시대로 

 

 

Epic Games의 CEO Tim Sweeney 씨

 

본지의 독자라면 Epic Games에 대한 소개는 거의 필요 없을 것이다. GPU가 아직 존재하지 않는 시대에 소프트웨어 렌더링에 의한 훌륭한 FPS 게임 "Unreal"을 만들어 그 기반 기술을 "Unreal Engine"으로 게임 업계에 공급해 온 기업이다. 최신 버전의 "Unreal Engine 3.0"하이 엔드 게임 플랫폼의 최신 기술의 상징이며, 개발중인 타이틀을 포함하면 모든 장르에서 150 개 이상의 최신 게임을 채택하고 있다.


 그 기술 기반을 낳은 Tim Sweeney 씨의 게임 개발 기술 트랜드에 미치는 영향은 헤아릴 수 없는 것이다. 이번 강연에서는 Sweeney 씨가 현재 Epic Games에 종사하고 있는 차세대 게임 개발 기술에 대해 구체적이고 본질적인 전망이 말했다. 먼저 자기 소개에서 이야기를 일으킨 Sweeney 씨는 본론 및 현재 프로세서 아키텍처를 향해 방향을 바꿨다.

 CPU의 세계에서 최근 급격한 기세로 멀티코어화가 진행되고 있다. 오늘날 일반적인 PC 용 CPU는 코어를 2 내지 4 코어를 탑재하고 있어, 최신 게임기에서는 6코어, 8코어 같은 상황이 된다. 이 방향성은 더욱 추진력을 얻고 있으며, Intel이 2009년~2010년에 출시 예정하고 있는 CPU "Larrabee"(코드네임)는 10 코어의 범용 프로세서가 실현 될 전망이며, 각 코어가 1클럭 16개 32bit 부동 소수점 연산을 할 수 있는 GPU 계열 벡터 처리를 지원하게 된다.

 

[아키텍처] 베일을 벗은 인텔 CPU & GPU 하이브리드 라라비(Larrabee)


 한편 그래픽 처리의 메인 스트림을 담당해 온 GPU 분야 에서는 종래는 픽셀 쉐이더, 버텍스 쉐이더라고 했던 처리기구가 범용성을 늘려, 100코어 이상의 프로세서 처럼 작동하도록 되어가고 있다 . NVIDIA의 C 언어 계열 처리계 "CUDA"의 등장도 있고, 이러한 핵심에서 일반적인 데이터 처리도 할 수 있게 되어, GPU는 점점 CPU에 접근하고 있다.

 

 

CPU는 병렬 화가 진행되고 GPU는 범용화가 진행된다. 양자의 아키텍처는 수렴하고 있으며, 미래에는 초 병렬 처리 게임 기술의 기반이 된다.

 

Sweeney 씨는 이러한 프로세서의 최신 동향을 전해 "즉 CPU와 GPU의 아키텍처는 수렴하고 있다"고 표현했다. 그래서 슬라이드에 표시되는 "미래의 그래픽 하드웨어"의 이미지가 재미있다. 영상 신호 소켓 외에 아무것도 없는 손가락 크기의 판인 것이다. Sweeney 씨는 무엇을 말하려고 하는 것일까.

 Sweeney가 말하는, 2012년에서 2020년에 등장 할 수 있는 하드웨어는 지금까지 그래픽 칩이 자랑으로 여기고 있었던 벡터형의 연산과 CPU가 자랑해온 스칼라 연산을 통합한 아키텍처가 된다고 한다.

 즉, CPU처럼 거대하고 복잡한 프로그램을 실행하는 파트와 GPU 같은 방대한 데이터를 스트림 처리하는 부분이 혼재하게 된다는 것이다. 그 합산으로 실현하는 컴퓨팅 파워는 2012 년 4테라 플롭스 급이라는 엄청난 것이 된다.

 게다가 이 방향성은 더욱 코어 수를 늘리는 방향으로 확장되어 가는 것으로 전망된다. Sweeney 씨는 이에 대해 종전같은 클럭의 개념은 별로 변하지 않기는 하지만, 멀티 코어, 멀티 코어화가 진행되는 것으로, 2020년까지 현재의 1,000 배의 멀티 스레딩 및 벡터 처리 성능을 얻을 수 있다는 전망을 보여 줬다.

 

 

 

미래의 그래픽 하드웨어의 그림. 프로세서의 병렬 처리가 진행되어, 일반적인 처리와 그래픽 처리의 본질적인 차이가 사라져 가는 것으로, 전용 하드웨어가 필요 없어지는 것은 아닌가 하는 전망을 상징적으로 나타내고 있다.

 


게임 그래픽 소프트웨어 렌더링으로 회귀하는

 

미래의 게임 그래픽은 "Unreal"이래 소프트웨어 렌더링으로 회귀하는

 

거기서 Sweeney 씨는 미래의 게임 그래픽은 100% 소프트웨어 렌더링으로의 회귀가 이루어질 것이라고 말했다. "회귀"라고 하는 것은, GPU 등장 직전에 소프트웨어 렌더링으로 3D를 표현했다 "Unreal"이나 그 이전에 소프트웨어 3D 렌더링의 길을 열었던 "DOOM", "Quake"같은 세대의 원점 회귀를 의식한 것일 것이다.


 렌더링 처리를 소프트웨어로 행하는 것은 더 이상 Direct3D 및 Open GL 같은 API를 통한 하드웨어 처리가 무용하게 된다는 것이다. 앤티 앨리어싱, 래스터 같은 고정 기능 렌더링 파이프 라인은 완전히 무시되고 그래픽 프로그래머가 모든 픽셀을 소프트웨어적으로 내세우는.

 Sweeney 씨가 대부분의 프로그램을 행했다고 하는 "Unreal"은 모든 렌더링을 CPU에서 소프트웨어적으로 행하고 있었다. 그리고 Sweeney 씨가 향후 개발하는 것인 차세대 렌더링 엔진은 역시 모든 렌더링을 CPU 또는 GPU 시스템에서 실행되는 소프트웨어 행하게 될 것으로 보인다.

 

 

1 픽셀을 그리는데 사용할 수 있는 명령의 수는 "Unreal"시대의 1,000 배로 확대되고, 다양한 렌더링 기법을 사용할 수 있게 된다.

 

Sweeney 씨에 따르면 "Unreal"의 시대, 60Mhz의 Pentium은 픽셀당 16 명령어 320x200 도트, 30fps의 영상을 그려 내고 있었다고 한다. 그리고 2012년에 예상되는 4테라 플롭스 급의 프로세서는 1,920 x1, 080 해상도의 풀 HD 해상도, 60Hz에서 픽셀당 16,000 명령어를 사용할 수 있게 된다.

 계산의 힘으로 실현 가능한 실시간 렌더링 처리는 지금까지의 다각형 기반의 래스터 라이저의 생각과는 크게 다른 것이 된다. 하나의 가능성은 레이 트레이싱. 각 픽셀에 대해 게임 장면에서 빛의 움직임을 추적하는 방법이다. 물리학 적으로 올바른 라이팅을 얻을 수 있는 엄청난 계산량이 필요하며, 지금까지는 실시간 처리가 어려웠던 수법이다.

 Sweeney 씨가 가정하는 또 다른 방법은 "REYES"라는 렌더링 모델이다. 이것은 모든 오브젝트를 화면상의 픽셀보다 작은(서브 픽셀)사이즈의 폴리곤까지 잘게 자르고 그것을 단순 음영으로 그리는 것.

 "REYES"는 영화 업계에서 사용되는 수법으로, 말 그대로 영화 품질의 그래픽을 그리는 데 사용되어 왔다. 그러나 지금까지는 1 프레임 렌더링 하는데 몇분~수십 분 걸리던 불합리한 것이었다. 이것을 미래의 CPU / GPU에 소프트웨어 구현하고 실시간으로 움직이자는 것이다.

 Sweeney 씨는 이 렌더링 모델은 현재는 노멀맵에 디테일의 요철을 재현하고 있는 400만 폴리곤의 높은 세부 캐릭터를 그대로 게임 내에서 그리는 것이 가능하게 되어 버린다 한다. 이러한 렌더링 기법의 패러다임이 변화하여 게임 그래픽은 진정한 영화 품질에 육박할 수 있다.

 GPU가 처음 등장했을 때 게임 그래픽 기술이 혁신된 것 처럼 이번에는 GPU에서 떠나 다시 혁명이 일어날 그것이 Sweeney 씨의 비전이다.

 

 

 

 

 

 

 

 

 

 

 

 

미래의 그래픽 렌더링 방법에 대한 슬라이드. 이 중 '해석적 앤티 앨리어싱 "이라 하는 것은, 서브 픽셀 크기의 삼각형이 픽셀에 차지하는 면적을 기초로 픽셀의 색상을 계산하는 방법이라고 볼 수 있다

 


초 병렬 처리 시대에 대비해 게임 개발은 어떻게 변해 갈 것인가? 개발자가가장 중요시 해야하는 것은 "생산성"이며, Epic은 이미 투자를 시작

 

"Gears of War"개발에 걸린 인원과 비용. 게임 규모가 더 이상 커져도 개발 규모를 크게하는 것은 어렵다

 

 

"Unreal Engine 3.0"스레드 구성. 멀티 코어에 대응하려면 근본적으로 설계 변경이 필요

 

Sweeney 씨는 이 논의를 진행시켜 나가는 가운데, Epic Games가 지금까지 임한 게임 개발을 주제로 규모의 확대. 프로그램이 너무 복잡해져 있어, 멀티 코어 시대를 맞아  최대의 과제로 지적했다.

 "Unreal Engine 3.0"의 런칭 타이틀이 된 'Gears of War'에서는 15명의 프로그래머 45명의 아티스트가 2년 개발에 착수, 약 13억엔의 개발비를 사용했다. 게임 프로그램은 25만 라인 정도의 C + + 및 스크립트 코드로 쓰여 있어 그 기본 엔진은 200만 라인 정도의 C + + 코드이다. 그 아래에는 추가로 20정도의 미들웨어 라이브러리가 있다.

 "Unreal Engine 3.0 '은 멀티 코어 세대의 게임 엔진이며, 4개의 스레드로 동작하고 있다. 캐릭터나 스크립트를 달리는 게임 플레이 스레드, 영상을 만드는 렌더링 스레드, 그리고 물리적 처리나 애니메이션을 위한 도우미 스레드가 2개이다.

 이 4 스레드 구성은 현재의 멀티 코어 세대의 플랫폼에 잘 맞다. 그러나 향후 예상되는 수십, 수백 개의 코어를 가진 멀티 코어, 매시브 코어 세대의 플랫폼에서 비효율적이다. 따라서 차세대를 응시하면 멀티 코어 프로세서를 충분히 활용할 수 있는 대량의 스레드에 분할된 게임 엔진을 만들어야 한다.

 그러나, 현재도 멀티 스레드 프로그래밍은 개발의 어려움이 지적되고 있는 분야이다. 동시 병렬적으로 실행되는 프로그램이 모델 데이터 및 게임 상태 등의 정보 공유에 액세스하려고 할 때, 거기에는 반드시 데이터 충돌로 인한 버그 발생이나 교착 상태에 의한 프로그램의 중단 위험이 다양하다. 게다가, 그것을 효율적으로 디버깅하는 것은 매우 어렵고, 개발 규모의 확대나 기간의 장대화를 초래하고 있는 것이다.

 Sweeney 씨는 이것은 현재 주류 개발 언어인 C + +의 절차적 언어로서의 특성에 유래한다고 지적한다. 멀티 스레드의 문제를 피하기 위한 기법은 다수 있지만, Sweeney 씨의 말에 따르면 그것은 "단일 스레드 프로그램을 어셈블러로 작성 같은 것"이며, 생산성이 나쁜 것이다.

 

Sweeney 씨가 주목하는 순수 함수형 언어는 병렬 처리를 안전하게 실행할 수 있으며, 멀티 코어 시대의 생산성에 기여한다

 

 약간 프로그래머의 설명이 되어 버리지만, 여기에서 논의를 간단하게 소개하자. Sweeney 씨는 이 문제를 해결하기 위해 게임 개발 언어로 순수 함수형 언어가 필요할 것이라고 말한다. 순수 함수형 언어는 프로그램의 함수가 반환 값에 의해서만 작용하는 구조의 처리계이다.

 이러한 처리계는 C + +와 같은 공유 메모리 액세스와 I / O 작업은 기본적으로 행할 수 없다. 그 상환 방식으로 각 함수의 원자성이 구​​조적으로 보장되고 안전한 병렬 실행을 할 수 있다. 게다가 컴파일러가 대응만 하면 함수를 자동으로 다수의 코어 분산 처리 할 수​​ 있다는 확장 가능한 실행 바이너리를 일으킬 수 있다.

 Sweeney 씨는 순수 함수형 언어가 가지는 병렬 처리 안전성에 주목하고 있으며, 향후 게임 프로그래밍 그러한 처리계로 이행해 나가야 한다고 했다. Sweeney 씨는 해당 용도로 언어 "Haskel"를 들었지만, 게임 개발의 메인 스트림으로 쓸수 있는 언어는 아직 등장하지 않고 미래를 기대하고 있다고 한다.

       

 

 

 

 

 

C + +에서 멀티 스레드 프로그램 작성은 단일 스레드를 어셈블러로 작성 같은 것이라고 Sweeney 씨는 말한다. 그 근본적인 해결이 될 것 같은 언어는 순수 함수형 언어 특성을 가져야 하지만 현재 게임 개발에 사용할 수 있는 수준의 처리계는 존재하지 않는다. 차선책으로 C + +의 "소프트웨어 트랜잭션 메모리" 확장도 기대할 수 있다고 하는데, Sweeney 씨는 향후 게임 개발에 사용할 수 있는 순수 함수형 언어가 개발 될 것으로 기대하고 있다

 

[분석정보] Intel, 기간 서버용 CPU 신제품 Xeon E7 v3발표


하드웨어는 몇 배나 빠르게 되지만, 예산은 몇 배나 늘릴 수 없다. 게임 개발자는 생산성을 중시해야

 

 

성능이 떨어져도 하드웨어가 견인해 준다. 게임 개발은 생산성을 최우선 해야 한다는 것이 Sweeney 씨의 원칙론이다.

 

 Sweeney 씨의 개발 언어에 관한 토론을 들으면 게임 개발자가 반드시 주의 할 문제가 하나있다. 그런 "고급"언어를 사용하여 게임을 개발하면 C + +와 같은 낮은 수준 메모리 액세스도 가능한 언어에 비해 잠재적인 실행 속도가 저하되는 것이다. 이 문제는 어떻게 파악하면 좋을까.

 거기서 Sweeney 씨가 말한 것이 미래 게임 개발의 원칙론이다. 가라사대, "생산성은 필수" 앞서 말한 바와 같이, 플랫폼의 처리 능력은 몇 년 동안 2배, 10년에 1,000시간이 될 수 있다. 그러나 게임 개발 예산을 10배, 100 배로 할 수 없다. 그래서 생산성을 위해 성능을 희생 할 수 밖에 없고 그래도 좋은 것이다.

 거기에 플러스하여 Sweeney 씨는 현재 게임 플랫폼 하드웨어가 너무 복잡 것도 지적했다. 만약 Sweeney 씨가 말하는 순수 함수형 언어로 게임 개발이 실현했다고 하면, 그것을 기준으로 한다면 C + +의 프로그램 개발 비용은 멀티 스레드 버전 2배, 플레이 스테이션 3 버전에서 5배, 쉐이더 언어로 설명하는 GPGPU 버전에서 10배 또는 그 이상으로도 된다고 한다. 2배 이상의 비용은 게임 회사의 비즈니스에 합리적인 것은 아니다.

 따라서, 6 코어, 8 코어 이후 멀티 코어 세대의 플랫폼에 대비하여 게임 회사는 개발 기반을 갖출 필요가 있다. 이러한 논의를 밟은 다음, Sweeney 씨는 마지막에 이렇게 말했다. ""Unreal Engine 3.0 "의 개발에는 3년의 기간이 걸렸습니다. 그리고 차세대 엔진을 개발하려면 5년 정도는 걸릴 것입니다. 즉, 올해 개발을 시작했다면 출시 가능 기간 : 2013년 입니다. 그래서 지금 시작해야 하는 것입니다. 우리는 이미 차세대 투자를 시작하고 있습니다. "

 Epic Games의 '차세대 엔진'은 아마도 Tim Sweeney 씨가 말했던 논의를 기반으로 하는 디자인을 가지게 될 것이다. 그리고 2013 년에는 Sweeney 씨가 말한대로, 수십 코어에서 수백 코어 수준의 게임 플랫폼이 등장하고 있을 가능성이 있다. Sweeney 씨 자신이 게임 개발 기술을 선도하는 실천자임을 감안하면 이는 단순한 예측이 아니라 확실성이 있을 예정 사항으로 파악해야 할지도 모른다.

 그것이 그래픽 렌더링 모델에 미치는 영향을 감안하면 '차세대 엔진'등장으로 인한 충격은 "Unreal Engine 3.0"이 등장 할 때의 그것과는 차원이 달라 보인다. 다가올 패러다임의 변화에​​ 게임 업계가 어떻게 대비해야 하나 매우 생각하게 되는 세션 이었다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tim Sweeney 씨는 Epic Games의 CEO로서 회사를 경영하는 입장에 있으면서, 동시에 선진 기술을 연구 개발하는 입장에 있다. 그 Sweeney 씨의 이번에 확장된 논의는 미래의 가능한 폭발적인 프로세서 코어수의 증가에 어떻게 업계가 대응해야 할 것인가 라는 것을 하나의 테마로 하는 것이었다. 많은 게임 개발자에게 중요한 메시지가 전해졌던 세션이었다.

 

2008.9.11  지나간 고전 기사는 시간이 지나면 예전 날짜로 등록시간을 변경하여 기사의 위치가 내려갑니다

 

퀘이크

 

 

 

CPU: P54C 90MHz Pentium
RAM:16MB
Video: Trio 64+ on Board 1MB SVGA
Hard Drive: 1GB (When Formatted)

 

3D Games on Pentium 1 MMX Laptop from 1998 with 1MB Video ram

 

This is running in VGA mode

 

software = CPU 처리

 

 

Pentium 166 MMX // 16 MB RAM // ATI Mach 64 2 MB RAM // SB live! // HDD~ 1.6 GB

// MSI MS5143 VER:2 Motherboard Socket 7

 

 

https://youtu.be/8leTSKPJLXc

Quake 2: Software Render vs OpenGL Render

Unreal Castle (Software Render)

https://youtu.be/V4oVDS19AWI

 

 

Toshiba Libretto 50CT DOS WIN95 QUAKE Vintage Game Pentium 75 VGA

https://youtu.be/9EyjXjlYhwo

 

 

Libretto FF1100 Unreal Tournament ut 99

https://youtu.be/ZSoPRMqmJMo

 

 

Quake Timedemo on 386

Running Quake 1 Timedemo Demo1 on 386DX-40 with Cyrix FasMath (x87 코프로세서 호환 칩) in 320x200 on TSENG ET4000, near max. screensize.

https://youtu.be/E2zsV-kXMIk

 

 

Quake 1 Pentium 233MHz MMX 320x200

Quake 1 on Pentium MMX 233MHz and DDR RAM + S3 Trio PCI card

https://youtu.be/XrArsxYloD8

 

 

[고전 1996/06/25] DOOM의 id Software에서 신작 3D 게임 "Quake" 등장

 

 

[고전 1996/09/17] 세가 Windows 95용 버추어 캅을 10월에 발매

 

 

[고전 1997/01/13] 세가, MMX 전용 "전뇌전기 버추얼 온"과 전용 컨트롤러를 발표

 

 

[고전 1997/03/28] 게임 소프트 소감 전뇌전기 버추얼 온

 

 

[분석정보] 매니코어 프로세서로 손바닥 슈퍼 컴퓨터를 실현

 

 

[분석정보] TOP500 슈퍼컴퓨터 순위 2013년 6월

 

 

[분석정보] 4만 8000개의 제온파이로 중국 톈허2 세계에서 가장 빠른 슈퍼 컴퓨터

 

 

[제품뉴스] Intel Xeon Phi 새로운 폼 팩터 채용 포함 5모델 추가

[정보분석] 인텔 60코어 매니코어 "Xeon Phi" 정식발표

 

 

[분석정보] 인텔 슈퍼컴퓨터용 가속기 Xeon Phi 5110P 발표

 

 

[분석정보] Intel, HPC 전용 보조 프로세서 Xeon Phi 2013년 1월부터 일반용으로 출시

 

 

[분석정보] IDF 2012에서 주목한 한가지, 매니 코어 "Knights Corner"

 

 

[정보분석] 엔비디아 세계 최다 트렌지스터 칩 GK 110 공개

 

 

[정보분석] IDF 2011 Justin Rattner 기조연설 매니코어 시대가 다가옴 1/2부

 

 

[정보분석] IDF 2011 Justin Rattner 기조연설 매니코어 시대가 다가옴 2/2부

 

 

[정보분석] 같은 무렵에 시작된 Nehalem과 Larrabee와 Atom

 

 

[분석정보] Intel은 Larrabee 계획과 아키텍처를 어떻게 바꾸나?

 

 

[분석정보] 다시 처음부터 시작된 라라비 무엇이 문제였나?

 

 

[분석정보] 라라비 (Larrabee)의 비장의 카드 공유 가상 메모리

 

 

[분석정보] 인텔의 스칼라 CPU + 라라비의 이기종 CPU 비전

 

 

[분석정보] Larrabee는 SIMD와 MIMD의 균형 - Intel CTO가 말한다.

 

 

[정보분석](암달의 법칙) 2010년대 100 코어 CPU 시대를 향해서 달리는 CPU 제조사

 

 

[정보분석] Intel 힐스보로가 개발하는 CPU 아키텍처의 방향성

 

 

[정보분석] 팀스위니 미래의 게임 개발 기술. 소프트웨어 렌더링으로 회귀

 

 

[분석정보] 정식 발표된 라라비(Larrabee) 아키텍처

 

 

[아키텍처] 베일을 벗은 인텔 CPU & GPU 하이브리드 라라비(Larrabee)

 

 

[정보분석] 암달의 법칙(Amdahl's law)을 둘러싼 Intel과 AMD의 싸움

 

 

[분석정보] GDC 2009 드디어 소프트 개발자 정보도 나온 "Larrabee"

 

 

[분석정보] 그래픽 및 DirectX 로드맵을 정리

 

 

[정보분석] 모든 CPU는 멀티 스레드로, 명확하게 된 CPU의 방향

 

 

[아키텍처] IDF 2012 인텔 차세대 주력 CPU Haswell(하스웰) 공개