|
엔비디아 홈페이지에서 제공하지만, 그렇다고 엔비디아 그래픽 칩셋과 관련이 있는 건 아닙니다. 자신의 그래픽 카드와 관계 없이 사용하실 수 있어요. 거의 모든 포토샵 버전을 지원합니다.
허나, 포토샵이 뉘집 개 이름도 아니고, 수십에서 수백만원을 주고 구입해야 하는 상용 프로그램입니다. (현실은 개인 사용자의 경우 불법복사가 판을 치고 있지만요.) 게다가, 이런 작업에 포토샵"씩이나" 사용하는 것은 어찌 보면 닭 잡는 데 소 잡는 칼을 사용하는 격이나 마찬가집니다.
따라서, 개인적인 그래픽 작업에 사용할 수 있는 무료 프로그램들이 이것저것 등장했습니다. 그 중에서 GIMP 라고 하는 프로그램이 상당히 유명하죠. 오픈소스로 개발되고 있는 무료 2D 이미지 에디터입니다. 이 프로그램 역시 .DDS 파일을 직접 읽을 수는 없지만, 포토샵처럼 전용 .DDS 플러그인을 설치하면 .DDS 파일을 읽고 쓸 수 있게 됩니다. GIMP 용 .DDS 플러그인은 아래의 경로에서 구하실 수 있습니다.
필자는 GIMP를 사용해본 일이 없습니다만, 포럼의 글을 보면 GIMP + 플러그인을 이용해서 게임에 사용되는 .DDS 파일을 편집할 수 있다는 포스팅을 몇 개 발견할 수 있습니다.
다만, 필자의 경우에는 이 가이드에서 설명하는 모든 그래픽 작업에 Paint.NET 이라고 하는 프로그램을 사용할 것입니다. 카페의 그러하오 님께서 추천해주신 프로그램으로, 세부적인 기능으로 들어가면 조금 미약한 부분이 있지만, 기본적인 편집 기능은 모두 제대로 제공하고 있으며, 무엇보다도 .DDS 파일을 별도의 플러그인 없이 기본으로 지원한다는 점이 매력적입니다. 이미지의 투명 부분 처리만 제대로 해 주면 알파 채널도 자동으로 처리를 해 주기 때문에 알파 채널 신경쓸 필요도 없고요. 이 프로그램은 Donationware2) 이지만, 기부하지 않는다고 하더라도 사용할 수 있는 기능에 제한이 없으므로, 사실상 무료 프로그램입니다.
위 페이지에 접속하신 후, 상단 메뉴의 Download 를 클릭하시고, 페이지 아랫쪽의 Download Now dotPDN 아이콘을 클릭하셔서 다운로드 페이지로 들어가십시오. 그리고 페이지 오른쪽의 Free Download Now 링크를 클릭하시면 됩니다. (중간의 다운로드 버튼을 가장한 광고에 낚이지 마시라는 이야깁니다.)
다만, 이 프로그램은 그 실행에 닷넷 프레임워크 4.5 를 필요로 하기 때문에, 윈도우 7 서비스팩 1 또는 그 상위 버전의 윈도우가 필요합니다. 따라서 윈도우 XP, 윈도우 비스타, 서비스팩 1이 설치되지 않은 윈도우 7 환경에서는 실행이 불가능합니다. (이들 윈도우 버전은 닷넷 프레임워크 4.5가 지원하지 않기 때문입니다.) 닷넷 프레임워크 4.5가 설치되지 않았다면 자동으로 이를 다운로드 받아 설치를 해 줍니다만, 만약 자동으로 설치되지 않는다면 아래의 링크를 이용하여 업데이트를 받아 설치하시면 됩니다.
작업 시 아래 내용들은 반드시 염두에 두고 작업하십시오. 아래 내용들은 무의미한 시간 낭비와 각종 정신적 데미지를 예방 혹은 완화하는 데 큰 도움이 됩니다.
절대로 오리지널 게임 파일을 직접 수정하지 말 것: 모딩을 하다 보면 불가피하게 원본 파일의 내용을 수정해야 하는 경우도 생깁니다. 이 경우 원본 파일을 직접 수정하지 마시고, 원본 파일을 모드 폴더로 복사한 후에 복사한 파일을 수정하셔야 합니다. 원본을 훼손시키지 않기 위해서이기도 하고(원본을 건드렸는데 오류가 발생하면 되돌리기 귀찮아집니다), 게임 업데이트 시 원본 폴더의 내용은 스팀 업데이터가 아무런 확인 없이 밀어버리기 때문에 자칫하면 엄청난 시간과 노력을 들인 모드 파일이 손실될 수 있기 때문이기도 합니다. 모드 폴더의 위치 및 파일을 복사해 넣어야 하는 위치 등의 내용은 곧 알려드립니다.
원본 파일의 수정은 최소한으로: 위에서 내용 수정 시 어떻게 해야 하는지 알려드리긴 했습니다만, 애초에 원본 파일을 건드릴 일을 최소한으로 줄이는 것이 업데이트 시 호환성 문제에 부딪칠 확률을 줄여줍니다. 만약 내용 수정이 아닌 새로운 내용의 추가인 경우, 기존 파일은 냅두시고 모드 폴더 내에 새로운 파일을 만들어서 작성하십시오.
Validator를 사용하여 모드를 검증할 것: 기본적인 문법 오류는 포럼에 등록되어 있는 Validator 를 이용하면 잡아낼 수 있습니다. (특히 게임 실행 단계에서 일어나는 크래시의 경우 대부분 이런 오류..) 다만 오류가 아닌 것을 오류라고 잡아내는 경우도 많기 때문에, Validator의 출력 결과를 100% 신뢰하지는 마십시오. 또한 당연한 이야기지만, Validator 는 인공지능을 가진 생명체가 아니므로 논리 오류는 잡아내지 못합니다.
위 링크는 파라독스 포럼의 링크인데, 위 게시물은 파라독스 홈페이지에 가입하여 포럼에 연동한 후, 포럼에서 스팀 클라이언트에서 알려주는 CKII 오리지날 게임의 시리얼 넘버를 등록해야만 위 게시물에 접근이 가능합니다. (DLC의 시리얼 넘버는 몇 개를 등록해도 메타 서버에 등록되지 않기 때문에 접근 권한이 주어지지 않습니다. 전 이걸 몰라서 가입 후에도 일주일 이상 포럼 이용을 못 했었어요. 그냥 아무거나 등록하면 되는 줄 알았는데..)
주석을 적극적으로 사용할 것: 작성한 코드는 조금만 길어져도 나중에 수정하려고 보면 굉장히 읽기가 어렵습니다. 특히 코딩의 신이 강림하여 작성한 코드3)의 경우, 나중에는 해독 자체에 애를 먹는 경우도 생깁니다. 코드에서 # 뒤의 내용은 개행문자(줄바꿈 문자)가 나올 때까지 모두 주석으로 해석되어 무시되므로, 간단하게라도 꼭 설명을 달아 두십시오. 특히 이벤트 파일의 경우 현재 이 이벤트의 FROM과 ROOT 스코프가 누구를 의미하는지(해당 부분에서 설명하겠습니다!) 정도는 꼭 기록을 해 두시는 것이 정신건강에 좋습니다. (저도 정말 엄청나게 실수합니다.)
좋은 텍스트 에디터를 사용할 것: 더 이상 말씀드릴 필요가 있을까요?
이제 본격적으로 내용을 보도록 할까요. 여기서는 모드 파일이 저장되는 위치인 모드 폴더의 위치와 그 구조, 그리고 모드 파일이 적용되는 규칙과 관련된 사항을 확인하도록 하겠습니다.
모드 데이터들은 원본 게임 데이터와 분리되어 별도의 위치에 저장하게 됩니다. 이를 통해 원본 파일과 모드에서 사용하는 파일이 서로 뒤섞이지 않도록 하죠. 일반적인 윈도우즈 유저라면, 모드 파일은 내 문서 폴더 아래에 저장됩니다. 구체적으로, 내 문서\Paradox Interactive\Crusader Kings II\mod 이하의 위치입니다. 여기에 개별 모드에서 사용하는 파일들이 들어갈 폴더를 만들고, 해당 폴더 이름과 같은 이름의 모드 설정 파일 (폴더 이름.mod)을 두면 CKII 런처가 알아서 찾아서 띄워줍니다. 예를 들면, 우리가 흔히 사용하는 CKII 의 한글 패치 모드 파일들의 경우, "내 문서\Paradox Interactive\Crusader Kings II\mod" 폴더에 Korean.mod 파일이 존재하게 되며, 같은 폴더 내에 Korean 이라는 폴더를 만들어 그 안에 나머지 모드 파일들을 몰아넣게 되는 것이죠.
앞으로 CKII가 설치된 경로의 최상위 폴더는 [원본 루트 폴더], 특정 모드가 설치된 경로의 최상위 폴더는 [모드 폴더], [폴더 이름.mod] 파일이 있는 폴더를 [모드 루트 폴더]로 부르겠습니다. 예를 들면, 제 모드인 Nemo Mod 의 경우, 내 문서\Paradox Interactive\Crusader Kings II\mod\Nemo 에 위치하게 되는데, 이 위치를 지칭하는 것을 [모드 폴더]라고 부르겠다는 의미입니다.
기본적으로, 모드 폴더 내의 구조는 CKII 원본 루트 폴더의 구조와 같습니다. 즉, 모드 폴더의 구조와 원본 루트 폴더의 구조는 서로 정확하게 1:1 대응됩니다. 따라서, 어떤 요소를 모드에 추가했다면, 그 파일은 그 파일이 있어야 할 폴더의 위치에 대응하는 위치에 복사해 넣어주면 됩니다.
폴더 구조. 왼쪽이 원본 게임 폴더. 오른쪽은 한글 패치 모드의 폴더. 이런 식으로 같은 구조를 사용합니다.
예를 들면, 디시전 파일들은 [원본 루트 폴더]\decisions 의 경로에 들어 있는데, 모드에 특정한 디시전을 추가하려면 [모드 폴더]\decisions 폴더 내에 추가한 디시전 파일을 넣어주면 된다는 겁니다.
만약, 원본과 모드의 같은 위치에 같은 이름의 파일이 존재한다면 어떻게 처리될까요? 원칙적으로, 파일의 이름이 겹칠 경우 모드에 저장된 파일이 우선시되고, 원본의 파일은 무시됩니다. (모드라는 게 무엇인지를 생각해보면 어쩌면 이건 당연한 거죠.)
이 규칙을 이용하여 원본 파일의 내용을 수정할 수 있습니다. 원본 파일을 모드 폴더의 같은 위치로 복사한 후 모드 폴더로 복사한 파일을 수정하는 거죠. 그러면 원본의 같은 이름의 파일 대신 모드 폴더의 같은 이름의 파일이 적용될 것입니다. 수정한 부분, 추가한 부분, 삭제한 부분들이 모두 정확하게 적용이 됩니다.
관련되는 내용으로, 만약 원본 파일을 모드 폴더로 복사한 후 그 내용을 깨끗이 지워 0바이트 파일로 만들어버리면 어떤 일이 벌어질까요? 일단 모드 폴더에 "파일이 존재" 하기 때문에 원본 파일은 무시되고 모드 폴더의 파일이 읽어들여지지만, 내용이 전혀 없기 때문에 아무 것도 적용되지 않겠죠. 즉, 특정한 원본 파일을 삭제한 것과 같은 효과가 발생합니다. 이 방식을 사용하여 원본 파일을 그대로 놓아둔 상태에서도 원본의 특정한 파일의 내용을 완전히 배제하는 것이 가능합니다.
그렇다면, 이번엔 원본 파일이 아니라, 여러 개의 모드를 실행하는 경우에 각각의 모드들 사이에 겹치는 파일이 존재하는 경우를 생각해 봅시다.
보통 여러 개의 모드를 동시에 적용하는 것은 여러 가지 문제를 발생시킬 수 있기 때문에 권장되지는 않습니다. 그러나 한글패치모드 사용자의 경우에는 뭔가 다른 모드를 하나라도 더 사용하게 되면 최소한 2개의 모드를 동시에 실행하는 셈이 되므로, 이 내용은 모더가 아닌 일반 사용자의 입장에서도 알아두는 것이 좋겠습니다.
이 경우, 원칙적으로는 가장 먼저 읽어들여진 모드의 파일이 유효하고 나머지는 무시됩니다. 예를 들면, A,B,C 세 개의 모드의 동일 위치에 똑같이 landed_titles.txt 파일이 존재한다면, 셋 중 가장 먼저 읽어들여진 파일이 유효하고 나머지는 모두 무시됩니다. 따라서 무시되는 파일의 내용을 아무리 수정해 봐야 적용이 안 됩니다. 특히 이 부분은 한글 패치 모드를 사용하시면서 다른 모드를 사용하실 경우에 문제가 됩니다. 한글 패치 모드가 먼저 읽히느냐, 다른 모드가 먼저 읽히느냐에 따라서 어느 것이 적용되느냐의 문제가 발생하게 되거든요.
그럼 여러 개의 모드를 선택한 경우 읽어들여지는 순서는 어떻게 될까요? 원칙적으로 모드 이름의 알파벳 순서 - 모드 목록에서 위에서 아래 - 로 읽혀집니다.
다만, 예외적으로 나중에 읽어들여진 모드의 파일이 유효하게 되는 경우가 있습니다. 이에 대해서는 조금 뒤에 모드 설정 파일을 설명드리면서 말씀드리겠습니다.
이 내용은 조금 어렵습니다. 만약 잘 이해가 되지 않는다면, 그냥 이 내용은 없다고 생각하고 넘어가세요. 알면 꽤 유용하게 써먹을 수 있는 내용이지만, 몰라도 큰 지장이 없는 내용입니다. 오히려 잘못 이해하시면 알 수 없는 오류에 머리털을 쥐어뜯는 상황이 올 수도 있습니다. (그래서 쓸까말까 고민했습니다.) 차라리, 어느 정도 모딩에 대해서 알고 난 후에 다시 돌아오셔서 읽으시면 더 이해가 쉬울 수 있습니다.
CKII 는 같은 종류의 데이터를 동일한 폴더에서 정의하는 방식으로 같은 범주의 내용을 설정하는 방식을 사용합니다. 예를 들면, common/buildings 폴더 내의 텍스트 파일은 그 파일 이름에 관계 없이 모두 건물 정의 파일로 간주한다는 것입니다. 따라서, 특정 범주에 대한 새로운 내용을 추가하는 경우에는 동일한 폴더 내에서 새로운 파일을 만들고 그 안에 새로운 내용을 추가하면 됩니다. (원본의 내용이 변경되지 않는다면 이렇게 하는 것이 버전 관리에도 좋습니다.) 이 부분은 전혀 문제가 아닙니다.
문제는, 특정 범주에 대해서 일부 내용을 수정해야 하는 경우입니다. 제가 앞에서 말씀드리길, 기존의 내용을 수정할 경우에는 원본을 모드 폴더로 복사한 후 그 복사한 파일을 수정하면 된다고 말씀드렸을 겁니다. 이렇게 하면 원본과 모드의 파일명이 같기 때문에 이미 앞에서 설명드린 대로 원본의 내용이 무시되므로 이 경우도 문제가 안 됩니다.
그런데, 이 사람은 그렇게 하지 않았습니다. 특정한 내용을 수정하기 위해, 모드 폴더의 같은 위치에 다른 이름의 파일을 생성한 후 거기에 수정할 내용을 추가해버린 겁니다. 잘 이해가 안 되시죠? 이렇게 생각해 보세요. 원본에 12000 이라는 이벤트 코드를 가진 A.txt 라는 이벤트 파일이 있습니다. 그런데, 12000 이벤트의 내용이 영 맘에 안 들어서, 모드 폴더의 같은 위치에 B.txt 라는 이벤트 파일을 만든 후, 거기에 12000 이벤트의 내용을 입맛대로 다시 적어서 저장해 버린 것입니다. 자, 어떻게 될까요?
A.txt 와 B.txt 는 원본-모드 관계이지만 파일명이 서로 다르기 때문에, 이들은 다른 파일로 인식되어 둘 모두 읽혀지고 정상적으로 적용됩니다. 그러나, 두 파일 모두에 12000 이라는 이벤트 ID 를 가진 이벤트가 존재하기 때문에, 이들 사이에 충돌이 발생합니다. (원래 이벤트 ID 는 유니크해야 하며, 겹치면 안 됩니다. 나중에 설명드리겠지만, 기본 중의 기본이니 미리 알아 두세요.) 그 결과, 12000 번 이벤트는 망가지고(croak), 정상적으로 동작하지 않게 됩니다.
자, 문제는 여기에 있습니다. 한번 머리를 굴려 봅시다. 위와 같은 바보 짓을 한 사람은 어째서 저런 짓을 한 걸까요? 참고로, 이 사람은 제가 위에서 설명한, 원본 파일의 내용을 수정하려면 그 파일을 그대로 모드 폴더로 복사한 후 그 파일을 수정하라는 내용을 알고 있는 사람입니다. 알고 있지만, 어떤 이유가 있어서 저런 짓을 한 것입니다. 물론 의도대로 이루어지지는 않았지만요.
이런 생각을 해 봅시다. 원본의 내용을 수정하는 일반적인 방법인, 원본 파일을 모드 폴더로 복사한 후 모드 폴더의 파일을 수정하는 방법은 부담없이 사용할 수 있지만, 대신 파일 내용의 (극히) 일부만을 수정했음에도 불구하고 파일 전체를 모드 폴더에 복사해 놓았기 때문에 디스크 용량 차원에서 비경제적입니다(물론 요즘 하드디스크 용량을 생각하면 이건 경제논리를 들이댈 것은 아니죠). 게다가, (이 부분이 중요한데) 업데이트 등으로 복사했던 원본 파일의 어딘가가 변경되면 수정한 부분이 변경되지 않았더라도 해당 파일을 다시 복사한 후에 다시 패치를 해야 하죠. (물론 변경된 부분이 어딘지 알고 있다면 그 부분만 직접 패치하면 되겠지만..) 번거롭습니다.
따라서, 파일 단위가 아닌, 특정 파일의 특정한 구역 단위로, 해당 구역만을 다른 이름의 파일에서 정의하고 수정할 수 있다면, 원본 파일 전체를 복사하는 수고를 하지 않아도 되고, 그 내용을 담은 원본 파일이 업데이트되더라도 수정한 부분 자체가 업데이트된 것이 아닌 이상 버전업 때마다 관련 파일을 수정해야 하는 수고도 덜 수 있습니다. 이제 상황이 이해가 되시죠?
원칙적으로, 위와 같은 수정 방법은 앞에서 보셨다시피 현재는 인정되지 않습니다. 특히 이벤트와 디시전의 경우에는 여지없이 깨져나갑니다. 아예 해당 이벤트가 먹통이 되어버려요. 따라서 이와 같은 방법을 사용하시면 안 됩니다.
그러나, 일부의 경우 이와 같은 수정방법이 통하는 경우가 있습니다. 아래는 제가 실험 후 정상적으로 적용(override)되는 것을 확인한 것들입니다.
종교 설정 파일(/common/religions) : 원본의 종교 관련 내용은 하나의 종교 레벨에서 모드 파일의 내용이 정확하게 합쳐지고 적용됩니다. 예를 들어, 원본의 파일이 00_religions.txt 파일인데, 모드 파일에 01_religions.txt 파일을 만들고, 이 파일 안에 기존 종교에 대해 다른 내용의 설정을 넣었다고 가정해 봅시다. 이 경우 CKII 는 새로 설정된 종교에 대해서 완벽하게 모드 파일의 내용으로 대체(override)합니다. 따라서, 원본과 모드 사이에서, 원본의 일부 내용만을 수정하는 새로운 파일을 작성하여 원본 내용의 수정이 가능합니다. 물론 특정한 종교 그룹에 새로운 종교를 새로운 파일을 작성하여 추가해 넣는 것도 가능합니다.
On-Actions 설정 파일(/common/on_actions) : 원본과 모드 사이에서, 섹션 단위로 모드의 내용이 적용(override)됩니다. 개별적인 on_actions = { } 단위로 모드의 다른 파일에서 수정이 가능합니다. 모드에서 추가된 내용은 정상 적용되고, 모드에서 삭제된 내용도 정상적으로 배제됩니다.
아래는 제가 테스트해 보지는 않았지만, 위키에서 정상적으로 대체됨이 확인된 것입니다.
CKII 런처가 모드를 구성하는 파일들을 정상적으로 읽을 수 있도록 런처에게 정보를 제공해 주는 파일이 바로 모드 설정 파일입니다. 앞에서 말씀드린 바와 같이, 모드 루트 폴더(내 문서\Paradox Interactive\Crusader Kings II\mod)의 위치에 저장되며, 일반적으로 폴더와 같은 이름으로 설정합니다.
사소한 내용이지만 주의할 점. 모드 설정 파일의 이름에는 공백 문자(스페이스)가 들어가지 않도록 해야 합니다. 공백 문자가 들어가면 CKII 런처가 자동으로 모드를 선택해 주지 못하므로(그래서 실행할 때마다 모드 선택이 자동으로 해제됩니다), 게임을 실행할 때마다 모드를 직접 선택해 주어야 하는 불편함이 있습니다.
이 파일의 내용은 굉장히 심플합니다. 아래의 내용은 제 Nemo Mod 의 모드 설정 파일인 Nemo.mod 파일의 내용입니다.
name = "Nemo" path = "mod/Nemo" user_dir = "Nemo"
위 두 가지가 필수 항목이며, 그 외의 항목은 없어도 됩니다. 그 외에 설정할 수 있는 항목은 아래와 같습니다.
이 옵션은 원본 폴더 자체를 무시해버린다는 점에서 다른 파일 대체 방법과 차이가 있습니다. 예를 들어, replace_path = "history/provinces" 라고 지정해버리면, 원본 데이터의 모든 프로빈스 설정 데이터는 읽어들여지지 않고, 모드에서 지정한 프로빈스 설정 데이터만 읽어들여집니다. 따라서, 원본의 특정 설정을 (수정이 아니라) 아예 게임에서 빼 버리고 싶은 경우에 사용할 수 있는 선택지입니다.
이런 배제 방법은 사실 일반적인 모딩에서는 거의 쓸 일이 없습니다. 스케일이 매우 큰 범주의 모딩을 하는 경우에 사용될 가능성이 있죠. (아예 맵을 뜯어 고치고 새로운 맵을 투입한다던가 하는 경우) 다만, 이렇게 원본 파일을 대체하는 것은 언제나 잠재적인 호환성 문제를 일으킬 수 있기 때문에, 최소한으로만 사용하시고 버전업 때마다 변경 사항을 꼭 확인하시기 바랍니다. 또한, 특정 폴더 내의 일부 파일만을 배제하고 싶은 경우에는 배제할 파일을 제외한 나머지 나머지 파일들을 수정 여부와 관계 없이 모드 폴더로 복사해 두어야 게임을 플레이하는 데에 지장이 없습니다. 만약, 예를 들어 한 폴더에 수백 개의 파일이 있는데 그 중 소수의 파일만 실행에서 배제하고 싶은 경우, 이 옵션을 설정하고 나머지 수백 개의 파일을 모드 폴더로 복사하는 비효율적인 방법을 쓰지 마시고, 배제하고 싶은 파일과 같은 이름의 내용 없는 파일을 모드 폴더의 같은 위치에 복사하는 방법을 쓰시기 바랍니다. (원본보다 모드의 파일이 우선하므로 내용이 있는 같은 이름의 원본 파일이 무시되는 결과가 되니까요.)
다만, 이 옵션을 가지고 런처가 오류 검사를 하지는 않습니다. 예를 들어, 제 모드에서 위와 같이 옵션을 주었는데, 제가 실행할 모드 목록에서 Korean 모드를 체크하지 않은 상태에서 제 모드만 체크하고 실행했다고 가정해 봅시다. 그럼 런처가 Korean 모드를 자동으로 읽어 주거나, 의존성이 설정된 모드를 체크하지 않고 실행했다고 경고 메시지 등을 출력해 줄까요? 전혀 아닙니다. 그렇다면 이걸 설정하는 의미가 대체 무엇인가 하는 의문이 자연스럽게 떠오르게 되죠.
이 옵션의 설정 의의는 전혀 다른 데에 있습니다. 앞에서 설명한, 모드와 모드 사이에 파일이 겹치는 경우에 어느 쪽을 적용할 것인지를 설정하는 방법인 거죠. 예를 들면, 제 Nemo Mod 의 설정 파일에 위와 같이 설정했다고 합시다. 그러면 런처는 모드 파일을 읽을 때에, dependencies 설정에서 지정된 Korean 모드 파일을 먼저 읽어들여서, 이들 모드 간의 관계에 있어서만큼은5) Korean 모드를 원본과 같이 취급합니다. 즉, Korean 모드와 제 Nemo Mod 사이에는 Korean 모드가 원본이고, Nemo Mod 가 모드인 것처럼 취급하는 거죠. 그 결과, 두 모드 사이에 겹치는 파일이 존재하면 무조건 Nemo Mod 파일이 우선 적용되는 결과가 됩니다. 제 모드의 이름은 Nemo 이고, 한글 모드의 이름이 Korean 이기 때문에, 별도의 설정이 없다면 알파벳 순서대로 적용되는 규칙상 무조건 Korean 모드의 설정이 우선 적용될 것이어서, 이런 경우 특히 적용 순서를 변경하는 효과가 있게 될 겁니다.
그렇다면, 제 Nemo Mod 에는 왜 이 설정이 없을까요? 특히 설정의 의미가 있다고 설명하면서도 설정을 하지 않은 이유는? 제 Nemo Mod가 한글 모드를 전제로 하기는 하지만, 한글 패치 모드의 파일들과 제 모드의 파일들이 겹치는 파일이 없기 때문에 굳이 설정을 하지 않았습니다. 사실 있건 없건 설정하는 게 맞는데, 초기 버전에 설정을 하지 않았다가 이제 와서 설정을 하게 되면 user_dir의 설정과 관련한 살짝 미묘한 다른 문제가 발생을 하기 때문에, 기존에 제 모드를 사용하시던 분들께 불편을 드릴 수가 있어서, 이후 버전에서도 설정을 하지 않았습니다.
이제 모드의 기본적인 내용들은 대충 설명을 한 것 같군요. 이제 세부적인 내용을 채워도 될 것 같습니다. 앞에서 말씀드린 대로 일단 일반 디시전 파일의 모딩에 관한 내용을 설명드리면서, 모딩에 있어서 중요한 주요 개념들을 함께 설명드리는 시간을 갖도록 하겠습니다.
덧붙임. 다시 한 번 말씀드리지만, 이 글의 기획 의도상, 위키와 같이 필요한 내용을 한 번에 찾아보기 쉬운 형태로 쓰여지지는 못할 것 같습니다. 따라서, 특히 초심자의 경우 일부를 발췌독하면서 필요한 부분을 바로 찾아서 사용하는 식으로 사용하기는 어려울 수 있습니다. 뒤에 서술되는 내용의 상당수는 앞의 내용을 알고 있어야 그 맥락을 이해할 수 있는 경우가 반드시 생길 거거든요.
따라서, 이왕 모딩을 한번 해 보겠다는 생각이 드셨다면, 이 시리즈의 글 전체를 일독해 보시기 바랍니다. 제 글이 모드의 모든 부분을 다 다루지는 못할 것입니다만, 그래도 상당히 많은 부분을 건드리게 될 것이기 때문에, 보이게 되는 만큼 건드릴 수 있는 범위가 더 넓어질 것입니다. 무엇보다, 수많은 파일들이 어떤 식으로 연관을 맺고 있는지를 알게 되면 접근이 매우 쉬워질 겁니다.
1) 그래서 루아 스크립트를 사용할 줄 아는 게이머의 경우 게임의 꽤 깊은 부분까지 수정이 가능했죠.
2) Donationware 는 보통 따로 비용 지불 없이 사용할 수 있는 프로그램이지만, 만약 이 프로그램을 사용해 보고 그 성능에 만족했다면 사용자의 자유 의사로 개발자에게 일정 금액을 기부하도록 권장되는 프로그램입니다. (기부 여부에 상관 없이 모든 기능을 사용할 수 있는 경우도 있고, 기부자에게 일정한 특전을 주는 경우, 기부하지 않은 경우 몇몇 기능을 사용할 수 없도록 막아놓는 경우도 있습니다.)
3) 정말 이럴 때가 있습니다. 평소 같으면 생각지도 못한 방법으로 절묘하게 코드를 디자인하는 자신을 발견하게 됩니다. 나중에 봤을 때 이게 내가 작성한 코드가 맞나 싶을 정도로요.
4) 과거에는 이에 대한 논리만 있을 뿐 문서로 된 명확한 설명이 없었습니다만, 최근 위키의 모드 총론 문서가 수정되면서 명확하게 관련 내용이 들어갔습니다. (사실상 위키의 내용은 파라독스사의 공식적인 문서나 마찬가지의 권위를 가지므로, 이제 이에 대해서 골치 썩일 필요는 없겠습니다.) 이 부분은 그런 이유로 좀 더 명확하게 수정되었습니다.
5) 사실 이 설명은 논란의 여지가 있습니다. 이해하기 쉽게 설명드리기 위해 이렇게 설명드립니다만, dependencies 가 설정된 경우에 이것이 두 모드 사이에서만 영향을 미치는지, 아니면 읽기 순서 자체를 변경하게 되는 결과 다른 모드와의 관계에서도 그 적용 순서가 변경되는 결과가 되는지는 저도 테스트를 해 본 적이 없습니다. 예를 들어, A,B,C,D 네 개의 모드를 동시에 실행하고, A 모드에 dependencies = C 라고 설정된 경우, A 보다 C 가 먼저 로드되는 결과 C가 B에 대해서도 먼저 읽혀진 효과를 발생시키는지(D는 어차피 이러나 저러나 가장 늦게 로드되니까 상관없고), 아니면 이 설정은 A와 C 사이에서만 영향을 미쳐서 B와 C 사이에는 B가 먼저 읽어들여진 효과가 발생하는지는 알 수 없다는 것입니다. 애초에 이렇게 여러 개의 모드를 혼용해서 사용하는 경우는 그다지 권장되는 경우는 아니고, 그럼에도 불구하고 이렇게 많은 모드를 혼용하는 경우라면 대개 그 모드들이 소수의 파일만을 가진 미니 모드인 경우가 많을 테니 파일이 그렇게 신나게 겹치지도 않을 거라, 이런 것까지 고민해야 할 건 아니라고 봅니다.
첫댓글 추천-!
잘 읽었습니다 추천합니다
이 양은 대체 ㄷㄷㄷ 잘읽었습니다 팁에 올라가야될 내용이네요
정독했습니다. 모딩한답시고 만지작 거리다 포기하고 다시 만지작거리다 포기하고
반복하던 저에게 너무나도 좋은글이 될듯 ㅠㅠ 감사합니다. 진짜로.
뭔가 애매하게 알고있던 부분이나 아예 모르던 부분을 많이 알아갑니다.