여기서 1.1.42버전의 소스를 받은 다음 압축을 풀고 패치파일을 압축을 푼 폴더에 넣어줍니다.
그 다음 patch -p1 < wine1.2_1.1.42-0ubuntu4_1.1.42-0ubuntu4starcraft1.diff
라고 해주시면 와인에 패치가 됩니다. 그다음
make
그리고 Playonlinux를 설치 하셨다면 ~/.PlayOnLinux/wine/linux-x86 (32비트기준 64비트라면 linux-amd64입니다.)에다가 폴더 하나 만들어서 컴파일된 결과물을 넣어주시면 됩니다.
그런데 컴파일 하기 귀찮으시면 위의 출처 들어가셔서 deb파일을 다운로드 받은 다음 똑같이 압축 풀어주셔도 됩니다. 사실 이것이 훨씬 더 편합니다. 그리고 스타크래프트를 설치후에 돌려주시면 됩니다.윈도7에서 색상 깨지는 것과는 다르게 상당히 잘 됩니다. 특히 패치중에 스타크래프트용 속도패치가 들어가 있어서 딜레이도 상당히 줄어듭니다.
참고사항 : 스타크래프트2는 어떻게 돌리냐고 하시는 분들도 있을 것 같은데 Playonlinux에 이미 있습니다. 그것으로 설치하시면 잘 됩니다. 스타크래프트1은 Playonlinux에 들어가있는 녀석이 속도패치가 되어있지를 않아서 따로 설명을 하는 것입니다.
이 글은 2012년 10월 27일에 제 다음블로그에 있던 글을 가져온 것입니다. 지금하고 약간 안 맞을 수도 있습니다. (하지만 저는 아직도 이 방법대로 만들어서 사용하고 있습니다.)
컴퓨터를 10년이상 굴리다보니 친구나 친척을 통해서 낡은PC가 잘 굴러들어온다. 소음도 엄청 크고 가끔 터질지 모르는 시한폭탄같은 물건도 있지만 그것 중에는 버려두기 아까울 정도의 물건도 있다. 특히 내가 어딘가에서 3만원주고 구입한 인터넷PC가 그러한데 우리은행이라 적힌 것을 봐서 고객편의용으로 굴리다가 용산에 내놓은 것으로 보였다. 어쨌건 생각보다 깨끗한데다가 조용한 편이라(120mm 팬 하나로 냉각을 끝낸다.) 토렌트머신 및 NAS대용으로 굴리고 있다. NAS용으로는 그냥 Pydio/AjaXplorer 를 이용하면 NAS대용으로 충분히 굴릴 수 있다. 이건 쉬우니까 설명 안 한다.
일단 이제는 쓰지않는 낡은 PC에 하드를 큰걸 넣고 깨끗한(?)리눅스를 설치한다. 제일 좋은 것은 역시 우분투서버버전이나
X없는 데비안, 그리고 센트OS정도? X를 쓴다면 내가 이 글을 올릴 이유가 없을 정도로 쉬울테니(마우스로 딸깍거리기만 하면 바로
웹컨트롤이 되는데 굳이 이렇게 글을 올리겠는가...)
설명 기준은 우분투(혹은 데비안)기준이다. 다른 OS를 쓴다면 설정파일이나 몇가지가 다를 것이다.
(트랜스미션 홈페이지에서 데비안만 따로 설명하고 있다. 설정파일이 다른곳에 있다고(...))
일단
sudo apt-get install transmission-daemon
으로 트랜스미션의 데몬(서버버전?)을 설치한다. 그리고 설정파일을 수정하기 위해서 서버를 중지시켜야 한다. 중지 명령어는
sudo /etc/init.d/transmission-daemon stop
이러면 서버가 중지되었다고 뜬다. 서버를 중지시키는 이유는 아파치와는 다르게 일단 데몬이 죽지 않으면 설정파일을 원래대로 돌려놓기 때문이다.
이제 /var/lib/transmission-daemon/info/setting.json 파일을 편집한다.
rpc-username과 rpc-password도 원하는 것으로 고친다. 이 항목은 웹으로 접속할 때 필요한 로그온과정에서 물어볼 것이다. 잘 기억하자.
그리고uname umask의(감사합니다 욱이님 수정했습니다.) 숫자를 18에서 0으로 고치자. 이래야 777로 누구나 수정 가능한 권한이 주어지게 된다.
일단 여기까지만 해도 상관없다. 나머지는 웹으로 접속한다음 설정해도 충분히 설정이 가능하기 떄문에...
다시 서버를 실행한다. sudo /etc/init.d/transmission-daemon start
그리고 웹브라우저로 서버에 접속해보자.
http://(서버주소):(포트번호 기본은9091)
이
러면 유저네임과 패스워드를 물어볼텐데 아까 설정한 이름과 패스워드를 입력해보자. 이제 웹으로 토렌트를 충분히 컨트롤할 수있게
되었다. 더 많은 설정을 하고 싶다면 아래쪽의 톱니버튼을 누르고 Preference를 누르면 더 설정이 가능하다. 예를 들면
다운로드 폴더라던가 속도라던가.
안드로이드에서는 TorrrentFu같은 어플리케이션으로 컨트롤이 가능하다. 아니면 Transmission-remote같은 것도 괜찮다. 아이폰도 있을텐데 이건 내가 아이폰이 없으니 알아서 앱스토어를 잘 뒤져보시라. 정 짜증나면 그냥 웹브라우저를 이용해도 충분히 컨트롤 가능하다. 다만 PC용 웹화면이라 확대축소가 불가피하다.
써보니 Transmission 의 큰 문제가 있었다. Transmission으로 받은 파일은 소유주가 Transmission이고
덕분에 CIFS등으로 접속하면 여길 수정할 수가 없다는 것이다. 그래서 Transmission 계정에 몇 가지 권한을 지니게
해줘야만 했다.
Long Live The Queen 프린세스메이커의 패러디 게임이라고 하는데 죽을일이 없는(가끔 가출은
하더만...) 프린세스 메이커와는 다르게 잘못된 선택은 곧 죽음인 살얼음판의 프린세스메이커라고 한다고해서 가격도 싸길래 냉큼
질러보았다.(사실 리눅스 지원인것도 한 몫했다. 리눅스 지원 게임이 그리 많지는 않으니..최근 개인프로젝트로 돌릴까 하는
클라우드게이밍도 스팀이 리눅스를 지원하면 그냥 클라우드 데스크탑에 스팀만 띄워주면 되니까 쉬워진다.)
일단 냉큼 지르고 영어의 압박을 간단히 떨친후(사실 영어로 되어있어서 반대로 게임하기 수월했다.) 뭐가뭔지 몰라(...) 공략을 찾던 중 이 게임이 Ren'Py라는 엔진으로 만들어졌다는 것을 알았다.
Ren'Py...
이름에 왠지 Py가 들어가는데다가 MacOSX, Linux, Windows를 전부 지원한다? 혹시 이거 Python?하고
스팀설치 폴더에 들어가서 뜯어본결과 Python맞더만...그것도 PyGame이라는 엔진을 비주얼노벨용으로 만든게 Ren'Py고
PyGame이 안드로이드도 지원하기 때문에 Ren'Py도 안드로이드 지원이 가능하다고 되어있었다.
그러나. 이 게임은 스팀에서 판매하기에 안드로이드 지원이 될 턱이 없었고 스크립트 언어인 Python이라면 별 저항없이 안드로이드에 이식이 되지 않을까 하던중 RenPy SDK에서 안드로이드 지원이 가능하다는 것을 찾아내었다.
흐음...이걸 일단 안드로이드에 이식해 보기로 하고 결국 휴일에 삽을 들고 말았다...에라이.
자 안드로이드 포팅(?)을 위한 준비물을 우선 말해보도록 하겠다. 여기서는 우분투같은 리눅스 환경에서 작업하는 것으로 되어있습니다. Mac이나 Windows는 스팀게임의 경로나 안드로이드폰 연결방법등이 다릅니다.
5. 손을 댈 Ren'Py로 만들어진 게임(여기선 Long Live The Queen 되시겠다. 이건 Steam관련 스크립트가 있긴 하지만...스팀없이도 실행되는 것을 확인)
6. rpatool https://github.com/Shizmob/rpatool rpa나 rpi등으로 이미지나 음악들이 압축 되어있는 경우 어쩔 수 없이 이 파일들을 풀어 해쳐놓아야 안드로이드에서 실행이 된다. 아니면 다른 방법이 있을 수도 있는데 방법을 잘 모르겠다.(...)
7. 삽질을 위한 안드로이드 기반 기기(에뮬레이터는 비추)
8. adb 안드로이드개발 홈페이지에서 다운로드 받던지 아니면 sudo apt-get install android-tools-adb
*. 당신의 삽질력
일단 되었으면 JDK와 Python을 설치하자.
그리고 Ren'Py SDK를 적당한곳에 압축을 풀고 RAPT를 Ren'Py SDK의 압축 푼곳에다가 같이 압축을 풀어넣자.
압축 풀기가 완료되었다면 renpy.sh를 실행해서 Ren'Py런처가 실행이 잘 되는지 우선 보도록 하자. 되었다면 예시로 같이 들어있는 것도 실행해 보고 이것저것 하다가 일단 종료.
이
제 스팀에서 Ren'Py게임을 구입하자. 아니면 조금 뒤적거리면 무료로 좋은 게임을 배포하기도 하니 잘 찾아보자. 걔중엔
지하철에서 하기에는 조금 엄한물건도 있기는 하지만....여기서는 아까 말했던 Long Live The Queen(이하 LLQ)을
이용하도록 하자. 그리고 꼭 한번 실행시켜주자. 가끔 스팀이 제대로 다운로드 안 하고 다 됐다고 사기치는 경우가 있어서
그런것이니 한번은 꼭 실행시켜보도록 하자.
실행이 확인 되었으면
~/.local/share/Steam/SteamApps/common 로가면 당신이 그동안 스팀에다가 쏟아부은 결과물들이 들어가
앉아 있다. 여기서 Long Live The Queen이란 이름의 폴더째로 일단 복사하자.
복사한
폴더는 위의 Ren'Py SDK와 RAPT의 압축을 풀어넣은 곳에다가 붙여넣기 하면 된다. 다시 한번 renpy.sh를
실행해보자. LongLifeTheQueen이 보이는가? 오른쪽에 Android라고 보이는가? 여기에 보면 Emulation으로
실행을 해볼 수 있다!!!! 그.러.나. 여기서 실행하면 당연하다는 듯이 에러난다. 이 에러를 잡는 것이 바로 이 삽질의
핵심이다.
삽질의 처음은 로그를 뜯어보는 것이다. 로그를 한번보자. glpatch.rpy가 에러가
났다고 나온다. 하지만 게임폴더를 아무리 뒤져도 rpy파일은 보이지 않는다. 사실 파이썬을 써보면 알겠지만 속도를 위해 한번
바이트코드로 컴파일하게 되는데 렌파이도 비슷한 원리로 스크립트를 컴파일 해 놓은 것이다. 즉 로그에서 rpy라고 나오는 파일이
사실 rpyc를 말하는 것으로 생각해도 좋다.
암튼 glpatch라는 놈이 문제라고 되어있는데 이미
컴파일되어있는 스크립트를 어떻게 해볼 수는 없고 한번 제거해보도록 하자.즉 삭제! 그리고 빈파일을 하나 만들어서
glpatch.rpy라고 하나 만들어 놓자. 빈 파일이기 때문에 아무런 내용은 없지만 그렇다고 파일이 없으면 그건 그것대로 또
에러가 난다. 말그대로 patch라고 되어있는 걸로 봐서 OpenGL관련 문제를 해결한 패치로 보인다. 그러나 안드로이드에서는
저게 도리어 문제를 일으키니 패치를 없애도록 하자. 그리고 한번 게임을 실행해보면 glpatch.rpyc가 생성되어있는 것을 알 수
있다. rpy가 빈파일이므로 rpyc도 빈내용으로 만들어진 바이트코드가 된다. 이걸로 한 가지 알 수 있는 것은 저 패치는
PC에서만 통하는 것으로 보인다는 것. 아마 Nvidia나 ATI드라이버 호환내용이 아니었을까?
왠 아이콘 이미지를 못 찾는다고 뜬다.(icon-big.png)ignore 버튼을 누르니 이번엔 배경이미지를 못찾는다고 하고 배경음악도 못찾는다고 하고..
이 파일들 아까 Game폴더에 없었는데?
사실 이것의 경우는 안드로이드용 렌파이의 문제일것으로 보인다. 게임 개발자나 회사에서 감추고픈(?) 이미지나 음악들이 떠돌아다니는 것을
싫어하기에 Ren'Py에서는 rpa라는 파일로 압축+암호화를 하는데 이게 안드로이드 내에서 정상적으로 복호화가 진행이 되지 않은
것이다. 잘 뒤져보면 llq.rpa란 파일이 보인다. 아마 못찾는다고 뜬 파일들은 이 안에 다 있을 것이다. 그럼 이걸 풀어서
game폴더에 흩뜨려 놓으면 정상적으로 실행이 될 것이다.
그럼 무엇으로 복호화를 할까? 아주 간단하게도 rpatool을 이용하면 된다. 이 것도 하나의 파이썬 스크립트로 되어있는데 그냥 game폴더에 넣어주자. 그리고 cd명령으로 game폴더까지 들어간다음
./rpatool.py -x llq.rpa
이러면 암호화되었던 것들이 압축이 싹풀리면서 보이게 된다. 그럼 이제 rpatool하고 llq.rpa파일은 필요없어졌으니 삭제하자. 겸사겸사 bytecode.rpyb파일도 삭제해주고.
이제 다시 빌드하고 폰에 넣으면?
타이틀화면 입성! 게임까지 입성이다!!!
오오..
힘든 사투였다.오오..근데 이 게임을 지하철에서 하는 건 좀 무리 아니려나...
2014. 7 .26 우선 안드로이드 포팅을 하는 방법을 올린 유튜브 영상이다. 본인이 찍었으며 이 방법을 통해서 만들어진 결과물을 마음대로 배포하지를 않기를 바란다. 만들어진 결과물은 개인적으로만 사용하고 꼭 스팀에서 구입한 것을 이용하자. 공식홈페이지에서 구입한 것은...잘 모르겠다.
리눅스 데스크탑에서 매번 겪는 문제중 하나는 바로 한글과 관련된 문제이다. 워드프로세서 한글이 아닌 글자 한글이 문제인 것이다. 지금은 보통 UTF-8이(당연하게도)기본 환경이므로 한글을 띄우는데에 삽질이 필요치 않지만 가끔 EUC-KR을 요구하는 환경이라던지(주로 M$환경에서 작업한 결과물이 이런 식이다.) 아니면 폰트가 가끔 빠져서 한글을 띄우기는 하는데 네모네모네모로 뜬다던지 하는 현상이 일어나곤 한다.
초기 리눅스 민트의 경우 한글폰트가 빠진채로 배포가 되어서 한국어로 설치를 하면 모든 설명이 네모로 나와서 사람을 고생시키곤 했었다. 그런데 리눅스민트도 아니고 한동안 별 문제를 안 일으켰던 우분투14.04에서 난데없는 한글글꼴문제가 터지고 말았는데 이번에는 이전과 반대로 리눅스민트나 다른 데스크탑환경이라면 별 문제는 없지만 Unity환경을 사용한다면 꽤나 치명적인 문제가 되어버렸다. 나는 리눅스민트로 이미 넘어간지 오래지만 안드로이드 관련 개발을 하는 사람들은 그냥 별 생각없이 Unity환경의 우분투를 사용하고있다. 이런 사람들은 배포판을 업그레이드 했다가 멘붕을 조금 먹었다고 한다. 다행히도 이를 해결하는 스크립트가 나왔다고 하는데 이런 일이 있을 때마다 리눅스 데스크탑을 추천해주기가 민망해진다. 이런 간단한 문제조차 삽질을 하게 만드는데 과연 어떤 사람들이 리눅스 데스크탑을 쓰려고 할까?
게다가 리눅스 점유율을 끌어올려줄거라 믿었던 Steam 리눅스용도 약간 한글 문제를 겪고 있다. Steam자체내에서는 문제가 없는데 Steam용 게임들에서 문제가 일어나는 것이다. 한글로 떠야할 자막이 폰트문제로 네모네모로 뜨는 문제다. 특히 Valve사 게임에서 이런 일이 자주 일어나는데 Source엔진의 문제인 것인지 아니면 리눅스환경 자체의 문제인지는 잘 모르겠다. 엉뚱한 폰트를 자꾸 찾는 것 봐서는 Source엔진의 한글지원 문제로 보인다.
윈도에서 압축을 한 파일의 경우에도 리눅스에서 그냥 생각없이 풀어버릴 경우 한글로 된 파일명이 와장창 깨지는 것을 볼 수 있다. 이것은 Repairer라는 노틸러스 확장이나 wine으로 설치한 반디집으로 해결 가능하다. kozip이라는 것도 개발되었고 반디집의 경우 리눅스데스크탑을 설치하면 Playonlinux를 설치한 다음 바로 설치하는 프로그램이기 때문에(alz와 egg지원을 위해서) 딱히 불편함을 느끼지 못한다. 하지만 이것은 어디까지나 유니코드표준인 UTF-8이 아닌 CP949환경을 사용하는 윈도 때문이며 기존의 호환성을 최대한 끌고가는 윈도 특성상 코드가 갑자기 UTF-8로 바뀔일은 없을 것으로 보인다.
폰트의 다양성 문제는 이미 해결이 된 것을 보인다. 과거 백묵글꼴의 경우 매우 가독성 안 좋고 보기 영 안 좋기로 유명 했는데 언제부터인가 은 글꼴이 나오면서 리눅스에서도 굉장히 미려한 글꼴이 가능해졌다. 물론 그 시절에도 저작권있는 글꼴 가져다가 때려박는 사람들이 있기는 했지만 그런 글꼴이 좋았냐고 하면 그건 그것대로 영 아니었던지라 은 글꼴은 순식간에 한글표준글꼴화가 되어버렸다. 지금은 은 글꼴도 아니고 나눔글꼴이 그 역할을 수행중이며 우분투에서 기본 한글글꼴이 되면서 "나눔"이라는 말에 맞게 상당히 많이 퍼지게 되었다. 윈도에서의 굴림같은 존재가 리눅스에서는 나눔고딕이 되었는데 언젠가는 이 나눔글꼴도 새로운 폰트에 자리를 내놓게 될지도 모를 일이다. 어쨌건 그만큼 한글글꼴은 꽤 다양해진 편이다. 이 점은 그나마 다행이라고 생각한다.
하지만 한글과 리눅스는 별로 친하지 않은 것으로 보아 이를 해결하기 위해서도 리눅스 데스크탑의 점유율이 문제인 것으로 보인다. 매번 한글과 관련하여 문제가 터진다는 것은 그만큼 한국인이 개발에 참여하기 어렵다는 의미이며 한글문제를 메일로 날려도 워낙 수가 적어서 이슈화되지 않는 것도 문제다.그나마 Steam은 좀 확인 하는 것으로 보이는데 이게 해결되기까지 얼마나 걸리게 될지는 알 수 없는 일이다.