친구가 OpenTTD JGR패치 버전을 가지고 서버를 열었는데, 제 서버로 이전을 고려하고 있어 이런저런 테스트를 진행해봤습니다. 그런데 제 서버(라즈베리파이)가 arm64 기반이다 보니, amd64용으로만 올라와 있던 릴리즈는 다운받아 사용할 수 없는 환경이었습니다.
그래서 이번에 많은 삽질이 있었는데, 실수로 파일을 날려서 다시 하는 김에 이번 작업을 잘 기록해두고, 후일 저와 같은 시도를 하시는 분들께 조금이나마 도움이 되기를 바라는 마음에 적어봅니다.
우선 관련 의존성 패키지들은 모두 깔려 있다고 간주합니다.
< 작성 환경 >
CPU 아키텍처: AArch64 (ARM64)
OS: Ubuntu 22.04 LTS
OpenTTD 버전: jgrpp 0.50.1
https://github.com/JGRennison/OpenTTD-patches/releases
JGR 패치의 깃헙에서는 지원하는 환경의 파일이 릴리즈에 올라와 있지 않으면 직접 컴파일해서 쓰라고 안내하고 있습니다.
우선 아래 명령어로 tar.gz 형식의 소스코드를 가져오고 압축을 해제했습니다.
wget https://github.com/JGRennison/OpenTTD-patches/archive/refs/tags/jgrpp-0.50.1.tar.gz
tar -zxvf jgrpp-0.50.1.tar.gz
그 후 OpenTTD 실행 파일이 들어갈 폴더를 만들고, 그 안으로 이동했습니다.
mkdir server
cd server
이제 릴리즈 빌드를 생성하는 옵션(컴파일 속도가 빨라진다는 설명이 적혀 있어 골랐습니다.), GUI 없이 생성하는 옵션 (저는 서버를 돌릴 것이기 때문에 그랬습니다.)을 포함한 명령어를 입력합니다.
make 명령어를 입력하면 본격적인 컴파일이 시작됩니다.
cmake ../OpenTTD-patches-jgrpp-0.50.1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DOPTION_DEDICATED=ON
make
cmake 명령어를 입력했는데 뭔가 오류가 발생한다면 필수 패키지가 누락되었을 가능성이 있으니 확인 후 다시 시도하시기 바랍니다.
(공식 컴파일 가이드)
https://github.com/JGRennison/OpenTTD-patches/blob/jgrpp/COMPILING.md
make 명령어를 입력하고 나면, 한참 기다려야 컴파일이 완료됩니다.
컴파일이 완료되고 나서 바로 실행했다면, 오류를 접했을 것입니다. 그래픽 셋이 설치되지 않았기 때문입니다.
따라서 아래 사이트에서 OpenGFX를 설치할 것입니다.
https://www.openttd.org/downloads/opengfx-releases/latest
다음 명령어로 설치했습니다. 아래 명령어에서 7.1 을 설치하실 OpenGFX 버전으로 바꾸시면 됩니다. 설치 후 압축을 해제하고 baseset 폴더로 옮겨줬습니다.
wget https://cdn.openttd.org/opengfx-releases/7.1/opengfx-7.1-all.zip
unzip opengfx-7.1-all.zip
mv opengfx-7.1-all.zip ./baseset
이제 준비가 끝났습니다.
아래 명령어로 서버를 시작합니다.
./openttd -D
서버가 잘 켜집니다.
포트포워딩 작업을 해 두고 서버 목록에 추가하면 저렇게 나옵니다.
openttd.cfg 파일이 생기지 않는 문제 해결하기
그런데... 이렇게 하면 서버 설정에 쓰이는 openttd.cfg 파일이 생기지 않습니다.
원래는 ~/.openttd 폴더가 생성되어야 하지만, 무슨 이유에선지 도저히 생기지 않습니다.
그래서 일단 빈 파일을 만들어봅시다.
cd
mkdir .openttd
nano .openttd/openttd.cfg
openttd.cfg는 빈 파일이 되게끔 만들었습니다.
그 후 OpenTTD 서버를 재실행하고, openttd 콘솔창에 saveconfig를 입력합니다.
그 다음 다시 .openttd 폴더를 확인해보면, 다른 파일들까지 전부 생겨난 것을 볼 수 있습니다.