2016.04.24 수정 사항
- 게임 업데이트(빌드 174499) / cluster.ini에 languae_code 추가
- 동굴 worldgenoverride.lua 내용 일부 변경
2016.04.21 수정 사항
- 게임 업데이트(빌드 174200) / 동굴 worldgenoverride.lua 내용 변경
2016.04.15 수정 사항
- 게임 업데이트(빌드 172848) / 동굴 worldgenoverride.lua 내용 변경
2016.03.26 수정 사항
- 게임 업데이트 / 커맨드라인 -console 제거
2016.02.27 수정 사항
- 게임 업데이트 / cluster.ini 세부설정 수정
2016.02.21 수정 사항
- 세이브 슬롯 여러 개 만들기 추가
2016.02.12 수정 사항
- 서버 구조가 변경됨에 따라 전체적으로 수정
2015.11.25 수정 사항
- worldgenoverride.lua 파일 수정
데디케이티드 서버(Dedicated Server) 만들기 - 초급자 버전
http://la-nube.tistory.com/115
http://cafe.naver.com/babmukda/67002
다음의 내용은 초급자 버전에서 생략한 내용을 다루고 있으며,
중급자 이상을 위한 것입니다. 따라서 초급자 버전을 통해
서버를 성공적으로 구축한 경우에만 따라하시기 바랍니다.
7번을 제외하고는 1번~6번 중에 필요한 부분만 적용해도 괜찮습니다.
예를 들어, 1번 내용만 써도 상관없으며, 2번과 4번만 사용해도 괜찮습니다.
문서 - Klei - DedicatedServer - Cluster_1 의 경로에
2-1. 서버 클러스터의 cluster.ini 세부설정 이해하기
(경고) 다음의 내용들은 이미 기본값으로 설정되어 있으므로,
반드시 필요한 경우에만 변경 또는 추가해야 합니다.
불필요한 경우, 예기치 못한 오류가 발생할 수 있습니다.
[MISC] 부분의 내용은 다음과 같습니다.
console_enabled = true
콘솔명령어를 사용할 수 있는 가를 보여줍니다.
기본값은 true, 즉 사용한다는 것입니다.
특히, 데디케이티드 서버에서는 false로 하면 안 됩니다.
데디케이티드 서버의 국적(?)을 보여주는 좋은 예입니다.
기본값은 enlgish, 즉 영어로 되어 있습니다만,
우리는 한국어를 쓰는 한국인이므로 korean으로 변경하였습니다.
shard_enabled = true
마스터(지상)서버와 케이브(동굴)서버를 서로 연결할 지 묻습니다.
기본값은 true, 즉 연결한다는 것입니다.
bind_ip = 127.0.0.1
하나의 PC에서 돌리는 경우에 127.0.0.1 로 기본 설정되어 있습니다.
다만, 2대의 PC에서 지상과 동굴서버를 각각 열어 연결하는 경우에는
위 설정에서 127.0.0.1 을 0.0.0.0 으로 변경해야 합니다.
master_ip = 127.0.0.1
하나의 PC에서 돌리는 경우에 127.0.0.1 로 기본 설정되어 있습니다.
다만, 2대의 PC에서 지상과 동굴서버를 각각 열어 연결하는 경우에는
지상서버를 여는 PC의 실제 외부IP를 입력하여야 합니다.
master_port = 10889
지상서버와 동굴서버를 연결하는 포트이며, 기본값은 10889 입니다.
다만, 2대의 PC에서 지상과 동굴서버를 각각 열어 서로 연결하는 경우에는
지상서버를 여는 PC에서 10889 포트에 대하여 포트포워딩이 필요합니다.
공유기나 사설방화벽이 없다면 불필요합니다.
자동으로 설정되어 있기 때문에, 변경하지 않을 것을 권장합니다.
cluster_key = supersecretkey
하나의 PC에서 돌리는 경우에는 딱히 필요하지 않습니다.
다만, 2대의 PC에서 지상과 동굴서버를 각각 열어 연결하는 경우에
서로가 맞는지 확인하는 일종의 암구호(?) 같은 역할을 합니다.
2대의 PC의 클러스터 키가 일치해야 서로 연결할 수 있습니다.
[GAMEPLAY] 부분에서 추가할 수 있는 내용은 다음과 같습니다.
기본값은 false 입니다.
[NETWORK] 부분에서 추가할 수 있는 내용은 다음과 같습니다.
기본값은 false 입니다.
tick_rate = 15
선택할 수 있는 값은 15, 20, 30, 60 이 있으며, 기본값은 15입니다.
게임개발사는 랜(LAN) 전용에서만 15보다 높은 값을 사용하라고 권고합니다.
랜(LAN) 전용이 아닌 일반적인 네트워크 환경에서는 트래픽 과부하의 원인이 됩니다.
whitelist_slot = 0
서버에 화이트리스트를 위한 자리를 예약하며, 기본값은 0 (예약하지 않음) 입니다.
whitelist_slot 의 최대값은 max_player 이며, 화이트리스트가 아닌 유저들은
max_player 에서 whitelist_slot 을 뺀 숫자만큼만 입장 가능합니다.
화이트리스트는 whitelist.txt 이며, adminlist.txt와 blocklist.txt와 같은 경로에 있어야 합니다.
true는 이것을 가능하도록, false는 불가능하게 설정합니다.
기본값은 true 입니다.
서버를 오프라인으로 만드는 경우에만 true로, 그 외의 경우에는 false로 해야 합니다.
기본값은 false 입니다.
서버를 오프라인으로 만들면 랜(LAN)에 있는 유저만 접속이 가능하며,
스팀과 관련된 모든 기능이 정지됩니다. 즉, 스킨을 안 줍니다.
[MISC] 부분에서 추가할 수 있는 내용은 다음과 같습니다.
기본값은 6 이며, 1~6 사이에서 변경 가능합니다.
기본값은 6 이며, 1~6 사이에서 변경 가능합니다.
[STEAM] 부분을 만들어 이곳에 추가할 수 있는 내용은 다음과 같습니다.
기본값으로 위에서 부터 0, false, false 입니다.
2-2. 각각 서버의 server.ini 세부설정 이해하기
(경고) 다음의 내용들은 이미 기본값으로 설정되어 있으므로,
반드시 필요한 경우에만 변경 또는 추가해야 합니다.
불필요한 경우, 예기치 못한 오류가 발생할 수 있습니다.
각 서버의 [NETWORK] 부분의 내용은 다음과 같습니다.
server_port = 11000
server_port = 11001
자동으로 설정되어 있기 때문에, 변경하지 않을 것을 권장합니다.
기본값으로 마스터(지상)서버는 11000이며, 케이브(동굴)서버는 11001입니다.
서버가 사용하는 포트는 서로 달라야 합니다.
is_master = true
is_master = false
누가 마스터(지상)서버이며, 누가 케이브(동굴)서버인지를 결정합니다.
마스터(지상)서버는 true이며, 케이브(동굴)서버는 false 입니다.
name = Caves
id = 625509893
케이브(동굴)서버의 경우에는 위의 내용이 더 추가되어 있습니다.
케이브(동굴)서버의 이름은 무엇이며, 서버의 번호가 무엇인지 나와 있습니다.
각 서버의 [STEAM] 부분의 내용은 다음과 같습니다.
master_server_port = 27018
authentication_port = 8768
master_server_port = 27019
authentication_port = 8769
스팀에서 추가적으로 사용하는 포트입니다.
기본값으로 마스터(지상)서버는 27018과 8768이며, 케이브(동굴)서버는 27019와 8769입니다.
서버가 사용하는 포트는 서로 달라야 합니다.
3. 포트포워딩 (공유기 또는 사설방화벽을 사용하는 경우에만)
데디케이티드 서버는 들어오는 연결의 포트가 닫혀 있다면,
자동으로 스팀P2P 방식으로 연결이 전환됩니다.
다만, 스팀P2P 방식은 연결이 불안정한 단점이 있습니다.
그래서 중급자 버전에서는 스팀P2P 방식보다는
포트포워딩을 통해 직접 연결하는 방식을 선호합니다.
공유기나 사설방화벽을 사용하는 경우에는
다만, 공유기 사용자의 경우에는 자신이 만든 데디케이티드 서버로 들어가기 위해서는
공유기가 없다면, 서버목록의 Online에서 바로 입장이 가능합니다.
4. modoverrides.lua에 모드 세부설정 넣기
초급자 버전에서 모드를 제대로 적용하였다면, 다음의 예시처럼 되어 있을 것입니다.
modoverrides.lua 파일을 메모장으로 열어 보았습니다.
return {
--Wormhole Marks
["workshop-362175979"] = { enabled = true },
--Health Info
["workshop-375859599"] = { enabled = true },
--Global Player Icons
["workshop-373991022"] = { enabled = true }
}
여기서 위 3개의 모드 중에 Health Info 모드는 모드 자체에 세부설정이 있는 모드입니다.
이 모드의 세부설정을 수정하고 싶다면 다음과 같이 하면 됩니다.
스팀 라이브러리 → 도구 → Don't Starve Together Dedicated Server 우클릭 → 속성 → 로컬 파일 탭 → 로컬 컨텐츠 폴더 보기 ... 를 클릭합니다.
로컬 컨텐츠 폴더가 나올 것입니다. 그 중 mods 폴더로 들어갑니다.
해당하는 모드를 찾은 다음에 modinfo.lua 파일을 메모장으로 열어 줍니다.
여기서는 Health Info 모드의 modinfo.lua 파일을 열어 보겠습니다.
configuration_options = 으로 시작하는 부분이 바로 모드의 세부설정이 됩니다.
configuration_options =
{
{
name = "show_type",
label = "Show Type",
options =
{
{description = "Value", data = 0},
{description = "Percentage", data = 1},
{description = "Both", data = 2},
},
default = 0,
},
{
name = "divider",
label = "Divier Type",
options =
{
{description = "100/100", data = 0},
{description = "-100/100-", data = 1},
{description = "[100/100]", data = 2},
{description = "(100/100)", data = 3},
{description = "{100/100}", data = 4},
{description = "<100/100>", data = 5},
},
default = 5,
}
}
위의 세부설정 중에 필요한 것은 name 과 data 입니다.
name 과 data 를 사용하여 modoverrides.lua 파일을 다시 만들어 보겠습니다.
return {
--Wormhole Marks
["workshop-362175979"] = { enabled = true },
--Health Info
["workshop-375859599"] = { enabled = true,
configuration_options =
{
show_type = 2,
divider = 4
}
},
--Global Player Icons
["workshop-373991022"] = { enabled = true }
}
위와 같이 세부설정을 주면 됩니다.
name = data,
name = data,
name = data
의 형식으로 만들어서 넣어주면 됩니다.
이때 name 에서 주의해야 할 사항은 따옴표(" ")는 넣지 않아야 합니다.
그리고 대소문자를 반드시 구분해야 합니다. 그대로 복사해서 쓰는 것이 편합니다.
data 에서는 아래의 default = 0 과 같이 나온 것을 참고해서 같은 형식으로 넣어야 합니다.
data 는 숫자 외에 문자의 형태를 가질 수도 있으며, 따옴표(" ")가 있다면 같이 넣어야 합니다.
즉, default = "true" 로 되어 있다면, name = "true" 의 형식으로 넣어야 합니다.
다 만든 modoverrides.lua 파일은 지상서버뿐만 아니라, 동굴서버에도 동일한 것으로 넣어야 합니다.
항상 그러하듯 반점(,)과 괄호를 빼먹거나 더 넣거나 그러면 모드가 아예 적용되지 않습니다.
더 복잡한 예시는 다음과 같습니다. 다음은 심플 프로텍션 모드의 세부설정의 예시입니다.
--Simple Protection
["workshop-360823660"] = { enabled = false,
configuration_options =
{
--Starting day
starting_day = 10,
--Minimum days (1 day = players don't need to wait to use
everything, 2 days = players need to wait 1 day to use something.. etc.)
min_days = 3,
--Container protection (chests, chester, icebox..)
container_protection = "false",
--Crock pot protection (use and harvest)
stewer_protection = "false",
--Backpack protection
backpack_protection = "false",
--Ghost break/light on fire/other stuff protection
ghost_protection = "true",
--Willow fire starting protection
willow_love = "false",
--Fireproof bushes
bushes_protection = "false",
--Undigable bushes (for fresh players)
bushes_dig_protection = "false",
--Disable fire spread
fire_spread_protection = "false"
}
},
모드와 관련하여 자세한 내용은 Espion 님이 작성한
http://cafe.naver.com/babmukda/83439 를 참고하기 바랍니다.
5. 케이브(동굴)서버의 worldgenoverride.lua 파일 수정하기
초급자 버전에서 제대로 따라하였다면, 다음의 예시처럼 되어 있을 것입니다.
worldgenoverride.lua 파일을 메모장으로 열어 보았습니다.
return { override_enabled = true, preset = "DST_CAVE" }
이제 마스터(지상)서버처럼 케이브(동굴)서버도 세부설정을 할 수 있습니다.
다음과 같이 수정하면 됩니다.
return { override_enabled = true,
preset = "DST_CAVE", --options are "DST_CAVE", "DST_CAVE_PLUS"
overrides = {
--MISC
world_size="default", --options are "small", "medium", "default", "huge"
branching="default", --options are "never", "least", "default", "most"
loop="default", --options are "never", "default", "always"
weather="default", --options are "never", "rare", "default", "often", "always"
earthquakes="default", --options are "never", "rare", "default", "often", "always"
touchstone="default", --options are "never", "rare", "default", "often", "always"
regrowth="default", --options are "veryslow", "slow", "default", "fast", "veryfast"
boons="default", --options are "never", "rare", "default", "often", "always"
cavelight="default", --options are "veryslow", "slow", "default", "fast", "veryfast"
prefabswaps_start="default", --options are "classic", "default", "highly random"
prefabswaps="default", --options are "default", "none", "few", "normal", "many", "max"
--RESOURCES --options are "never", "rare", "default", "often", "always"
grass="default",
sapling="default",
marshbush="default",
reeds="default",
trees="default",
flint="default",
rock="default",
mushtree="rare",
fern="default",
flower_cave="default",
wormlights="default",
--UNPREPARED --options are "never", "rare", "default", "often", "always"
berrybush="default",
mushroom="default",
banana="default",
lichen="default",
--ANIMALS --options are "never", "rare", "default", "often", "always"
cave_ponds="default",
slurper="default",
bunnymen="default",
slurtles="default",
rocky="default",
monkey="default",
--MONSTERS --options are "never", "rare", "default", "often", "always"
cave_spiders="default",
tentacles="default",
chess="default",
liefs="default",
bats="default",
fissure="default",
worms="default"
}
}
지상서버의 worldgenoverride.lua 파일과는 내용이 다르니 주의하기 바랍니다.
그리고 동굴에 존재하지 않는 설정을 넣는 경우에 심각한 오류가 발생할 수 있습니다.
동굴서버에서만 사용 가능한 worldgenoverride.lua 파일을 첨부파일로 올립니다.
6. 세이브 슬롯 여러 개 만들기
문서 - Klei - DedicatedServer 의 경로로 이동합니다.
Cluster_1 폴더를 복사-붙여넣기하여 복사본을 만들어 줍니다.
복사본의 이름을 Cluster_2 로 바꾸어 줍니다.
문서 - Klei - DedicatedServer - Cluster_2 - Master 의 경로에 있는
save 폴더를 삭제합니다.
아울러,
문서 - Klei - DedicatedServer - Cluster_2 - Caves 의 경로에 있는
save 폴더도 삭제합니다.
바로가기를 복사-붙여넣기하여 복사본을 만들어 줍니다.
(1) 복사본의 이름을 Cluster_2 Master 와 Cluster_2 Caves 로 바꾸어 줍니다.
(2) 이름을 바꾼 바로가기를 우클릭하여 대상(T)에 나오는 것을 다음과 같이 수정합니다.
Cluster_2 Master에서는
-backup_logs -conf_dir DedicatedServer -cluster Cluster_1 -shard Master
를
-backup_logs -conf_dir DedicatedServer -cluster Cluster_2 -shard Master
로 수정합니다.
Cluster_2 Caves에서는
-backup_logs -conf_dir DedicatedServer -cluster Cluster_1 -shard Caves
를
-backup_logs -conf_dir DedicatedServer -cluster Cluster_2 -shard Caves
로 수정합니다.
즉, Cluster_ 다음에 오는 숫자만 바꾸면 됩니다.
Master와 Caves를 헷갈리지 않고 만들어야 합니다.
(3) 문서 - Klei - DedicatedServer - Cluster_2 의 경로에 있는
cluster.ini 파일을 메모장으로 열어 안에 있는 내용을
자신이 원하는 대로 알맞게 수정하면 됩니다.
아울러, Cluster_2 - Master 와 Caves 폴더 안에 있는
worldgenoverride.lua 와 modoverrides.lua 파일도
자신이 원하는 대로 알맞게 수정하면 됩니다.
(4) 만약, 문서 - Klei - DedicatedServer - Cluster_1 의 경로에
adminlist.txt 와 blocklist.txt 파일이 존재한다면,
문서 - Klei - DedicatedServer - Cluster_2 의 경로에 있을
adminlist.txt 와 blocklist.txt 파일과 항상 동기화해야 합니다.
(5) 더 많은 세이브 슬롯을 원한다면
위의 과정을 Cluster_3, Cluster_4, Cluster_5 등에
대하여 똑같은 과정으로 만들면 됩니다.
7. [고급자 버전] 2대의 PC에서 지상과 동굴서버를 각각 열어 서로 연결하기
중급자 버전까지 데디케이티드 서버에 대한 이해가 완벽한 상태에서 진행해야 합니다.
따라서 여기서부터는 이미 다 안다는 가정 하에 많은 내용을 생략하겠습니다.
2대의 PC에서 각각의 서버를 열어 서로 연결하기 위해서는 다음의 준비물이 필요합니다.
1. 마스터(지상)서버를 여는 PC (이하 마스터PC)
2. 케이브(동굴)서버를 여는 PC (이하 케이브PC)
3. 마스터PC가 공유기나 사설방화벽을 사용하는 경우에는 10889 UDP 포트에 대하여 포트포워딩
마스터PC는 2-1번의 cluster.ini에서 bind_ip = 0.0.0.0 으로 변경합니다.
케이브PC는 2-1번의 cluster.ini에서 master_ip = 마스터PC의 실제 외부IP 로 변경합니다.
반드시 2-1번의 cluster.ini에서 cluster_key = 를 서로 같은 값으로 설정합니다.
지상PC의 실제 외부IP는 다음 사이트를 이용하여 알아내면 됩니다.
http://ipip.kr/ http://whatsmyuseragent.com
그 외에 지상서버와 동굴서버 간에 동일해야 하는 부분과 달라야 하는 부분을 명확하게 한 다음에 각각의 바로가기를 통해 서버를 열면 됩니다.
2015년 11월 20일에 테스트한 부분입니다. ws77 님의 동굴서버와의 연결에 성공하였습니다.
불법복사는 지적재산을 훔치는 범죄행위입니다.
이 게시물은 다른 카페나 블로그 등 외부로 퍼가는 것을 허용하지 않습니다.
저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 행위는
이용약관 및 관련법률에 의해 처벌을 받을 수 있습니다.
COPYRIGHT ⓒ 2015-2017 바람구름(la Nube) ALL RIGHTS RESERVED.
'Games > 돈스타브 투게더' 카테고리의 다른 글
데디케이티드 서버(Dedicated Server) 만들기 - 초급자 버전 (34) | 2017.07.17 |
---|---|
[구버전] 데디케이티드 서버(Dedicated Server) 만들기 - 리눅스(Linux) 편 (0) | 2017.07.03 |
[구버전] 데디케이티드 서버(Dedicated Server) 만들기 - 초급자 버전 (0) | 2017.07.03 |
[구버전] 데디케이티드 서버(Dedicated Server) 만들기 - 2016.02.12 (0) | 2017.07.03 |
[구버전] 데디케이티드 서버(Dedicated Server) 만들기 - 리눅스(Linux) 편 (0) | 2017.07.03 |