최근 수정 시각 : 2025-01-30 14:38:15

소스(게임 엔진)/모드/제작

소스 엔진/모드/제작에서 넘어옴

파일:상위 문서 아이콘.svg   상위 문서: 소스(게임 엔진)
파일:상위 문서 아이콘.svg   상위 문서: 소스(게임 엔진)/모드
1. 개요2. 장점3. 단점4. 알아야 할 점5. 설치
5.1. 준비5.2. 설치 과정
6. 엔진 구조


밸브 개발자 위키 - 이 위키와 마찬가지로 밸브 개발자들과 사외 유저들이 임의로 편집할 수 있는 곳. 한글 문서도 있지만 사용자 수만큼 많이 열악하다.
스팀 내 소스 SDK 커뮤니티 - 궁금한 점이 있으면 여기에 영어로 물어보면 된다.

1. 개요

소스 엔진 모드 제작법을 알려주는 문서다.

다만 소스 엔진이 모드판 위주로 인기있는 것과 달리, 국내는 이것과 동떨어져 자생 모드판도 없다시피 하기에[1] 이 문서 역시 간단한 기초 위주로 서술한다.

2. 장점

소스 엔진 모드들이 상당히 많이 개발돼 배포된 현 시점에서 후발주자로 제작시 참고해 적용해 볼 요소돌이 많다. 또한 레벨 디자인 관련해서도 하프라이프 2 시기에 정립된 것들이 상당히 많아 소스의 존재 비중이 많이 얇아진 현재도 그 때의 용어나 관념들이 알음알음 쓰이고 있다.

3. 단점

일단 GUI부터 불편하고, 밸브에서 Source SDK를 2013년부터 철 지난 게임 SDK 업데이트를 안해주기 때문에 철 지난 게임 모드를 만들려면 비주얼 스튜디오를 무조건 2013년 버전으로 고정해 써야 하며, DirectX 12 지원 안 되는 건 기본에 심지어 32비트라서 맥(카탈리나 이후)에는 작동이 안된다. 그러니 모드 제작 경험을 조금이라도 쌓거나 하프라이프 팬이 아닌 단순 취업이 목적이라면 여기에 시간낭비하지 말고 국내 업계를 양분하고 있는 언리얼이나 유니티를 양자택일하자.

4. 알아야 할 점

일단 프로그래밍(매치메이킹 및 HUD 변경)이 필요한 요소가 있다면, C++은 기본으로 알아야 하며, Source SDK는 MFC 기반이기 때문에 무조건 알아둬야 한다. 물론 모드인 만큼 게임 근본까지 변형할 게 아니라면 수학 및 물리학은 세세하게 알 필요가 없다.

게다가 리눅스와 맥에서의 제작은 포기해라. 소스 엔진은 32비트만 지원해서 64비트 어플리케이션만을 지원하는 macOS 10.15 이상 버전에서는 실행조차 안되고, 리눅스는 컴파일하려면 편법이 필요하다. 즉, 윈도우에서 제작하는것이 낫다. 또 후술하듯이 Visual Studio 는 2013 버전 커뮤니티 버전 이상만 써야 한다.

5. 설치

5.1. 준비

1. 윈도우 7 이상의 운영체제(윈도우 10 권장)
2. Visual Studio 2013 Community 버전 이상
3, Visual Studio 2013 MFC Library
4. Microsoft Speech SDK 5.1
5. 스팀 계정 - 그리고 하프라이프 2 구매가 되어있어야 함.
6. 50GB 정도의 컴퓨터 용량
7. 포토샵 프로그램(어도비 포토샵이나 GIMP)
8. Source SDK 폴더
9. 뛰어난 C++ 프로그래밍 실력

5.2. 설치 과정

주의. 여기서 설명하는 비주얼 스튜디오는 영문 버전이다. 상술했듯 국내 개발 커뮤니티에 물어봤자 국내를 양분하는 언리얼이나 유니티 관념이나 용어들로 점철된 동문서답[2]을 받을 가능성이 높아 결과적으로 국외 커뮤니티에 '영어로 물어봐야' 원하는 대답을 얻을 수 있다.

1. Visual Studio 2013 Community, Visual Studio 2013 Mutibyte MFC Library, Microsoft Speech SDK 5.1 설치
2. 스팀에서 라이브러리에 들어간 후, 게임 목록에서 Game이라 적혀있는 필터를 누르고 Tool에도 체크. Sourde SDK 2013 Singleplayer, Source SDK 2013 Multiplayer 설치
3. 다운받은 source-sdk-2013-master 폴더(이하 SDK 폴더)를 압축해제(C:/에 압축해제 하는 것을 추천)
4. C:/Program Files(x86)/Microsoft Speech SDK 5.1을 압축해제 한 폴더의 sp 또는 mp (sp는 싱글플레이어 모드를 만들때 사용, mp는 멀티플레이어 모드를 만들때 사용)폴더의 src/utils에 복사, 이름을 sapi51로 변경
5. sapi51/Include/sphelper.h 변경(자세한 내용은 밸브 위키 참조)
6. SDK 폴더에서 sp 또는 mp 폴더에 들어간 후, src 폴더의 createallprojects.bat 또는 creategameprojects.bat을 실행하여 everything.sln 또는 games.sln 생성(createallprojects 추천). sln 파일을 실행하여 Visual Studio 실행.
7. Solution Explorer 에서 Solution 'everything' 또는 Soution 'games' 우클릭, Properties를 누르고 Configuration Properties → Configuration Manager 클릭, Active Solution Configuration: 에서 Debug에서 Release로 변경. 창닫기
8. everything.sln 기준 모든 24개의 프로젝트를 선택, 우클릭에서 Properties에 들어간 후, Configuration: 을 Debug에서 Release로 그리고 Configuration Properties → C/C++ → General에서 Warning Level을 Turn Off All Warnings로 변경, Treat Warnings as errors를 No로 변경한다. 그리고 최적화는 꺼둔다.
9. Solution 'everything' 우클릭, Build를 눌러 빌드한다. 그러면 sp/game/episodic/bin 또는 sp/game/hl2/bin 또는 mp/game/mod_hl2mp/bin에 client.dll과 server.dll 등이 생긴다.
10. sp/game/episodic 또는 sp/game/hl2 또는 mp/game/mod_hl2mp의 심볼릭 링크를 C:/Program Files(x86)/Steam/steamapps/sourcemod에 넣는다.
11. 스팀을 나갔다(창닫기가 아닌 Exit) 들어오면 라이브러리에 My First Episodic Mod 또는 비슷한 제목의 게임이 생긴다.
12. 실행 후 메뉴에 모드 제목이 뜨면 일단 성공이다. 다만 이걸로는 원본과 제목 외의 차이는 없다시피 하기에 고유 게임 방식이나 NPC, 프롭, 해머 작업물로 살을 덕지덕지 붙여나가야 독자적 모드로 취급된다.

6. 엔진 구조

문서 참고
[1] 정확히는 이따금 극소수의 점조직이 모드 개발을 떠들며 화려한 결과물을 뿜어내지만, 수년 뒤 여지없이 제각각 추진력을 상실하고 고사해 버린다.[2] 즉, 엔진별로 용어나 카테고리, 활용 관념들이 조금씩 다르기 때문.