집에서 스팀 게임을 하다가 전용 서버(Dedicated Server)를 열어서 여러 사람과 같이 하고 싶은 경우가 있습니다. 내 컴퓨터에서도 방을 생성하는 것이 가능하지만, 그렇게 하자니 렉이 너무 심하게 걸리니까 안정적인 게임을 위한 전용 서버가 있었으면 하는 것이지요. 혹은 멀티플레이어 게임 서버를 만들고 싶을 수도 있지요.
그래서 보유하고 있는 우분투 서버에서 전용 서버를 개설하는 방법을 알아보았습니다. 먼저 steamcmd를 설치하고, 원하는 게임의 전용 서버를 설치한 다음에 설치된 게임을 바탕으로 서버를 운용하는 방법까지 하나하나 알아보겠습니다.
steamcmd 설치하기
우분투에서 스팀 게임의 전용 서버를 열기 위해서는 steamcmd라는 프로그램을 설치해야 합니다. 이는 32비트 프로그램이기 때문에 최근의 우분투에서는 바로 다운로드가 어렵습니다. 아래의 명령어들을 차례로 입력합니다.
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install steamcmd
Code language: Bash (bash)
그러면 steamcmd 설치 과정이 진행됩니다.
Y를 눌러 설치를 진행합니다.
라이센스 동의 화면에서는 오른쪽 화살표를 눌러 OK 버튼을 활성화하고 엔터를 눌러줍니다.
라이센스에 동의하므로 아래 화살표를 눌러 I AGREE를 활성화하고 엔터를 눌러줍니다. 그러면 곧 설치가 마무리 됩니다. steamcmd 내에서 정상적으로 백스페이스 키가 먹히지 않기 때문에 아래 명령어를 통해 .inputrc
파일을 생성합니다.
vi ~/.inputrc
Code language: Bash (bash)
그 후에 insert키를 한 차례 누르고 아래 내용을 입력합니다.
"\e[3~": delete-char
Code language: JavaScript (javascript)
Esc버튼을 한 번 누르고 :wq
입력후 엔터를 눌러 파일을 저장합니다. 마지막으로 게임을 설치할 폴더를 미리 만들어 줍니다.
mkdir games
mkdir games/7days
Code language: Bash (bash)
전용 서버 설치하기
steamcmd를 입력해서 실행합니다. 서버 종류에 따라서 로그인을 요구할 수도 있습니다.
login anonymous
force_install_dir /home/$USER/games/7days
app_update 294420
Code language: Bash (bash)
7 Days to Die는 익명 로그인을 해도 괜찮기 때문에 익명으로 로그인 합니다. 로그인 후에는 게임의 설치 위치를 지정합니다. 앞서 생성했던 games 폴더를 지정했습니다. 이제 게임을 다운로드 받습니다. 294420
은 7 Days to Die의 app_id
입니다.
다운로드에는 일부 시간이 소요됩니다. 대략 6.5기가 정도의 용량을 모두 다운받고 나면 quit
을 입력하여 steamcmd를 종료합니다.
전용 서버 실행하기
이제, games 폴더에 들어가보면 게임이 설치되어 있는 것을 확인할 수 있습니다. 설치된 폴더에 들어가보면 serverconfig.xml이 있습니다. 이제 이것을 고쳐서 서버의 설정을 잡아주면 됩니다.
cp serverconfig.xml my_server_name.xml
vi my_server_name.xml
Code language: Bash (bash)
설정에 대한 자세한 설명은 따로 하지 않겠습니다. [링크] 설정 파일을 다 만들었으면 이제 실행만 하면 됩니다. 실행은 shell 스크립트로 작성되어 있습니다. 서버를 편하게 실행할 수 있는 위치에 실행 파일을 만드는 것이 여러모로 편리하기 때문에 다시 홈으로 돌아가서 파일을 생성합니다.
vi start_7days.sh
Code language: Bash (bash)
내용은 아래와 같이 채워줍니다.
steamcmd +login anonymous +force_install_dir /home/$USER/games/7days +app_update 294420 +quit
sh /home/$USER/games/7days/startserver.sh -configfile=my_server_name.xml
Code language: Bash (bash)
그러면 매 실행시마다 자동으로 업데이트를 확인하고 서버를 실행하게 됩니다. 서버를 실행한 쉘은 반드시 켜놔야 합니다만, screen 명령어를 통해서 백그라운드에서 실행하는 것도 가능합니다.
screen -S 7days
sh start_7days.sh
Code language: Bash (bash)
서버가 실행되면 아래와 같이 나타나게 됩니다.
그러면 해당 스크린을 detach하기 위해서 [컨트롤 + A, D]를 순서대로 눌러줍니다. 서버가 백그라운드에서 돌고 있으므로 언제든지 쉘을 종료해도 됩니다. 나중에 다시 돌아와서 해당 스크린을 열고 싶으면 아래 명령어를 입력하면 됩니다.
screen -r 7days
Code language: Bash (bash)
7days는 굳이 입력하지 않아도 스크린이 하나 뿐이라면 자동으로 해당 스크린이 복구됩니다. 이제 서버에 접속해 보겠습니다.
매우 잘 되는군요. 전용 서버 실행이 완료되었습니다. 나중에 서버를 종료를 하려면, 서버 실행 화면에서 [컨트롤 + C]를 눌러주면 됩니다.
startserver.sh shell은 어떤식으로 스크립트가 짜여져 있나요? 게임 을 다운로드 하면 생성되는 파일 인가요?
네, 게임 서버를 다운로드하면 기본적으로 들어있는 sh 파일이라서 별도로 손을 대지는 않았습니다. 있는 그대로 실행해서 저도 내용물까지는 가물가물 하네요.
현재 맥에서 서버를 열려고 하는데 startserver.sh 파일이 없어 만들고 해봤지만 작동이 안되서 말씀 드려봤습니다. 답변 감사합니다
스팀이 아닌 스팀cmd로 설치한 것 맞나요? 스팀에서는 단독 서버 실행을 위한 스크립트를 제공하지 않을 수 있습니다. 대신 게임 내에서 직접 서버 생성하여 바로 열 수는 있습니다만 사용자가 반드시 접속해 있어야만 하겠지요.
안녕하세요. 위에 소개해주신 내용대로 친구들하고 7D2D를 하기위해 서버를 열어보려고 찾아봤더니… 이런 분야를 전혀 모르던 제가 따라하려니 우분투 설치조차 모호하고 어렵네요..ㅠ 아마존 AWS GAMELIFT라는 것을 이용해서 본인컴을 안건드리고 사용하는 방법이 있는 것 같은데, 링크는 https://steamcommunity.com/app/251570/discussions/0/154643085272604797/ 에서 보았습니다. 그걸 봐도 따라하는 과정에서 잘 이해가…ㅠ
현재 기준으로 우분투 20.04설치부터 설정까지 조금만 더 자세하게 설명해주실수 있을까요? 선생님…부탁드립니다…
올려주신 글에 gamelift 관련 내용은 딱히 안보이네요. 그리고 20.04나 18.04나 별 차이 없습니다. 어디서 어렵다고 하시는건지 잘 감이 오지 않습니다. EC2 생성하고 접속하는 부분이 어렵다고 하시면 관련 글들이 구글에 많이 있으니까 그걸 참조하시는게 좋겠습니다. 다만, 네트워크 + 보안 관련하여 초기 지식이 없으면 꽤 어렵게 느껴질 수밖에 없습니다.
Success! App ‘294420’ already up to date.
games 폴더로 가도 그 어떤 파일도 찾을수가 없어요.
서버 용량을 보면 인스톨 된게 확실한데….
뭐가 문제 일까요?
ㅠㅠ
간절히 답변 기다리고 있을게요