안녕하세요. 만화가 엄두입니다. 뭔가 하모니카 커뮤니티에 저도 기여를 해야하는데, 언제나 고수분들께 도움만 받지, 제가 도움이 되질 못하네요 ^^;; 이번에도 조심스레 도움을 청해봅니다.
제노너츠라는 게임이 있습니다. 이게 리눅스용 스팀으로 나왔는데요. 윈도우용은 한글 패치가 나왔습니다. 그러나, 리눅스용은 아예 파일 구조 자체가 달라서 적용이 안되네요. "걍 윈도우용 쓰지 뭐!" ...라고 넘기면 될 것을, 언제나 그렇듯 "이거 리눅스로 돌리면 재밌겠군 ㅎㅎㅎ" 라는 오기가 생기더군요.
우선 윈도우용의 한글 패치 방법은 다음과 같습니다.
<윈도우>
- 한글 패치 배포처
여기에서 다운 받는 파일은 다음과 같습니다.
strings.xml : 한글 번역 파일입니다.
arial.mvec
tahoma.mvec
xenonauts.mvec
xenopedia.mvec : mvec라는 확장자(듣도보도 못한;;;) 를 가진 글꼴 파일입니다. 아마도 한글을 나타내기 위한 한글 글꼴으로 추정됩니다.
이 파일들을 다음 경로에 붙여넣습니다.
설치한 하드 드라이브:\SteamLibrary\steamapps\common\Xenonauts\assets
스트링 파일을 다운 받은 한글 패치 스트링 파일로 덮어써주고...
폰트 파일도 살포시 덮어줍니다.
이러면 처음에는 이랬던 게임이
이렇게... 바뀝니다!
버뜨... 그러나...; 리눅스 버젼은 문제가 있습니다. 바로 파일 구조 자체가 아예 다르다는 것이지요. 리눅스 스팀 버젼의 제노너츠 파일구조는 다음과 같습니다.
<리눅스>
/home/사용자 아이디/.steam/steam/steamapps/common/Xenonauts/assets
-우선 경로는 이렇구요.
리눅스 스팀버젼과 윈도우 버젼의 가장 결정적 차이는 저것입니다. 파랑색 네모로 쳐진 대사 파일은 있습니다. 때문에 대사는 한글로 바꿀 수가 있지만, 윈도우 버젼에는 있었던 폴더 파일이 없기 때문에 한글 폰트를 깔 수가 없게 되버렸다는 것이죠. 아마도 윈도우 버젼의 폰트 폴더 기능을 대체하는 것으로 추정되는 font.php 라는 파일이 존재할 뿐입니다.
혹시나 싶어 한글 폰트는 놔두고, 한글 대사 파일인 strings.xml 파일만 바꾸어 게임을 실행하였더니, 예상대로 모든 글씨가 아예 안나오더군요. 허허허... 게임의 신은 리눅스를 버리셨단 말인가... ;ㅂ;/
이러던 차에, 영어로 구글링을 해보니 다음과 같은 글이 있었습니다.
https://steamcommunity.com/app/223830/discussions/0/490121928340900380/
이 글을 쓰신 분께서도 저처럼 리눅스용 제노너츠 게임을 즐기려 하셨던 모양이에요. 그러나, 이상하게도 게임 그래픽은 잘 나오는데, 게임 안의 글자들이 모조리 사라졌다고 합니다. (앞서 제가 말씀드렸던 리눅스 스팀 제노너츠에서 한글 글꼴을 설치하지 못한 채로 한글 대사 파일을 덮어씌웠을 때의 증상과 완전히 똑같았습니다 ! )
다행히도 prometheanfire 라는 닉을 쓰시는 능력자분이 댓글로 해결책을 적어주셔서 잘 해결된 듯 합니다. 구글 번역기가 영 신통찮아 원문 그대로 올리겠습니다. (글 도중도중에 이상하게 깨지는 문자들이 있었는데, 이건 하모니카 홈페이지에서 처리를 못하더라구요. 그래서 원문과는 조금 달라졌습니다. 원문 그대로를 보시려면 조금 수고스러우시더라도 위의 링크로 접속해주시면 고맙겠습니다.)
Here you go, keep in mind that I can run this through nvidia as well if you want testing with that.
I also attached an lddtree of the binary and didn't see anything missing. Also, fonts at the end.
https://gist.github.com/prometheanfire/fc7b514cf22c7f037eae
It looks like you might be using arial, which might not be available on all installations. Here's an strace with a grep for the font. Another font might get better results, the startup binary refrences this as well
Applicationassets/fonts/arial.mve
assets/fonts.pfp refrences this as well
fonts/arial.mvecu,,fonts/tahoma.mvec,>fonts/xenonauts.mvec oke fonts/xenopedia.mvec
stat64("assets/fonts.pfp", {st_mode=S_IFREG|0755, st_size=209208, ...}) = 0
access("assets/fonts.pfp", R_OK) = 0
open("assets/fonts.pfp", O_RDONLY|O_LARGEFILE) = 10
read(10, "PFPK\4\0\0\0\20fonts/arial.mvecu\0\0\0,,\1"..., 131072) = 131072
stat64("assets/fonts.pfp", {st_mode=S_IFREG|0755, st_size=209208, ...}) = 0
access("assets/fonts.pfp", R_OK) = 0
open("assets/fonts.pfp", O_RDONLY|O_LARGEFILE) = 9
read(9, "PFPK\4\0\0\0\20fonts/arial.mvecu\0\0\0,,\1"..., 117) = 117
read(9, "PFPK\4\0\0\0\20fonts/arial.mvecu\0\0\0,,\1"..., 131072) = 131072
writev(9, [{";\3\5\0\4\0 \4\0\0\0\0\0\0\0\0\24\0\24\0;\3\5\0\5\0 \4\0\0\0\0"..., 88}, {"XFree86-Bigfont", 15}, {"\0", 1}], 3) = 104
Also, I'd be intrested if you are using xft to match fonts to what the system has. iirc, xft is used to match fonts.
# fc-match Arial
Arimo-Regular.ttf: "Arimo" "Regular"
제가 위의 해결책에서 주목하는 부분은 다음과 같습니다. 앞서 글꼴 파일이라고 말씀드렸던, 그러나 리눅스용 제노너츠 게임파일에는 존재하지 않았던 arial.mvec, tahoma.mvec, xenonauts.mvec, xenopedia.mvec. 이 4형제 파일이 윗 글에는 명시되어 있습니다. 저는 다음과 같이 추정합니다. 아마도 위의 글꼴 파일을 수동으로 게임에 연결시킨게 아닐까요? 때문에 게임 상에서 다시 글자가 출력될 수 있게 된 것일테구요. 만약 이런 방법이 가능하다면, 제가 다운 받았던 한글 글꼴 파일을 저 네 파일 대신 연결하여, 한글 텍스트를 출력하게 만들수 있을 것 이라는 희망이 생겼습니다! 때문에 고수분들께 질문드리겠습니다.
위의 영어와 숫자가 섞인 명령문 비스무리한 글들은 리눅스의 어떤 부분을 나타내는 것인가요?
터미널에 치는 명령문 인가요? 아니면 아까 제가 의심스럽다고 말씀드렸던 fonts.pfp 파일같은걸 에디터 프로그램으로 열어서 수정한 결과물일까요? 어떤 것인지만 알아도 제가 뭔가 해볼수 있는 여지가 생길 것 같아요. 만약 이 문제가 해결 된다면, 한국 제노너츠 관련 커뮤니티들에 이 정보를 공유하여 더 많은 한국 리눅스 유저 분들이 불편함 없이 게임 하실 수 있도록 하겠습니다. 고수분들의 도움 간절히 부탁드리겠습니다.
날씨도 더운데 긴 글 끝까지 읽어주시고 함께 고민해주신 당신께 감사드립니다. 좋은 하루 되세요~!
저는 그 게임이 없기 때문에 알 수가 없지만 일단 알아낸 것은 다음과 같습니다.
1. mvec포맷은 Playground SDK라는 개발도구에 있는 Playmate Font maker라는 툴로 만든 것입니다. TTF파일의 벡터글리프를 변환한 방식이라고 하지요. 원본 mvec파일에는 ASCII만 들어있지만 한글패치를 위해 말그대로 한글을 쑤셔넣은 듯 합니다. 어쨌건 mvec가 해당 게임에 쓰인 특별한 방식이지만 만드는 것도 어렵지 않음을 의미합니다.
2. 문제는 저 pfp파일인데 저거 QuickBMS란 툴로 풀립니다. 풀면 안에 fonts란 폴더가 나온다고 하는데요. http://www.goldhawkinteractive.com/forums/index.php?/topic/3816-exract-pfp-archives/
굳이 그럴 것도 없이 윈도우 버전처럼 fonts란 폴더를 만들고 한글이 들어있는 4개의 mvec파일을 넣으면 될 수도 있습니다. fonts.pfp파일은 확장자를 bak정도로 바꾸고요. 예전에 렌파이란 놈이 rpa라는 것을 굳이 풀지 않아도 rpa안의 폴더트리 구조 그대로 만들어서 파일을 넣으니까 파일이 바뀌더군요. 이것도 그럴 수 있습니다.