나는 개발 환경때문에 맥과 윈도우를 다른 PC에 물리적으로 설치하여 사용하고 있다.
윈도우 환경의 PC는 집에 있고 맥 환경의 PC는 연구실에 있다.
플레이를 못하고 손가락만 쪽쪽 빨고 있다.
그래서 나는 구글신에게 신탁을 요청했다.
결론은 성공적이었다. (내용을 알고 싶으면 더보기 꾸욱)
그 전에...
※ 경고
이를 실제로 시도하면서 발생되는 문제로 인한 책임은 모두 시도한 본인에게 있음.
또한 몇몇 필요 정보들의 습득 및 환경설정법 등은 일절 공개하지 않음.
그리고 구글신은 나에게 WineHQ 를 사용한 시도들을 보여주었다.
정상적인 맥에서는 그냥저냥 무난한 플레이를 보여주고 있었다.
(참고 : https://appdb.winehq.org/objectManager.php?sClass=version&iId=32580)
그러나 한국 클라이언트와 글로벌 클라이언트는 버전 차이와 프로토콜의 차이가 다소 존재한다.
실제로 파판 클라이언트가 실행되는 과정은
1. FFXIV_Boot(런처의 버전확인 및 업데이트)
2. FFXIV_Launcher(로그인정보,클라이언트업데이트 등 / 실행인자 필요)
3. FFXIV(본게임 / 실행인자필요)
과 같다.
글로벌 클라이언트의 경우에는 WineHQ를 통해 실행시 런처의 작동이 정상적이지 못하다는 이슈가 있었다.
한국 클라이언트도 별반 다르지 않아 런처를 정상적으로 표시하지 못하는 문제가 있었다.
(왜 런처를 웹 어플리케이션 형태로 만들었는지 이해를 못하는건 아니지만...)
그렇다면 바로 본게임을 실행하려면...?
이 전에서 설명한 실행과정대로 본 게임을 실행하기 위해서는 몇몇 인자값이 필요하다.
로비로 접근하기 위한 로비 서버 주소와, 접속자의 계정 세션정보, ...
사실상 로비서버 주소나 기타 변수들은 대부분 고정이기에 쉽게 처리가능하지만 접속자의 계정 세션정보는 상황이 다르다.
계정의 세션정보는 매 로그인시마다 변경될 수 있기 때문이다.
나는 윈도우PC에 원격으로 접속하여 본 게임이 실행될때 런처로 부터 받는 인자를 확인해보았다.
ffxiv.exe DEV.LobbyHost01=<로비서버주소> DEV.LobbyPort01=<로비서버포트> DEV.GMServerHost=<?> DEV.TestSID=<계정세션정보> SYS.resetConfig=0
위의 형태로 인자값을 받고 있다.
사실상 몇몇 인자를 제외하면 글로벌 클라이언트가 받는 인자값과 거의 비슷하다.
이 정보를 가지고 맥에서 한국 클라이언트를 실행한 결과는...

뭐 잘 된다.
하지만 게임 프레임은 썩 좋은 편이 아니었다. (평균 17 프레임. 이정도면 게임 못한다.)
(아마 정상적인 맥은 아니라 그래픽 가속에 문제가 있는 걸지도...)
그리고 WineHQ 커뮤니티에서도 언급된 문제이지만
Occllusin culling 옵션을 활성화 하게 되면 게임 클라이언트가 크래쉬를 내며 종료된다.
그리고 실행중에도 Wine 로그에서 계속 관련 에러가 뜬다.

아주 징그럽게 쉬지도 않고 뜬다.
왠지 저것만 줄어도 프레임이 나올법 한 느낌이 든다.
뭐 일단 목적은 달성했지만 제대로 해보려면 추가적인 포크레인질이 필요할 것으로 보인다.