문명5, 6 플레이어들은 처음 설치 했을때 영어로 나와서 당황한 경험이 있을것이다.

이는 리눅스버전 포팅을 진행한 aspyr의 탓이 크다.


문명5는 안티앨리어싱 설정이 불가능하다.

문명6에 경우 네이티브버전이 약간 더 빠르긴 한데, 윈도우보다 게임버전이 좀 뒤쳐져 있다.

문6는 얼마전에도 업데이트가 나오는 중이었기 때문에 윈도우버전을 쓰지 않으면 버전 미스매치로 멀티플레이가 제한적인 문제가 있다.


프로톤설정을 강제로 선택해서 윈도우 빌드를 받도록 한다.

하지만 윈도우 버전에는 실행할때 마다 짜증나는 2K 런처때문에 기분이 팍 상한다.

데스크탑에서도 짜증나는데 하물며 휴대기기인 스팀덱에서 느려터진 이 쓰레기를 거를순 없을까?


원래 질문했던 분이 문명6로 질문 했기 때문에 이를 기준으로 설명하겠다.


문명6게임 속성에 들어가면 실행옵션을 지정하는 부분이 있을것이다.

보통은 빈칸인데 기본값으로 개발사에서 지정한 실행 명령이 실행된다.


여기에 다음 명령을 복사해서 집어넣어준다. (데스크톱 모드에서 하면 편함)

eval $(echo "%command%" | sed "s/2KLauncher\/LauncherPatcher.exe'.*/Base\/Binaries\/Win64Steam\/CivilizationVI_DX12.exe'/")


혹시 DX11버전 게임을 실행하고자 한다면

eval $(echo "%command%" | sed "s/2KLauncher\/LauncherPatcher.exe'.*/Base\/Binaries\/Win64Steam\/CivilizationVI.exe'/")


DX12를 추천한다. 어차피 DXVK를 통하기때문에 성능은 비슷하다.


원리를 설명하자면,

간단한 몇가지 쉘명령의 조합으로 이루어져 있다.

0. %command%

이건 쉘문법은 아니고 개발사가 설정한 실행명령으로 나중에 대체된다. <=== 지금 상황에서는 얘가 런처를 실행시키는 경로를 갖고 있다.

1. eval

여러 인수로 들어온 문자열들을 하나의 명령으로 만들어서 실행한다. 이경우엔 문자열이 하나이기 때문에 바로 실행한다고 볼수있다.

2. $()

쉘에서 실행한 결과물을 문자열로 만들어서 대입한다. 소괄호안에 명령이 먼저 실행된뒤 eval에게 넘어간다고 생각하면 된다.

3. echo "문자열"

변수나 문자열을 문자열로 만들어서 출력한다.

4. |

파이프라고 하는 쉘문법인데 파이프 왼쪽의 출력을 오른쪽 명령의 인자로 넘긴다.

5. sed

스트림에디터라는 프로그램인데 말그대로 입력으로 들어온 문자열을 사용자의 규칙에따라 편집해서 내보낼수 있다.

그 규칙은 regex(정규식)이라는 방식을 사용한다. 자세한 사용법이 궁금하면 댓글.


위의 명령은 2KLauncher\/LauncherPatcher.exe 라는 부분을 찾아서 Base\/Binaries\/Win64Steam\/CivilizationVI_DX12.exe 로 중간에 바꿔치기 하는 것이다.


문명 5 런처 스킵하는 법도 적어둘게

eval $(echo "%command%" | sed "s/LaunchPad\/LaunchPad.exe/CivilizationV_DX11.exe/")