멜론로더 포함하여 배포시 유의점 (il2cpp 게임)
절대 게임 폴더에서 모드와 멜론로더 관련 파일들을 그대로 압축해서 올리면 안된다.
게임 버전이 올라가거나 내려가면(복돌/롤백의 경우) 문제가 생길 수 있다.
아마 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 작업을 사용자 컴퓨터에서 하기 때문에 오류 발생 확률이 낮아지고, 오류 대처가 용이해진다는 장점이 있다.