한글패치 관련 짧은 글들

멜론로더 포함하여 배포시 유의점 (il2cpp 게임)

Snowyegret 2021. 12. 19. 07:04

절대 게임 폴더에서 모드와 멜론로더 관련 파일들을 그대로 압축해서 올리면 안된다.

게임 버전이 올라가거나 내려가면(복돌/롤백의 경우) 문제가 생길 수 있다.

아마 cpp2il 하는 과정에서 뭔가 문제가 있거나, 내가 알지 못하는 어떤 문제가 생기는 것 같다.

 

 

예시 게임) 귀곡팔황(Tale of immortal)

 

우선 해당 게임은 한글화를 위해 2개의 모드를 사용한다.

한글 출력용 KRFONT 모드, 덤프 및 한국어 교체용 Villain 모드.

이 중 Villain 모드는 Unity.2D.IK.Runtime.dll과 dnlib.dll을 사용한다.

최신 Melonloader에서 KRFONT에서 사용하는 il2cpp CoRoutine이 적용되는데,

하지만 최신 Melonloader에선 Unity.2D.IK.Runtime.dll 및 dnlib.dll이 없다.

* 0.5.3버전의 경우 ICSharpCode.SharpZipLib.dll도 같이 작업해줘야 한다.

그래서 이 경우 깔끔하게 사용자 컴퓨터에서 cpp2il작업 및 모드적용을 하기 위해 몇 가지 작업이 필요하다.

 

1. 빈 폴더를 만든 후, 멜론로더의 압축을 푼다.

 

2. 모드 폴더를 그대로 옮긴다

(모드에서 사용하는 외부 에셋/프로그램/파일 등등이 있으면 같이 옮긴다)

   > 이때, 만약 수정한 .assets 파일들이 있다면 {게임이름}_Data 폴더를 만들어준 후 같이 옮긴다.

 

3. MelonLoader\Managed 폴더에 들어가서 모드 개발자가 추가한 dll 혹은 최신 멜론로더에 없는 dll을 복사하여 붙여넣는다

- dnlib.dll

- Unity.2D.IK.Runtime.dll

- ICSharpCode.SharpZipLib.dll

 

이후 이후 게임 폴더가 아닌, 새 폴더로 옮긴 파일들을 압축해서 배포하면 된다.

딱 이렇게 3단계만 거치고 나면 용량이 낮으면서도 오류 발생 확률이 적은 배포용 멜론로더 포함 파일을 만들 수 있다.

기본 구성: 멜론로더(순정) + 멜론로더\Managed 안에 일부 dll 복사 + 모드/에셋/etc...

기본적으로 cpp2il 작업을 사용자 컴퓨터에서 하기 때문에 오류 발생 확률이 낮아지고, 오류 대처가 용이해진다는 장점이 있다.