소스 (게임 엔진)

**소스**()는 밸브에서 개발한 3D 게임 엔진이다. 2004년에 하프라이프: 소스, 카운터-스트라이크: 소스, 하프라이프 2가 출시되면서 골드Src의 후속작으로 데뷔했다. 밸브는 이후 몇 년 동안 팀 포트리스 2, 카운터-스트라이크 2, 도타 2, 포탈 및 레프트 4 데드 프랜차이즈를 포함한 많은 게임에 소스를 사용했다. 소스를 사용하는 다른 유명한 타사 게임으로는 타이탄폴 프랜차이즈의 대부분의 게임, 뱀파이어: 더 마스커레이드 – 블러드라인, 디어 에스터, 더 스탠리 패러블 및 게리 모드가 있다. 밸브는 2015년 소스 2로 대체될 때까지 소스에 점진적인 업데이트를 발표했다.

## 역사
소스는 존 카맥의 퀘이크 엔진과 퀘이크 II 엔진의 일부 코드를 크게 수정한 골드Src 엔진에서 멀리 파생되었다. 카맥은 2004년에 자신의 블로그에서 "하프라이프 2에는 아직 초기 퀘이크 코드의 일부가 남아 있다"고 언급했다. 밸브 직원 에릭 존슨은 밸브 개발자 커뮤니티에서 엔진의 명명법을 설명했다.

소스는 이 포크 이후 부분적으로 개발되어 밸브의 내부 프로젝트에서 골드Src를 서서히 대체했으며, 부분적으로는 비정상적으로 모듈화된 특성의 이유를 설명한다. 이후 밸브의 소스 개발은 미들웨어 라이선스와 자체 개발 코드의 혼합이었다. 소스의 이전 버전은 비디오 재생에 Bink를 사용했지만, 최근 소스 엔진 출시작은 메뉴 배경, 풀 모션 비디오 및 시작 화면에 WebM 비디오를 사용한다.
.

### 모듈성 및 주요 업데이트
소스는 경쟁 엔진의 하위 호환성을 깨는 "버전 점프"와 달리 새로운 기술로 점진적으로 발전하도록 만들어졌다. 소스 내의 다른 시스템은 독립적으로 업데이트될 수 있는 별도의 모듈로 표현된다. 스팀을 통해 밸브는 이러한 업데이트를 많은 사용자에게 자동으로 배포할 수 있다. 그러나 실제로는 호환성 체인이 가끔 끊어지는 경우가 있었다. 하프라이프 2: 에피소드 1과 오렌지 박스의 출시 모두 엔진의 새 버전을 도입했는데, 개발자가 코드와 경우에 따라 콘텐츠를 업그레이드하지 않으면 이전 게임이나 모드를 실행하는 데 사용할 수 없었다. 두 경우 모두 경쟁 엔진보다 버전 업데이트에 훨씬 적은 작업이 필요했다.

#### 소스 2006
소스 2006 브랜치는 하프라이프 2: 에피소드 1 출시와 함께 절정에 달한 기술을 사용하는 밸브 게임에 사용된 용어였다. HDR 렌더링 및 색 보정은 2005년 데이 오브 디피트: 소스를 사용하여 처음 구현되었으며, 엔진의 셰이더를 다시 작성해야 했다. 전자는 개발자 코멘터리 트랙과 함께 하프라이프 2: 로스트 코스트에서 선보였다. 에피소드 1은 퐁 셰이딩 및 기타 작은 기능을 도입했다. 이미지 기반 렌더링 기술은 하프라이프 2를 위해 개발 중이었지만, 출시 전에 엔진에서 제거되었다. 게이브 뉴얼은 2006년에 엄격하게 폴리곤 객체로는 불가능한 훨씬 큰 장면을 구현하기 위해 소스에 추가하고 싶은 기술 중 하나로 다시 언급했다.

#### 소스 2007
소스 2007 브랜치는 오렌지 박스 출시를 위한 소스 엔진의 전체 업그레이드를 나타냈다. 아티스트 중심의 스레드 입자 시스템은 이전에 하드 코딩된 효과를 모든 게임에 대해 대체했다. 이를 지원하기 위해 프로세스 내 도구 프레임워크가 생성되었으며, 이는 소스 필름메이커의 초기 빌드도 지원했다. 또한, 얼굴 애니메이션 시스템은 "장편 영화 및 방송 텔레비전" 품질을 위해 최신 비디오 카드에서 하드웨어 가속화되었다. 여러 플랫폼에서 오렌지 박스 출시를 통해 대규모 코드 리팩터링이 가능해져 소스 엔진이 여러 CPU 코어를 활용할 수 있게 되었다. 그러나 PC 지원은 레프트 4 데드 출시 전까지는 실험적이고 불안정했다. 멀티프로세서 지원은 나중에 팀 포트리스 2와 데이 오브 디피트: 소스로 다시 포팅되었다. 밸브는 엑스박스 360 버전 오렌지 박스를 자체적으로 제작했으며, 콘솔 지원은 주요 엔진 코드라인에 완전히 통합되어 있다. 여기에는 자산 변환기, 크로스 플랫폼 플레이 및 엑스박스 라이브 통합이 포함된다. 플레이스테이션 3 버전은 일렉트로닉 아츠에 아웃소싱되었으며, 전체 과정에서 문제에 시달렸다. 게이브 뉴얼은 오렌지 박스 출시 당시 이 문제들을 인용하며 콘솔을 비판했다.

#### 레프트 4 데드 브랜치
레프트 4 데드 브랜치는 레프트 4 데드 시리즈 개발을 통해 소스 엔진의 많은 부분을 재정비한 것이다. 멀티프로세서 지원은 더욱 확장되어 분할 화면 멀티플레이어, 추가적인 후처리 효과, 스퀴럴을 사용한 이벤트 스크립팅, 그리고 고도로 동적인 AI 디렉터와 같은 기능이 가능해졌다. 메뉴 인터페이스는 콘솔 지향적인 새로운 레이아웃으로 재구현되었다. 이 브랜치는 나중에 에일리언 스웜과 포탈 2의 출시를 촉진했으며, 전자는 브랜치가 시작된 이래로 이루어진 많은 변경 사항을 설명하는 소스 코드와 함께 출시되었다. 포탈 2는 또한 밸브가 플레이스테이션 3로의 포팅 문제를 자체적으로 해결한 결과였으며, 스팀웍스 통합과 결합하여 "최고의 콘솔 버전 게임"이라고 불렀다.

#### OS X, 리눅스, 안드로이드 지원
2010년 4월, 밸브는 OS X용 스팀 클라이언트 출시와 함께 모든 주요 소스 게임을 OS X에 출시했다. 밸브는 모든 향후 게임이 윈도우와 맥에서 동시에 출시될 것이라고 발표했다. 밸브 게임 중 리눅스를 처음 지원한 것은 팀 포트리스 2였으며, 2012년 10월 리눅스 버전 스팀의 클로즈드 베타와 함께 포팅이 출시되었다. 엔진의 OS X 및 리눅스 포트는 모두 OpenGL을 활용하며 심플 다이렉트미디어 레이어로 구동된다. 포팅 과정에서 밸브는 오렌지 박스까지 출시된 대부분의 게임을 별도의 병렬 "싱글플레이어" 및 "멀티플레이어" 브랜치로 재구성했다. 이 브랜치의 게임 코드는 2013년에 모드 개발자들에게 공개되었으며, 이는 모드용으로 지정된 소스의 현재 안정적인 릴리스 역할을 한다. 밸브의 내부 스팀 파이프 배포 시스템과 오큘러스 리프트에 대한 지원이 포함되어 있다. 2014년 5월, 엔비디아는 테그라 4 기반 안드로이드 휴대용 콘솔 게임기인 엔비디아 쉴드에 포탈과 하프라이프 2를 포팅하여 출시했다.

### 소스 2

소스 2는 2015년 3월 게임 개발자 회의에서 밸브에 의해 소스의 후속작으로 발표되었다. 밸브는 개발자에게 무료로 사용할 수 있으며, 불칸 그래픽 API를 지원하고 루비콘이라는 새로운 자체 물리 엔진을 사용할 것이라고 밝혔다. 2015년 6월, 밸브는 소스로 개발된 도타 2가 도타 2 리본이라는 업데이트를 통해 소스 2로 포팅될 것이라고 발표했다. 리본은 같은 달에 옵트인 베타 업데이트로 대중에게 처음 출시되었으며, 2015년 9월에 공식적으로 원본 클라이언트를 대체하여 엔진을 사용하는 첫 번째 게임이 되었다. 이 엔진은 2010년대 후반에 소스를 대체했다.

## 도구 및 자료
### 소스 SDK
**소스 SDK**는 소스 엔진의 소프트웨어 개발 키트이며, 밸브가 게임 자산을 개발하는 데 사용한 많은 도구를 포함한다. 자산 파이프라인 내의 특수 기능을 위해 설계된 여러 명령줄 프로그램과 더 복잡한 기능을 처리하도록 설계된 몇 가지 GUI 기반 프로그램이 함께 제공된다. 소스 SDK는 스팀을 통해 무료 독립형 도구 세트로 출시되었으며, 동일한 계정으로 소스 게임을 구매해야 했다. 2008년 후반 레프트 4 데드 출시 이후, 밸브는 각 게임 엔진 빌드에 맞게 조정된 동일한 프로그램으로 구성된 개별 게임용 "저작 도구"를 출시하기 시작했다. 팀 포트리스 2가 무료 플레이로 전환된 후, 소스 SDK는 사실상 모든 스팀 사용자에게 공개되었다. 일부 소스 게임이 소스 2013으로 업데이트되면서 이전 소스 SDK는 단계적으로 폐지되었다. 아래 언급된 세 가지 애플리케이션은 이제 각 게임 설치에 포함된다.

소스 SDK에는 해머 에디터, 모델 뷰어, 페이스 포서의 세 가지 응용 프로그램이 포함되어 있다. 모델 뷰어는 사용자가 모델을 볼 수 있는 프로그램이며 개발을 포함한 다양한 목적으로 사용될 수 있다. 개발자는 이 프로그램을 사용하여 모델과 해당 애니메이션, 부착 지점, 뼈대 등을 볼 수 있다. 페이스 포서는 얼굴 애니메이션 및 안무 시스템에 액세스하는 데 사용되는 도구이다. 이 도구를 사용하면 얼굴 표정, 캐릭터의 제스처 및 움직임, 립싱크 연설, 그리고 표정과 기타 연기 신호를 순서대로 편집하고 게임 엔진에서 장면이 어떻게 보일지 미리 볼 수 있다.

#### 해머 에디터

엔진의 공식 레벨 에디터인 해머 에디터는 SDK에 포함된 렌더링 및 컴파일 도구를 사용하여 이진 공간 분할 (BSP) 방법을 사용하여 맵을 만든다. 레벨 지오메트리는 브러시라고 하는 3D 다각형으로 생성된다. 각 면에는 텍스처를 할당할 수 있으며, 이는 발소리에 사용되는 소리와 같은 표면의 속성을 정의한다. 면은 또한 변위로 변환되어 언덕과 같은 더 자연스러운 모양을 만들 수 있다.

장면 객체 또는 복잡한 지오메트리는 게임 디렉토리에서 별도의 3D 모델로 가져올 수 있다. 이러한 모델은 물리 객체 또는 대화형 소품으로도 사용할 수 있다. 이 에디터는 또한 복잡한 대화형 요소를 만드는 데 사용할 수 있는 심층적인 논리 I/O 시스템을 특징으로 한다. 다른 반응을 트리거하거나 엔티티의 상태를 변경하는 신호는 버튼, NPC, 무형 트리거 브러시, 맵 소품과 같은 엔티티 간에 전송될 수 있다.

### 소스 전용 서버
**소스 전용 서버** (SRCDS)는 클라이언트를 필요로 하지 않고 멀티플레이어 게임 세션을 실행하는 소스 엔진의 독립 실행형 런처이다. 윈도우 또는 리눅스를 통해 시작할 수 있으며 사용자 정의 레벨 및 자산을 허용할 수 있다. 대부분의 타사 서버는 추가로 Metamod:Source 및 SourceMod를 실행하는데, 이들은 SRCDS 위에 기존 타이틀의 게임 플레이를 사용자 정의하기 위한 프레임워크를 함께 제공한다.

### 소스 필름메이커

소스 필름메이커(SFM)는 소스 엔진 내에서 개발된 3D 애니메이션 애플리케이션이다. 밸브가 개발한 이 도구는 원래 데이 오브 디피트: 소스와 팀 포트리스 2용 영화를 만드는 데 사용되었다. 소스 엔진 게임의 일부 예고편을 만드는 데도 사용되었다. SFM은 2012년에 대중에게 공개되었다.

### 데스티네이션 워크샵 도구
2016년 6월, 밸브는 소스 2 SDK를 사용하여 실행되는 무료 가상 현실 (VR) 제작 도구 세트인 데스티네이션 워크샵 도구를 출시했다.

### 밸브 개발자 커뮤니티
2005년 6월, 밸브는 밸브 개발자 커뮤니티 위키를 개설했다. 이는 밸브의 정적 소스 SDK 문서를 완전한 미디어위키 기반 커뮤니티 사이트로 대체했다.

### 학술 논문
밸브 직원들은 SIGGRAPH, 게임 개발자 매거진 및 게임 개발자 회의를 포함한 다양한 행사 및 출판물에 소스 엔진 개발의 다양한 측면을 설명하는 전문 및 학술 논문을 발표해 왔다.

## 소스를 사용하는 주목할 만한 게임

타이탄폴, 타이탄폴 2 및 에이펙스 레전드는 엔진이 원래 소스 SDK를 기반으로 했지만 사실상 다른 엔진이 될 정도로 수정되었기 때문에 포함되지 않았다.

## 같이 보기

* 소스 SDK

## 각주

; 내용주


## 외부 링크
* 

분류:밸브 코퍼레이션
분류:게임 엔진

분류:2004년 소프트웨어