리눅스에서 PC게임하는 방법은 대략 몇가지로 나뉩니다.


1. 리눅스용 게임하기

제일 확실하지만 제일 선택권이 없는 방법이지요. 리눅스용 게임이 많이 나왔지만 아직도 상당수 PC게임은 Windows만을 지원하고 있습니다. 그리고 국내제작 게임은 100% Windows에서만 돌아갑니다.


2. Wine으로 게임하기

그동안 제가 많이 써먹었고 지금도 많이 써먹고 있지요. Wine을 통하면 최소한 리눅스에서 Native하게 돌아가는 듯한 느낌이 듭니다. 그리고 얼마전 소개했었는데 리눅스에서 DirectX9지원이 되기 시작해서 퍼포먼스가 상당히 개선되었습니다. DirectX9 이후 게임이거나 DirectX9으로 돌리면 잘 안 되는 게임은 CSMT방식으로 굴리면 거의 Windows수준의 성능이 뽑히니 이 또한 문제가 없습니다. 하지만 아직도 일부 게임에선 라이브러리를 설치하거나 추가 삽질을 해줘야하는 문제가 있고 이를 컴퓨터로 게임밖에 할 줄 모르는 사람들에게 알려주기에는 그렇게 추천해 줄만한 방법은 아닙니다.


3. VM을 설치하기

VMware나 VirtualBox에서 게임을 굴리면 확실하게 돌아간다는 보장이 있습니다. 다만 가상머신을 쓰기 때문에 이미 성능이 반토막이 난다는게 문제입니다. 그리고 VM의 그래픽가속 드라이버는 아직도 갈길이 먼 수준이라 OpenGL 렌더링은 몰라도 D3D는 포기하는 것이 좋습니다.


4. Windows컴퓨터에서 스트리밍

무식하면서도 어찌보면 확실합니다.

그냥 게임용 Windows컴퓨터를 하나 장만하는 겁니다. 참 쉽죠?


이중에서 4.의 방법을 쉽고 단단하게 만든 솔루션이 바로 LiquidSky란 물건입니다.

https://liquidsky.tv/

특이사항으로는 클라우드 시스템에 Windows 가상머신을 하나 만들고 여기에 접속해서 게임을 하는 겁니다. 그리고 시간당 요금을 받는 방식인데 우리나라 PC방요금과 거의 비슷한 수준입니다. 그리고 Windows 데스크탑하나를 빌려주는 형식이 꼭 PC방과 거의 닮았지요.


제일 왼쪽은 시간 종량방식(시간당 0.5~1달러수준) 가운데는 매달 14.99달러씩 가져가면서 80시간(고성능 구동시 40시간)기본 제공 필요시 추가 구매 오른쪽은 매달 39.99달러에 무제한이용(!) 대략 PC방 요금생각하면 쉽다. 만약 하드코어 게이머라면 제일 Unlimited를 질러도 크게 문제 없다!

아직은 Beta단계라 불안정한 면도 있지만 협력업체가 아주 후덜덜합니다.

서버시장 1위 IBM

소프트웨어 괴물 Microsoft

(안드로이드)모바일에 관해서 거의 도가 터버린 Samsung


덕분에 Beta라고 해도 Beta가 아닌 것 같습니다. 요금을 받는 수준인데 Beta라 보는 것도 웃기긴 하네요.


홈페이지에서는 클라이언트로 Android, Windows, Mac, Linux를 지원한다고 합니다. 그런데 Linux는 말이 좋아 Linux클라이언트지 사실은 Wine으로 굴리는 클라이언트입니다. 그런데 그게 또 잘 돌아갑니다. Wine에 무슨짓을 한건지는 잘 모르겠지만 뭐 굴러만 가면 좋은거죠 뭐.


일단 가입을 해야 시작을 할 수 있겠지요. 가입절차는 간단합니다. 제일 첫 페이지에서 Request Beta Access를 누르면 아래 화면이 나오는데요. 순서대로 쭉 적고 Add me to Beta를 누르면 이메일이 날아옵니다. 거기서 Confirm을 하시면 됩니다.


confirm이후 데이터센터를 고르라고 하는데 자그마치 서울에 서버가 있습니다!!!

그냥 서울을 고르도록 합시다. 가끔 속도테스트해보면 도쿄가 서울보다 빠를 때도 있는데 사실 이 서비스가 알게 모르게 소문이 나서 한국 이용자가 좀 됩니다. 그에비해 일본은 PC게임시장 자체가 워낙 좁아서 필요하면 도쿄로 잠깐 이사를 가도 됩니다. 사실 클라이언트에서 설정 가능합니다.


마지막으로 돈 문제가 있는데요. 3시간짜리 평가를 하시려면 좀 많이 기다리셔야 하고 그냥 돈을 내시면 바로 이용 가능합니다. 전 그냥 귀찮아서 종량제 질렀습니다. 제가 게임을 많이 하는 것도 아니고 기다리다가 한 세월 걸릴 것 같아서 그냥 7000(10시간)질렀습니다. 필요하면 더 구매하면 되니까요.


클라이언트는 https://liquidsky.tv/en/downloads 여기에서 받으시면 되고 자그마치 안드로이드도 지원합니다. PlayStore에 있으니 이를 사용하시면 편리합니다. 다만 안드로이드의 경우 터치방식으로 구동하는 조이패드가 뜨는데 그냥 패드 하나를 블루투스나 USB OTG로 연결하는 것을 추천합니다. 더럽게 안 맞더라구요. 아니면 키보드(?)를 하나 더 붙이시던가요.


Linux용 클라이언트는 제공되는 것이 생각보다 잘 구동이 안 되서 직접 Wine으로 굴리는 것을 추천합니다.Windows 클라이언트를 다운로드 받고 Wine으로 실행하면 그냥 실행 잘 됩니다. 어이없을 정도로 너무 잘 되서 더 황당할 지경이네요.


https://cdn.liquidsky.tv/assets/liquidsky.exe

이걸 다운로드 받으신 다음 그냥 Wine으로 돌리시면 됩니다. 참 쉽죠?

여기서 그냥 Yes를 하면 업데이트까지 문제 없습니다.

왠만하면 그냥 HIGH로 하자. Ultra로 해봐야 게임영상은 거기서 거기...

로그인하고 성능 설정을 하시면 게임을 하실 준비가 됩니다. 참고로 패드 지원이 약간 열악해서(Wine이..) 이전 글인 http://moordev.tistory.com/139 여기의 방법을 쓰셔야 패드 지원이 될겁니다. 짜증나기는 하는데 뭐 어쩌겠습니까...


Windows Server 2012에 Nvidia Grid K Xeon CPU에 8GB의 메모리를 제공중이다. 이정도면 현재 보통 PC방 수준의 성능은 뽑아내준다.

바탕화면을 보시면 아시겠지만 스팀은 미리 설치되어있습니다. 스팀을 실행하시고 게임을 설치, 실행해주시면 됩니다. 인터넷 속도는 데이터센터라 무지막지한 속도로 다운로드되니 걱정 안 하셔도 됩니다.

클라우드에서 Portal2를 굴리는 모습입니다.

,


출처: https://www.reddit.com/r/RocketLeague/comments/3tknvf/how_to_get_your_controller_working_through_wine/


요즘 게임들은 xinput방식을 사용하기 때문에 xbox360패드 혹은 xbox one 패드를 보통 이용합니다. 그런데 Wine에서는 이 패드에 대한 지원이 좀 부족합니다. 구형 DirectInput 방식을 쓰기 때문인데요. 이를 에뮬레이트 해주는 프로그램 이름이 꽤 유명한데 x360ce란 녀석입니다. 사실 이 프로그램은 에뮬레이터이고 XBOX패드를 갖고 계신다면 Bypass로 해주기만 하면 되겠지만 WINE은 koku_xinput_wine라이브러리(https://github.com/KoKuToru/koku-xinput-wine)를 이용하면 bypass로 지원하지만 컴파일이 귀찮지요. (잠깐 이거에 대해 글을 썼었는데 컴파일이 망해서 지웠습니다.)


그런데 x360ce를 Wine에서 실행할 수 있었군요.

x360ce는 directinput 방식의 컨트롤러를 Xinput 방식으로 흉내내 주는 프로그램인데 Wine에서 실행하면 Xbox컨트롤러를 써도 DirectInput형태로 들어가게 됩니다.대신 이를 이용하면 Xinput으로 들어가게 됩니다.


Xbox360Controller_WINE.zip



위에서 받은 내용물을 게임.exe가 있는 곳에 풀어 해친다음


그리고 Wine설정 들어가셔서



xinput1_3




이를 네이티브로 설정합니다. Xbox호환 게임패드를 Xbox360패드로 인식시켜주는 설정파일인데 잘 됩니다.



,

USBIP란 프로젝트가 있습니다. USB over IP를 줄여서 부르는 겁니다.


즉 특정 IP주소에 있는 USB장치를 내 장치에 있는 것처럼 사용하는 방법입니다. 이를 이용하면 지구 반대편에 있는 USB장치(예를 들면 시리얼통신을 쓴 산업장비 등등)을 내 컴퓨터에서 내 장치에 달린 것 마냥 쓸 수 있는 겁니다.


리눅스 커널 3.6 이후에는 이 프로젝트가 커널에 들어가게 되어 USBIP 라이브러리를 설치하는 것 만으로도 이런 것을 사용 할 수 있게 되었습니다. 다만, 바인딩하는 것이 귀찮고 명령이 좀 깁니다. 그리고 Windows에서 사용이 좀 힘듭니다.


그래서 VirtualHere란 업체에서 이를 쉽게 GUI로 만들고 사용할 수 있게끔 결과물을 내놓았습니다. 게다가 안드로이드에 한해서지만 모바일서버를 지원해서 안드로이드에 붙은 USB장치를 PC에서 사용하는 것도 가능해 졌습니다. 심지어 스팀링크에서도 사용이 가능해서 용도가 무궁무진합니다.


일단 저는 안드로이드에 유선형 Xbox컨트롤러를 달아 이를 PC에서 사용 하는 것으로 해보겠습니다. (이렇게 하면 무선 컨트롤러 비스무리하게 쓸 수 있습니다. 스마트폰이 거시기 하지만.


https://www.virtualhere.com/


일단 USB장치가 연결된 곳에 서버프로그램을 설치하고 장치를 사용하고자 하는 곳에 클라이언트를 설치해야 합니다.


서버프로그램은 Windows, Linux, OSX, Android를 지원하고

클라이언트는 Windows, Linux, OSX를 지원합니다. 사실상 3대 대표 OS를 다 지원하는 겁니다. 안드로이드서버가 제일 독특합니다.


서버든 클라이언트든 리눅스에서는 USBIP를 설치해야합니다. 다른 OS는 드라이버를 따로 설치해야합니다. 어찌보면 리눅스가 더 간편합니다.


sudo apt-get install usbip


그리고 홈페이지에서 서버프로그램을 다운로드받아서 설치해야 하는데 온갖 버전들이 즐비합니다. 그 이유는 특정 보드에 최적화된 버전을 준비한 탓인데요. 제일 아래에 가면 안드로이드 버전도 있습니다.


32비트의 경우

wget https://virtualhere.com/sites/default/files/usbserver/vhusbdi386

sudo chmod +x vhusbdi386

sudo ./vhsubi386 -b


이렇게 해주시고


64비트의 경우

wget https://virtualhere.com/sites/default/files/usbserver/vhusbdx86_64

sudo chmod +x vhusbdx86_64

sudo ./vhusbdx86_64 -b


이렇게 해주시면 서버세팅 완료입니다. 안드로이드는 그냥 Play Store에서 서버프로그램을 다운로드 받은 다음 그냥 앱을 실행 하면 됩니다. 이건 설명하고 자시고 할 것도 없네요.


설명을 보시면 제약사항이 있는데 무료로 USB장치는 하나만 된다고 합니다. 일단 저희는 시험만 해보는 것이니 일단 그냥 넘어가 봅시다.


이번에는 클라이언트를 설치하도록 합시다. 다른 PC에서 마찬가지로 USBIP 라이브러리를 설치합시다. OSX나 Windows는 당연히 드라이버를 설치해야 하고요.



https://virtualhere.com/usb_client_software


아래에 보시면 클라이언트가 있는데 GUI와 CLI버전 두가지를 준비해두었습니다. 저희는 귀찮기도 하고 이쪽이 더 편리하니 GUI버전을 다운로드 받기로 하지요.


다운로드 받은 후에는 서버와 마찬가지로 실행속성을 줘야 합니다.

sudo chmod +x vhuit32

혹은

sudo chmod +x vhuit64


GUI로 하시려면 아래 스크린샷을 보시면 됩니다. 속성을 여신 뒤에 실행 허용에 체크만 해주시면 됩니다.


실행속성 주기. 리눅스사용자라면 자주 쓰는 기능입니다. 근데 보통 귀찮아서 그냥 CLI쓰기도...

서버가 동일한 네트워크에 있는 가정하에 클라이언트를 실행하고 잠시 기다리면 서버가 자동으로 검색이 되고 장치를 사용 할 수 있게 됩니다. 저는 안드로이드에 Xbox컨트롤러를 연결하고 기다렸습니다.



저는 바로 연결이 되는데 아닌 분들도 있을 겁니다. 그럴 때는 해당 장치에 오른쪽 버튼을 누르고 Use를 실행하시면 됩니다.


실제로 잘 되더군요. 딜레이도 크게 없었습니다. 요새는 와이파이 속도가 엄청 빠르다보니 USB정도는 그냥 넘어가는 것 같습니다.


virtualHere란 이 프로젝트는 범용성이 워낙 좋아서 다른 용도로도 충분히 사용이 가능할 것 같습니다. 무엇보다 키보드와 마우스조차 사용가능해서 VNC를 대신할 수 있을 것 같기도 하네요.


보너스..


라즈베리파이를 USB 서버로 만들기(물론 라이센스가 있어야 여러개를 쓸 수 있습니다.)


https://www.virtualhere.com/oem_faq

여기 내용입니다.


SSH로 접속후에 아래 내용을 싹 긁어서 넣어주면 됩니다. 그러면 끝.


wget https://www.virtualhere.com/sites/default/files/usbserver/vhusbdarm
sudo chmod +x ./vhusbdarm
sudo mv vhusbdarm /usr/sbin
wget http://www.virtualhere.com/sites/default/files/usbserver/scripts/vhusbdpin
sudo chmod +x ./vhusbdpin
sudo mv vhusbdpin /etc/init.d
sudo update-rc.d vhusbdpin defaults
sudo reboot

이렇게 하면 Virtualhere 서버가 라즈베리파이에 만들어지게 됩니다.


그리고 먼곳에서 접속하기 위해서는 7575 TCP 포트를 열어주셔야 합니다. 왜냐하면 VirtualHere는 7575번 포트로 USB를 원격 접속하기 때문입니다.

,