|
이 세 가지 모두 기본 게임 파일을 복사해야 하지만 아쉽게도 해당 파일들의 미국 관련 데이터도 제거/교체해야 하기 때문에 새 파일에 새 항목을 추가하지는 못 함. 대신 common\country_definitions에서 그랬듯이 우리가 만든 모드 폴더에서 해당 폴더의 경로를 복사해야 함. buildings 폴더 내의 파일 중 STATE_OHIO를 찾아보자. 05_north_america.txt에서 이를 찾아볼 수 있는데, 이 파일을 복사하여 모드 내 history\buildings 폴더에 넣고, 파일을 열어 STATE_OHIO를 찾아보자. 그러면 다음으로 시작하는 영역을 확인할 수 있음.
이 영역은 오하이오 주 권역(s:STATE_OHIO) 내에 미국이 통제하는 주(region_state:USA)가 있음을 선언하고 있음. 그러나 우리는 독립된 오하이오를 만들고 있기 때문에 미국령 오하이오에 관한 모든 데이터는 존재할 이유가 없음. 따라서 region_state:USA에서 'USA'를 'OSU(새로 만들 나라의 태그)'로 바꾸어야 함.
이제 오하이오는 미국이 아닌 '오하이오'가 통제하게 되었음. 다음으로 할 일은 주 권역 내에 건물들을 채우는 것임. common\history\pops의 05_north_america.txt 파일을 열어 STATE_OHIO 영역의 'USA'를 'OSU'로 바꿔주자. 주 권역에서 사용되는 history 파일은 단일 항목으로 저장되므로 common\history\states\에서 00_states.txt 파일의 모든 내용을 복사해서 모드 폴더에 넣은 뒤, 다시 파일을 열어 STATE_OHIO를 찾으면 다음과 같은 항목이 나타날 것임:
주는 x와 16진수(지도 상에 나타나는 각 프로빈스의 색상을 나타내는 6자리) 코드로 이루어져 있음. 오하이오 같은 지역은 주 권역 내에 하나의 주만 존재하지만, 독일 같은 경우에는 하나의 주 권역 내에 여러 개의 주가 존재할 수 있기 때문에 매우 복잡함. 여기서는 독일 말고 오하이오만 생각하도록 하자.
여기서는 country = c:USA를 아래와 같이 country = c:OSU로 바꿔주기만 하면 됨.
신난다! 이제 모드를 게임에서 실행해볼까?
작업물 확인
먼저 할 일은 모드가 런처에서 활성화되도록 하는 것임. 런처를 열고 새로운 플레이세트를 추가하여 원하는 이름을 적어주자.
이렇게 보면 플레이세트가 하나도 없는 것처럼 보이지만, '모드 추가' 버튼을 눌러 모드를 우리가 만든 모드를 추가하면 됨.
플레이세트를 활성화했으니 이제 게임을 실행하여 어떻게 됐는지 살펴보자.
음... 뭔가 잘못된 것 같음. 게임을 종료하고 스팀 창에서 빅토3를 우클릭한 뒤 속성을 열고 실행 옵션 항목에 '-debug_mode'라고 입력해주자.
이 옵션은 게임 중 발생한 오류 로그를 기록함. 다시 게임을 실행해서 무슨 일인지 살펴보자.
오류가 있었음! 오류 메시지를 살펴보려면 빅토3 설치 폴더\logs\error.log에서 오류 로그를 열면 됨. 모드를 만들 때마다 디버그 모드를 켜놓고 오류 로그에 나타난 오류를 문제를 해결하기 위해 매달리는 것은 아주 유용하지 않을 수 없음.
이제 오류 로그를 살펴보면서 문제를 수정해보자. 잠재적인 모더들에게 하는 말은 아니지만, 제발 로그에 나타난 오류들을 꼭 수정해주기 바람.
아무튼! 우리가 만든 모드에서 발생한 오류는 '오하이오'를 독립시킨 뒤 무역로와 로캘리제이션, 국가의 역사, 팝의 생활수준을 전혀 설정하지 않은 것이 원인이었음. 국가의 역사는 그 나라의 기술과 정치를 다루는데, 여기서는 벨기에의 것을 그대로 복사할 것임. 먼저 기본 게임 폴더에서 common\history\countries\bel - belgium.txt를 복사하여 모드 폴더에 붙여넣은 뒤 파일명을 osu - ohio.txt로 바꿔주자. 그 다음 파일을 열면 c:BEL로 시작하는 영역이 있는데, 이 영역은 그 나라의 법령과 집권 중인 이익집단 등을 나타냄. 여기서는 c:BEL을 c:OSU로 바꿔주기만 하자. 이제 정치와 기술에 관한 문제는 해결되었음.
다음으로 population 파일을 추가하여 '오하이오'에 거주하는 팝들의 건강과 문해율을 설정해야 함. 이번에도 벨기에의 것을 복사하기 위해 common\history\population\bel - belgium.txt를 복사하고 모드 폴더에 붙여넣어 파일명을 osu - ohio.txt로 바꿔주자(참고로 기존의 history 파일을 다른 이름으로 바꿀 때, 실수로 덮어쓰는 일이 없더라도 동일한 규칙의 파일명을 설정하는 것이 관리에 용이함). 그리고 파일을 열어 c:BEL을 c:OSU로 바꿔주면 됨.
이제 오하이오 사람들이 '오하이오인(Ohioan)'으로 불리게 할 차례임. 기본 게임의 로캘리제이션은 빅토3 설치 폴더\game\localization에 저장되어 있음. 나(개발자)는 영어 사용자니까 여기서는 영어를 기준으로 설명하겠음. 모드 폴더에 영어 로캘리제이션 폴더를 새로 만들고(모드 폴더\localization\english) ohio_l_english.yml 이라는 이름의 텍스트 파일을 만들자. 그 다음 파일 내에 다음과 같이 입력하면...
드디어 '오하이오'가 제대로된 이름을 갖게 되었음!
모딩을 해본 경험이 있다면 기존 로캘리제이션 항목이 콜론 뒤에 숫자가 있는 형태(ex: FRA:0)로 구성되어 있음을 알고 있을 것임. 숫자는 변경된 항목을 찾거나 번역 수정이 필요할 때 추적을 쉽게 할 뿐 그 이상의 기능은 없으며, 하나의 언어로만 모딩할 목적이라면 굳이 콜론을 달 필요는 없음.
아무튼 오류가 수정됐기를 바라며 다시 게임을 실행해보자.
마침내 오하이오가 탄생했음. 아직 깃발을 안 만들었지만, 깃발이 어떻게 만들어지는지는 여기에서 자세히 확인할 수 있음. 이제 오하이오를 선택하고 플레이할 수 있으며, 좀 더 정성을 들인다면 이벤트와 저널 항목도 만들 수 있음. 각각의 인물들을 만들어내거나 오하이오에 거주하는 양키 문화의 팝들을 '버드'나 '자넷'같은 이름으로 부를 수도 있음. 게임 곳곳을 살펴보면서 이 모든 것들이 어떻게 이루어지는지 탐구해보시라!
다음 시간에는 데이터 시각화에 대해 소개하겠음!