소스 엔진


게임 엔진

골드 소스

소스

소스 2

공식 홈페이지

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

셰이더 테크니컬 데모.

1. 개요
2. 상세
2.2. 소리 엔진
2.3. 그래픽 시스템
3. 역사
4. 소스 2
4.1. 2019년 모바일 플랫폼 지원
5. 루머
6. 소스엔진이 사용된 게임
6.1. 밸브가 제작한 게임
6.2. 타사에서 제작한 게임

1. 개요

밸브 코퍼레이션이 개발한 게임 엔진.

2. 상세

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

2010년대 중후반을 들어서 상용 게임은 유니티 엔진언리얼 엔진에 밀려 잘 안쓰이는 추세다. 일단 엔진 자체가 너무 오래돼서 개조하는데 한계가 있고[1] 무엇보다 하복 엔진 라이센스 비용이 굉장히 비싸기 때문. 이와 반대로 소스 엔진 기반 모드는 상당히 많이 나오는 편. 소스 엔진 2가 과연 언리얼에 대적할 수 있는 수준이 될지는 두고 봐야한다.

2.1. 물리 엔진

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

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

2.2. 소리 엔진

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

2.3. 그래픽 시스템

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

2004년산 엔진이다보니 빛의 반사를 구현하는 기술은 배우 고전적인 방법을 쓴다. 큐브맵(cube map)에 대해 설명하자면 게임 그래픽에 있어서 표면에 반사되는 풍경을 실시간으로 계산하면 사양이 높아지기 때문에 정지되어 있는 이미지를 대신 비추어서 반사가 되보이는 것 처럼 눈속임을 쓰는 방식이다. 하지만 소스 엔진 자체가 이 큐브맵을 플레이어의 위치와 상관없이 무조건 멀리 고정된 거리 시야로 유지시키다보니[3] 상당히 비현실적으로 느껴진다. 소스엔진을 한계까지 업그레이드해 가장 발전된 그래픽을 보여준 블랙 메사 조차도 이 비현실적인 큐브맵은 고치지 않고 그대로 사용했었다.

하지만 위 영상처럼 유저들이 직접 큐브맵을 알맞게 배치시키는 방법을 잧아내었고, 현재 개발중인 소스엔진 게임인 오퍼레이션: 블랙 메사가드 듀티 역시 이 방식을 사용해 큐브맵을 고칠 것이라 한다.# 사실 하프라이프2에 물 쉐이더 기능은 실시간 반사 기능을 제공하지만 정작 표면 반사에서는 쓰이지 않았다. 유저가 이를 임의적으로 구현한 버전도 존재한다.

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

팀 포트리스 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이다. 퍼즐 요소로 액체 젤이 추가되면서 게임 콘솔에서 발생할 수 있는 성능저하문제를 감소시키기 위해 액체 방울을 표현하는 코드가 수정되었으며, 포탈건에 사용된 포탈을 응용해 별개의 공간을 눈에 띄지않게 연결해주는 일명 '월드 포탈' 기능이 추가되었다.[5][6]

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와 포탈을 쉴드용으로 포팅하면서 지원하게 되었다. NVIDIA Tegra만 지원하며 밸브에서 아직 공식 지원하지는 않는다.

4. 소스 2

2014년 8월 7일의 도타 2 베타 커스텀 게임 업데이트에 소스 2를 적용했고 2015년 베타를 거쳐 정식으로 도타 2에 처음으로 적용되었다. 게이브 뉴웰이 유로게이머와 한 인터뷰에 따르면 하이엔드 VR을 위한 게임을 3 가지 준비 중이며, 이 게임들에는 소스 2와 유니티 엔진으로 개발 중이라고 전했다.

소스 2는 계속 작업 중인 엔진으로 현재 적용된 게임들은 과도기적인 성향이 강하다.[7] VR Substance Painter이라고 불리우는 물리 기반 렌더링 기술의 도입도 예정되어 있다. 밸브의 소스 2의 기술 명칭이나 Aperture Robot Repair로 인해 소스 2의 메인 타겟은 기존 PC가 아닌 VR이라는 이야기가 있다.

GDC 2015에서 스팀 VR 퍼포먼스 테스트용으로 만들어진 Aperture Robot Repair는 스팀VR 성능 테스트더 랩에 수록되었고 해당 게임 중 유일하게 유니티가 아닌 소스 2로 개발되었으며 유니티 버전에 비해 비교적 훌륭한 비주얼 디테일이 눈에 들어온다. 스팀VR 퍼포먼스 테스트용으로도 사용해서 그런지는 몰라도 기존 소스 엔진 기반 게임에 비해 폴리곤의 숫자가 높아져서 모델링 수준이 꽤나 높아진 모습을 볼 수 있다. 또한 밸브는 평소 자잘한 요소를 생략하는 최적화 방식을 사용한 반면, 이번 데모에서는 사물 하나하나에 폴리곤이 많이 들어갔을 뿐더러 고해상도 텍스처가 입혀져 비주얼적으로 일취월장했다. 머테리얼 시스템 역시 발전해 기존의 소스 엔진 1의 경우 금속재가 마치 흑연을 바른듯한 클레이였지만 소스 2에서는 언리얼 엔진과 비견되는 머테리얼 시스템이 적용되었다. 대신 플랫폼이 VR이다 보니 요구 사양이 기존의 밸브 제품보다 높아졌다.

4.1. 2019년 모바일 플랫폼 지원

2019년에 도타 언더로드가 출시하면서 안드로이드iOS 지원을 시작했다.[8]

4.2. 2020년 하프라이프: 알릭스 출시

소스 엔진 1에 비해 눈부신 발전을 이뤘다. 물리엔진은 거의 현실과 같을 정도로 놀라운 상호작용을 보여주고, 소스의 강점이던 멀리서 보면 실사같은 느낌은 더욱더 강해져 사진으로 착각할 수준이다. 약점이던 디테일도 장점으로 변해 아주 세세한 면모를 보여주는데, 중력 장갑을 필두로 꼼꼼한 디테일을 보여준다. 광원도 크게 발전해 자연스러워졌다. 이렇게 하프라이프: 알릭스에서 보여준 소스 엔진 2의 그래픽은 현세대 최고 수준의 그래픽이라 해도 손색이 없지만, 아쉬운 점으로 원래 물 그래픽 좋기로 유명한 소스 엔진이건만 이번 작품은 물이 거의 안 나와 이를 평가하기가 어렵다는 점이다.

한편 알릭스에 사용된 소스 2 에셋으로 벌써부터 이전 소스 1 게임들을 소스 2로 이식하는 시도가 이루어지고 있다. 특히 게리 뉴먼은 트위터로 게리 모드 2를 소스 2로 만들 수 있다는 떡밥을 날렸다.

5. 루머

2020년 4월 23일, 밸브의 한 직원이 자신의 지인인 Tyler McVicker라는, 밸브에 관한 정보나 소문을 올리는 유튜버에게 소스 엔진의 2017년~2018년 사이의 업데이트가 담겨 있는 코드를 유출했다. 유튜버는 역시 친구들과 함께 코드를 공유했다.[9] 밸브는 코드를 최초로 유출시킨 직원이 누구인지 빠르게 찾고 있는 중.

현재 레딧, 4chan의 원문 글은 삭제되었으나, 해당 토렌트는 여전히 남아있어 문제의 토렌트의 마그넷 주소는 여러 곳에서 떠돌고 있다.

이 사태로 인해, 소스 엔진을 사용한 멀티 게임들의 보안 상태가 난장판이 되었다는 근거없는 헛소문이 생겼다. 사실상 유출이라는 좀 큼지막한 사건에, 가짜 정보들이 마구 섞여서 실제 심각도의 몇 배로 부풀려진 이야기가 된 거였던 것. 팀 포트리스 2의 멀티 서버에 접속했다가 갑자기 멀웨어에 감염되었다는 거짓 증언들까지 속출할 정도. 결국 헛소문을 빠르게 인지한 대규모 사설 서버들은 급히 임시로 문을 닫았다.

다행이 카스글옵 공식 트위터에서 결국 근거 없는 소문이이었다는 사실이었다고 밝혀져 사태는 진정 되었다. 그리고 팀 포트리스 2 직원팀도 이 사실을 인지했는지, 공식 트위터에서 평소처럼 안전이 보장된 공식 서버에서 플레이해도 좋다고 했다.

6. 소스엔진이 사용된 게임

나무위키 문서가 작성된 상업 작품만 기재할 것. 소스 2가 사용된 작품에는 λ②를 표기한다. 비상업용 아마추어 게임 및 모드는 소스 엔진 모드 문서 참고.

6.1. 밸브가 제작한 게임

6.2. 타사에서 제작한 게임


  1. [1] 리스폰 엔터테인먼트처럼 바닥부터 뜯어고칠 수도 있지만, 차라리 다른 엔진을 쓰는게 훨씬 효율적이다.
  2. [2] 이 때문에 소스 엔진 게임 파일 중 material이라는 폴더가 있다. 좋은 예로 팀 포트리스 2의 스파이 전용 무기인 고드름으로 백스탭을 하면 캐릭터가 얼음처럼 변하는게 마테리얼을 이용한 효과다.
  3. [3] 오히려 이는 3D Skybox에서나 쓰이는 기술이다. 하늘 풍경이야 실제로 멀리있기 때문에 어느 위치에 있든 고정된것 처럼 보이지만 이를 표면에 빛의 반사에 적용시키니 상당히 부자연스러운것.
  4. [4] 다른 밸브 게임들은 엔진이 최신 버전욿 적용된 채로 출시되고 있었으나 밸런싱 차원에서인지 카운터 스트라이크: 소스만은 출시 당시의 초기 그대로가 유지되고 있었다. 베타에서 먼저 적용된 뒤 시간 차이를 두고 본 게임 클라이언트에도 정식으로 적용되었다.
  5. [5] 코멘터리에서는 '월드 포탈'이라고 하지만, 개발툴내에서 사용되는 명칭은 'linked_portal_door'로, 포탈건이 만드는 포탈과 비슷한 기능을 하지만 테두리가 없고, 사이즈 조정이 자유로우며, 포탈건이 발사하는 물체가 통과할 수 있다는 큰 차이점을 가지고있다.
  6. [6] 코멘터리에서는 포탈 2 레벨 디자인시 발생하는 수정 사항을 빠르게 고치기위해 만들었으며, 레벨 디자인이 확정된 이후에는 완성도를 위해서 모두 제거하였으나, 제거 시 발생하는 기술적 문제로 인해서 딱 한 곳에만 월드포탈을 남겨놨다. 그리고 포탈2에 남아있는 두번째 월드포탈이 발견되었다 포탈2 DLC인 PeTI 퍼즐 메이커를 통해 만들어진 맵의 엘리베이터와 실험실을 연결하는 용도로도 사용되었다. 포탈을 통해 별개의 공간을 연결하는 거라서 물리적으로 불가능한 공간도 구현이 가능하다고 한다.
  7. [7] 대표적으로 소스 2를 사용하는 도타 2와 아티팩트는 물리 요소에 루비콘이 아닌 하복을 그대로 사용한다.
  8. [8] 본래 아티팩트를 위해 안드로이드iOS 등 모바일 플랫폼에 이식을 준비 중이었는데, 아티팩트의 사후 지원이 잠정 중단되고 도타 언더로드가 대신 적용되었다.
  9. [9] 그러나 공동으로 채널을 운영해오던 MAXX는 인종 차별 등의 발언으로 인해 자신이 채널 운영에서 쫒겨난 상황에 앙심을 품고 4chan레딧 등에서 자신이 갖고 있는 소스 코드를 토렌트 파일로 유출시켰다... 라는 내용조차 루머로 밝혀졌다. 이것또한 거짓말이었던 것.
  10. [10] 밸브는 2017년 CSGO가 중국에 정식 출시되면서 소스엔진2 업데이트를 약속했지만, 아무런 공식 발표 없이 업데이트는 이뤄지지 않고 있다.

최종 확인 버전:

cc by-nc-sa 2.0 kr

Contents from Namu Wiki

Contact - 미러 (Namu)는 나무 위키의 표가 깨지는게 안타까워 만들어진 사이트입니다. (90.20ms)