소스 엔진

최근 수정 시각:

파일:밸브 코퍼레이션.png
게임 엔진

GoldSrc

Source

Source 2


파일:external/upload.wikimedia.org/Source_engine_logo.png
source.valvesoftware.com


밸브 코퍼레이션의 비주얼 아티스트 그레이 호스필드(Gray Horsfield)의 테크니컬 데모.


셰이더 테크니컬 데모.

1. 개요2. 상세
2.1. 물리 엔진2.2. 소리 엔진2.3. 그래픽 시스템
3. 역사
3.1. 2004년 하프라이프 2, 카운터 스트라이크: 소스 출시3.2. 2005년 하프 라이프 2: 로스트 코스트 시연, 데이 오브 디피트: 소스 출시3.3. 2006년 하프 라이프 2: 에피소드 1 출시3.4. 2007년 하프 라이프 2: 에피소드 2, 팀 포트리스 2, 포탈 출시3.5. 2008년 레프트 4 데드 출시3.6. 2009년 레프트 4 데드 2 출시3.7. 2010년 맥 OS X 지원3.8. 2011년 포탈 2 출시3.9. 2012년 카운터 스트라이크: 글로벌 오펜시브 출시3.10. 2013년 리눅스용 스팀 출시, 도타 2 정식 출시3.11. 2014년 안드로이드 지원3.12. 2015년 소스 엔진 2 발표3.13. 2016년 Aperture Robot Repair 출시3.14. 2019년 모바일 플랫폼 지원 (예정)
4. 소스 엔진을 사용한 게임

1. 개요[편집]

2. 상세[편집]

퀘이크 엔진을 대량으로 개조해서 만든 골드 소스 엔진 대신 새로 개발된 엔진으로 하프 라이프 2에 처음으로 사용되었다. 픽사의 3D 영화 제작에 쓰이는 셰이더 기반 렌더러를 사용하였다. 또한 이전에 골드 소스 엔진으로 개발되었던 몇몇 게임들이 소스 엔진으로 리메이크되기도 했다. 소스 엔진으로 개발된 게임들은 대부분 밸브가 개발한 게임들이지만, 마비노기 영웅전과 Zeno Clash 같이 다른 회사에서 개발한 게임들도 꽤 있다. 밸브 쪽에서 NDA를 걸고 라이선스를 판매하기 때문.

2.1. 물리 엔진[편집]

소스 엔진은 게임에 쓰이는 정교한 물리적 움직임을 위해 하복 엔진이라고 하는 별도의 미들웨어를 이용한다. 밸브가 만든 것은 아니며, 자세한 것은 해당 항목 참고. 하복 엔진을 네트워크상 물리 효과 지원을 위해 손대지 않은 곳이 없을 정도로 커스터마이즈해서 사용하였다. 또한 고사양은 물론 저사양에서도 높은 퀄리티의 효과를 보여준다는 점도 특징이다.

소스 2에는 밸브가 자체 개발한 물리 엔진인 루비콘(Rubikon)으로 교체되었다.

2.2. 소리 엔진[편집]

소리에는 마일즈 사운드 시스템이라는 미들웨어를 이용하였다. 물리엔진에 HavokPhysX가 있다면 소리엔진에는 마일즈 사운드 시스템FMOD가 있다고 할 정도로 존재는 드러나지 않지만 상당히 자주 쓰이는 엔진이다.

2.3. 그래픽 시스템[편집]

마테리얼 시스템이라는 특유의 엔진을 사용하고 있는데, 물체에 재질을 미리 정해두면 자동으로 해당 물체에 쓸 텍스처, 사운드, 물체의 강도, 부숴졌을 때의 반응 등이 연동되는 시스템이며, CPU 의존성이 높고 소스 엔진 게임의 거의 대부분의 처리능력을 여기에 쓴다고 보면 된다.[1]

3. 역사[편집]

3.1. 2004년 하프라이프 2, 카운터 스트라이크: 소스 출시[편집]

  • 지원 DirectX 버전: DX6/7/8/8.1/9/9b

  • 사용 게임: 현재 없음


당시에는 AMD CPU와 협력관계였으며, 특히 ATI Radeon과 협력관계가 깊었다. 현재는 모든 소스 엔진이 2007년도 이상 버전으로 업그레이드되었기 때문에 지금은 흔적을 찾아볼 수 없다.

3.2. 2005년 하프 라이프 2: 로스트 코스트 시연, 데이 오브 디피트: 소스 출시[편집]


HDR 시연용 엔진. 코멘터리 시스템을 최초로 도입했으며, NVIDIA VGA에도 신경을 써 주었다. AMD CPU와 협력관계를 유지하여 64비트 버전 엔진도 제작되었으나. 바로 다음해 하프 라이프 2: 에피소드 1부터 인텔과의 협력관계로 바뀌면서 그 후로 64비트 엔진은 제작되지 않았다. 시연용으로 제작한 것이라 최적화가 부족한 관계로 하프 라이프 2: 에피소드 1보다 성능이 후달리는 편.

HDR 시연에도 한가지 일화가 있는데. 빛 계산은 수치를 세밀하게 표현하기 힘든 정수보다 부동소수점(Floating Pont)까지 끌어다 계산하는 것이 HDR의 정석이다. 예를 들어 1.5, 1.6이라는 수치는 정수로는 절대 표현할 수 없으며, 소수점까지 계산하기에는 쉐이더라는 연산 유닛의 성능의 소모가 심하고, 무엇보다 제일 큰 문제는 당시 주류 VGA들은 ROP라는 유닛들이 소수점 처리기능이 취약했던 것.

결국 밸브는 다른게임들이 시도했던 소수점계산 방식의 HDR을 포기하고, 색별 256단계의 정수 표현의 HDR을 구현하였다.이로 인해서 낮은 사양의 VGA도 HDR이 구현 가능해졌고 HDR이 정식으로 편입되기 이전 버전의 DX9/DX9b 카드들도 구원받았다. 위에서 1.5, 1.6같은 부동소수점으로 표현 가능한 수치들은 스케일을 늘려서 15, 16 식으로 정수로 표현하게 하였다. 물론 소수점 네 자리 이후가 보편적인 부동소수점에 비하면 256단계로는 표현 제약도 심해지지만, 반대로 라이트닝 계산은 계산을 세밀하게 한다고 해도 눈에 띄는 차이가 거의 없기에 이런 방식을 사용할 수 있게 된 것. 빛의 계산이 부정확해서 발생하는 오차로 인해, 여기저기 추가적으로 최적화 할것이 많아지는점이 생긴다는것은 양날의 검. 이후 레프트 4 데드 2까지도 정수방식의 HDR을 계속 사용하게 된다.

현재 스팀을 통해 배포되는 엔진중 가장 오래된 버전의 엔진.

2009년 말 64비트 엔진 배포를 중단하였다.

3.3. 2006년 하프 라이프 2: 에피소드 1 출시[편집]


제작협력사를 인텔로 바꾸고 NVIDIA에 대한 코드 최적화가 실시되기 시작한 버전. 정식으로 HDR이 지원되기 시작하였으며, NPC들의 AI향상, 반응 스크립트 개선, 덤으로 2005년에 출시된 데이 오브 디피트: 소스에서 소리효과를 대폭 개선했다. 인텔 CPU 코드최적화에 필요한 VTune Performance Analyzer의 흔적도 보인다. 이후 기존 소스엔진 게임들이 모두 에피소드 1 엔진으로 업그레이드되었으며 쉐이더가 없는 DX6/7 VGA에 대한 지원이 빠지기 시작한다.

같은 DX8과 9를 지원하지만 효과를 처리하는 몇몇 부분은 ATi쪽과 사용 코드가 달라 알파채널을 지원하는 이팩트를 쓰면 색감이 빠져 보인다. 물효과라던지 얼음효과 같이 반사와 투명도가 같이 존재하는 효과들은 색이 많이 연해 보이는 문제점이 있다.

3.4. 2007년 하프 라이프 2: 에피소드 2, 팀 포트리스 2, 포탈 출시[편집]


제작 협력 VGA 회사를 완전히 NVIDIA로 바꾸고 스팀 상점 페이지에도 엔비디아 로고를 달고 나온다. 개선점만 보자면 소스 엔진 출시 이후 가장 큰 혁명이라고 불릴 정도. 별개로 소스2007엔진이라고 불리우기도 한다.

  • 파티클 효과 실시간 계산 및 유연한 적용 시작 파티클 계산의 멀티코어 CPU지원

  • 손전등 플래쉬등의 가변적인 라이팅으로 인한 그림자 생성효과 지원

  • 얼굴 표정의 풀 VGA처리 및 자동적으로 생성되는 립싱크 로컬라이즈 지원


가장 중요한점은 마테리얼 시스템의 멀티코어 CPU지원이었다. 소스 엔진의 특성상 CPU 처리가 잦은데, 이전까진 CPU 하나만 썼기 때문에 그래픽 효과가 좋으면 프레임이 많이 하락하고 높은 프레임 유지도 쉽지 않았다. 게다가 팀 포트리스 2는 특수효과가 범벅된 게임이라, CPU 하나만 쓰게 하면 당시의 쟁쟁한 사양도 32명방 난전이 일어나면 20프레임 띄우는게 다반사였다. 결국 레프트 4 데드 출시 후에 멀티코어 CPU 지원이 정식 패치되었다. 덤으로 데이 오브 디피트: 소스도 같이 엔진 업그레이드를 받았으며, 맥 지원과 동시에 주요 카운터 스트라이크: 소스도 엔진 업그레이드를 포함한 업데이트[2]를 받게 되었다.

팀 포트리스 2부터 DX7 지원이 완전히 삭제되었다. 강제로 DX7 모드로 구동시키면 까만 화면만 출력된다.

3.5. 2008년 레프트 4 데드 출시[편집]

  • 지원 DirectX 버전: 9/9b/9c


NVIDIA와도, ATI와도 제작 협력을 하지 않고 독립적으로 개발된 버전으로, 2007년 엔진이과 비교했을 때 완벽하게 멀티코어 CPU 지원, 다이렉트X 9c 버전 기술 정식 채용했다. 그리고 모션 캡처를 통한 상황별 애니메이션이 최초로 적용되었다.

그래픽 관련 콘솔 명령어가 많이 막혀버렸고, DX8.1이하 버전에 대한 지원이 완전히 끊겼다. -dxlevel도 먹히지 않는다.

3.6. 2009년 레프트 4 데드 2 출시[편집]

  • 지원 DirectX 버전: DX 9/9b/9c/10 (알파)

레프트 4 데드와 마찬가지로 카운터 스트라이크: 소스 기반이지만. 엔진 버전이 2.0.0.4로 급격하게 빌드넘버가 상승하면서 엔진을 거의 갈아 엎었다는것을 암시한다. 그러나 작동하지 않는 카운터 스트라이크: 소스 명령어는 여전히 남아있더라는게 후문.

대대적인 버전업에도 불구하고, 바뀐게 눈에 띄지 않는다는 점은 어느정도 안습 요소로 작용한다. 전작들이 DX9c 베타 버전으로 코드만 넣어놓고 사용을 하지 않거나, 아주 일부만 적용했다면 DX9c 버전의 사용빈도가 월등하게 높아졌고 VGA에서 DX9b 버전 대비 높은 성능으로 표현한것이 특징. 특히 레프트 4 데드 2의 감염자의 신체 훼손이 DX9c로 표현한 주요 효과들이다.

3.7. 2010년 맥 OS X 지원[편집]

OS X를 지원하는 버전. 맥 지원을 위해 주요 게임들이 오렌지 박스 엔진으로 업그레이드되었다. 맥에서는 현재 OpenGL을 이용하며 오디오는 OpenAL을 이용하는 중.

3.8. 2011년 포탈 2 출시[편집]

레프트 4 데드 2의 엔진을 개량한 엔진이다. 엔진 버전은 2001이다. 퍼즐요소로서 '젤'이 추가되면서 게임콘솔에서 발생할 수 있는 성능저하문제를 감소시키기 위해 액체 방울을 표현하는 코드가 수정되었으며, 포탈건에 사용된 포탈을 응용해 별개의 공간을 눈에 띄지않게 이어주는 일명 '월드포탈' 기능이 추가되었다. [3]

3.9. 2012년 카운터 스트라이크: 글로벌 오펜시브 출시[편집]

2012년 빌드 버전 4932로 업그레이드되었다. 카운터 스트라이크: 글로벌 오펜시브도타 2에 사용된 엔진이다. FXAA 등의 기술 지원이 추가되어 있으며, 게임 내에서는 아직 볼 수 없지만 Ambient Occlusion, Cinematographic Motion blur, Tyndall Effects, Dynamic Lighting, DoF 등의 기술도 적용되어 있다.

3.10. 2013년 리눅스용 스팀 출시, 도타 2 정식 출시[편집]

엔진버전 23, 빌드 5134로 업데이트 되었고, OpenGL 그래픽 API 가속을 통해서 공식적으로 리눅스도 지원하게 되었다.

3.11. 2014년 안드로이드 지원[편집]

엔비디아에서 하프 라이프 2와 포탈을 쉴드용으로 포팅하면서 지원하게 되었다. 다만 테그라만 지원하는 상황이며 밸브에서 아직 공식 지원하지는 않는다.

3.12. 2015년 소스 엔진 2 발표[편집]

본래 소스 엔진 2의 존재는 게이브 뉴웰이 자신의 생일 때 밝혀 처음 드러났다. 이후 2014년 8월 7일의 도타 2 베타 커스텀 게임 업데이트에 조용히 소스 2를 사용한 것으로 알려졌다. 그리고 2015년 리본 베타를 거쳐 정식으로 도타 2에 처음으로 적용되었다.

스팀 개발자 커뮤니티에서 소스 엔진 2의 근황을 확인 할수 있다. https://developer.valvesoftware.com/wiki/Source_2
아직 소스 엔진 2가 공개 되진 않았지만, 도타2 워크샵 툴로 어느정도는 체험할 수 있다.

3.13. 2016년 Aperture Robot Repair 출시[편집]



GDC2015에서 스팀 VR 퍼포먼스 테스트용으로 만들어진 'Aperture Robot Repair'가 소스 엔진 2를 사용한다.# 2016년에 스팀에서 SteamVR Performance Test이라는 이름으로 무료 공개되었으며, 이후 더 랩에서도 포함되었다. 하지만 더 랩의 다른 콘텐츠들은 전부 유니티 엔진을 사용하며, 소스 엔진 2를 사용하는 것은 Aperture Robot Repair 뿐이다.

Aperture Robot Repair의 경우, 타겟이 VR이다 보니 컴퓨터에 요구하는 사양은 기존의 밸브 제품보다 훨씬 더높은 사양을 요구한다. 하지만 그에 맞게 Aperture Robot Repair은 더욱 더 높은 퀄리티를 자랑한다. 하지만 이 VR데모가 출시되고 많은 추측이 오가고 있다.

일단 유튜브에서 화재가 되는 것은 '이게 정말 소스 엔진 2라면 실망이다, 나는 소스 엔진 2가 언리얼 엔진 4와 비견되는 성능을 가질 줄 알았다.'라는 의견과 '기존의 소스 엔진 1과 차별점이 안보인다면, 이 데모를 플레이 해보지 않은 것이다. 밸브는 VR데모에 많은 시간을 투자할 필요가 없고 소스 엔진 2는 출시도 안됐을 뿐임에도 훌륭한 비주얼적 디테일을 가지고 있다. 엄연히 소스 엔진 2는 언리얼 엔진 4와 비견되는 최고의 엔진 중 하나이다.'라는 두 가지 의견으로 나뉘고 있다.

비주얼적 디테일의 향상점으로 꼽히는 것은 첫번째로 발전한 머테리얼 시스템인데 기존의 소스 엔진 1의 경우, 금속재가 마치 흑연을 바른듯한 클레이였지만, 이번 신엔진에서는 언리얼 엔진과 비견되는 머테리얼 시스템이 적용되었다.

두번째로, 텍스처. 포탈2와 CS GO의 텍스처 퀄리티를 높음 혹은 매우 높음으로 설정하고 벽을 보면 현세대 게임에 뒤쳐지는 퀄리티를 볼 수 있다. 하지만 Aperture Robot Repair의 경우, 기존의 밸브가 해왔던 개발 방식과는 달리 사물 하나하나에 폴리곤이 많이 들어갔을 뿐더러 고해상도 텍스처가 입혀져 비주얼적으로 일취월장했다고 할 수 있다.

이 외에도, VR Substance Painter이라고 불리우는 물리 기반 렌더링 기술의 도입도 예정되어 있다고 한다.

여담이지만, 현재 밸브의 소스 엔진 2의 기술 명칭이나 Aperture Robot Repair로 인해 소스 엔진 2의 메인 타겟은 기존 PC가 아닌 VR이라는 이야기가 있다.

어쩌면 그말이 사실인 지, 최근 게이브 뉴웰이 유로게이머와 한 인터뷰에 따르면 하이엔드 VR을 위한 게임을 3 가지 준비 중이며, 이 게임들에는 소스 엔진 2와 유니티 엔진으로 개발 중이라고 전했다.

3.14. 2019년 모바일 플랫폼 지원 (예정)[편집]

공식 인터뷰에서 2019년 중반기에 소스2의 안드로이드iOS등 모바일 플랫폼에 포팅을 준비하고 있으며 아티팩트에 적용된다고 한다#

4. 소스 엔진을 사용한 게임[편집]

[1] 이 때문에 소스 엔진 게임 파일 중 material이라는 폴더가 있다. 좋은 예로 팀 포트리스 2의 스파이 전용 무기인 고드름으로 백스탭을 하면 캐릭터가 얼음처럼 변하는게 마테리얼을 이용한 효과다.[2] 다른 밸브 게임들이 소스엔진 최신버전이 적용된 채로 출시되고 있었으나 밸런싱 차원에서인지 카스소스만은 출시 당시의 초기 그대로가 유지되고 있었다. 카스소스 베타가 나오고, 베타에서 먼저 적용된 뒤 시간 차이를 두고 본 게임 클라이언트에도 정식으로 적용되었다.[3] 코멘터리에서는 포탈2 레벨디자인시 발생하는 수정사항을 빠르게 고치기위해서 추가했으며, 확정된 이후에는 완성도를 위해서 모두 제거하였으나,제거시 발생하는 기술적문제로인해서 딱 한곳에만 월드포탈을 남겨놨다고 한다. 참고로,링크된 영상은 포탈2에 남아있는 두번째 월드포탈이다[4] 2019년 중반기 안드로이드iOS 를 지원할 예정이다.#[5] 소스 엔진 2로 업데이트 예정. 2016년 3분기 즈음 적용될 계획이었으나 다시 2017년 여름으로 미뤄졌는데... 또다시 기약없이 넘어갔다.[6] 서비스 종료