• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
후기

마인크래프트 서버 구축 현황 - 기반다지기

빨간물약 빨간물약 864

3

9

image.png.jpg

 

위에 글들을 보셨으면 알겠지만 요즘 마크 서버를 만들어 보고 있습니다

 

일단 시놀 도커에 올리고 있는데요

 

나스 게시판에 적어야 하나 싶다가도 시놀 부분은 별로 없어서 서버구축 게시판에 적어야 하나 싶기도 해서

이곳에 작성 합니다

 

본론으로 들어가기 전에 그냥 모드 적용해서

싱글이나 랜게임을 하실 생각이면 모드팩을 설치하는 게 편합니다

서버에 모드팩 적용하고 모드팩용 클라이언트 다운받아서 실행하면 끝이거든요

그런데 모드 통파일에 내가 만들고 싶은 서버에

필요한 모드도 있을 거고 필요 없는 모드도 있을건데

일일이 추가하고 수정하고 제거하고 복잡하죠

그냥 즐겨보고 싶다 하면 모드팩 서버

원하는대로 만들어 보고 싶다 하면 하나하나 추가해서

직접 만들어 보는 게 좋다고 생각합니다

 

우선 저는 만들어 보고 싶은 서버가 있고 이렇게 작동 했으면 좋겠다 싶은 기능들이 있어서

모드팩이 아닌 서버를 만들어 보려고 합니다

 

우선 서버를 선택 해야하는데

 

플러그인 기반의 버킷 서버와

모드 기반의 포지,패브릭 서버 중에 선택을 해야 합니다

 

간단하게 이야기 하자면 플러그인은 약간 순정틱하게 서버를 꾸밀 수 있고

모드는 완전 뜯어고쳐서 서버를 구성할 수 있습니다

 

이건 iris라는 플러그인 입니다

맵에 90여가지의 바이옴(생태계?)을 생성할 수 있는 플러그인 입니다

기본 적인 사막 숲 이런 것 빼고도 디테일하게 세콰이어 숲이나 열대 우림, 버섯 군락지 등등

오리지널 블럭을 이용해서 만든 바이옴을 생성해 주는데 오리지널 블럭이기 때문에 별다른 모드가 필요없고

밸런스를 해치지 않으면서 좀 더 풍성한 즐길거리 추가가 가능해지죠 

 

이 외에도 플러그인들은 다 비슷합니다 순정 바닐라를 기반으로 크게 변하지 않는 선에서 기능을 추가합니다

 

 

이건 픽셀몬이라는 모드 입니다

 

마인크래프트 바닐라에서는 볼 수 없는 형태의 캐릭들이 보이죠?

사각사각한 동물들만 있는 마크에서 저런 픽셀몬을 만들기 위해서는 모드로 갈아 엎어야 가능 합니다

 

대충 플러그인 서버와 모드 서버의 차이가 이런 식이다 라고 생각을 하시면 될 겁니다

순정을 기반으로 그 안에서 이런저런 기능들을 추가하고 구성하는 건 플러그인으로도 충분 하고요

 

새로운 블럭이나 제작 엔진 같은 것들

예를 들어 반도체 설비를 마크 안에 넣고 싶다 이러면 모드를 이용해야 합니다

 

모드팩 중에는 ATM9나 BMC4, RLCRAFT, 픽셀몬모드팩이 인기가 많은 거 같더라고요

싱글도 가능하니 서버 구성 전에 싱글로 체험을 해보시는 것도 나쁘지 않을 거 같습니다

 

만들어서 실행을 해보시면 정말 많은 모드가 적용 된 모드팩인데

순정에서는 볼 수 없었던 수많은 템들이 떨어지더라고요

 

 

(ATM9 모드 소개 영상 - 뭔가 굉장히 많습니다....)

 

이건 이런 트리에서 쓰고 저건 저런 트리에서 쓰는데

이 트리 가려면 후반부에나 가능하고 저 트리는 중반에 가능하고 뭐 만들려면 저 트리 가야하고...

 

제 스타일은 아니더라고요

 

너무 많은 모드가 설치 돼있어서 자잘한 템들이 너무 많이 나오는데

순정은 다이아몬드만 있으면 최고인데

무슨 알루미늄에 들어보지도 못한 광물들과 조각들과 부재료들...

 

그래서 저는 플러그인 서버로 정했습니다

 

 

image.png.jpg

우선 목표는 띵타이쿤 같은 서버를 목표로 잡습니다

 

모험 + 경제 서버죠

 

경제 서버는 경제 플러그인 적용한 서버라는 뜻인데 화폐가 존재하고 뭔가 사고팔고 할 수 있는 서버 입니다

순정 마크에는 화폐 개념이 없죠

 

모험은 뭐 아시겠지만 이런저런 탐험하고 보물상자도 찾고 뭐 그런 느낌?

 

직업도 있고 전직도 하고 도감 작업도 하는 서버인데 완전 똑같지는 않더라도 비슷한 느낌을 목표로 잡습니다

(띵타이쿤의 더 자세한 정보는 양띵/장기 콘텐츠/띵타이쿤 - 나무위키 (namu.wiki) 참고하세요)

 

 

그래서 이 서버는 어떻게 만들었나? 찾아보다가

image.png.jpg

나무위키에서 이런 내용을 발견 합니다

 

아 서버는 플러그인 기반의 페이퍼를 사용하고 

클라인트에서 작동 되는 모드들을 클라이언트에만 적용을 시킨 거 같다고 하는 군요

 

우선 클라이언트에 모드를 적용해 봅니다 

 

모드를 적용하기 위해서는 포지나 패브릭 인스톨러를 이용해야 합니다만 패브릭을 추천 합니다

Installation for Minecraft Launcher | Fabric (fabricmc.net)

 

패브릭 인스톨러는 1.20.1 버전을 받아서 기본 경로에 설치를 해줍니다

 

image.png.jpg

설치가 되면 이런 식의 패브릭 로더 프로필이 생기는데요

설치 설정으로 들어가셔서 

 

image.png.jpg

게임 디렉터리를 수정 해줍니다

 

기본 디렉터리는 순정이랑 함께 쓰기 때문에 모드나 플러그인 설치하면 지저분해져서

순정이나 다른 로더 실행하는데 문제가 있더라고요

 

디렉터리 변경 하면서 기존 경로에 마크 파일 싹 복사해서 새로운 경로에 넣어주시면 됩니다

 

그러면 이제 패브릭 모드 전용 클라가 생긴 거죠

 

나무위키에서 봤던 모드들을 검색 후 설치 해줍니다 

 

image.png.jpg

패브릭 모드 106개가 설치가 됐네요

 

image.png.jpg

모드도 이것저것 잘 적용 됐습니다

 

저 같은 경우 쉐이더를 꺼도 횃불이 빛나게 하려고 다이나믹라이트 모드를 추가

한글 입력 잘 되게 캬라멜챗 모드 추가해서 106개 입니다

아마 설치할 수 있는 거 다 설치하면 한 두개 차이가 날 겁니다

자체 모드라고 하는 도감이나 직업 경제 관련 모드는 구할 수가 없죠 플러그인일 수도 있고요

 

image.png.jpg

싱글 접속 해보니 미니맵과 심플 보이스챗 아이콘이 보이네요

 

image.png.jpg

월드맵도 잘 적용 되고요

 

image.png.jpg

참고로 미니맵이나 월드맵은 JourneyMap 모드의 기능인데

설정에서 폰트크기나 아이콘 크기등등을 수정해 줘야 위의 스샷 처럼 나옵니다

기본 설정 된 폰트가 너무 작더라고요

뭐 이제 클라쪽은 설정이 끝났습니다

 

그런데 어? 그러면 다른 사람과 같이 하려면 그 사람도 이 작업을 해줘야 하나? 라고 생각하실 수 있겠습니다만

커스텀 클라이언트 제작 방법이 있더라고요

 

다만 아직 서버 제작이 완료가 안 됐으니 그냥 이런 것도 있구나 하고 넘어갔습니다

살짝 봤는데 복잡해 보이더라고요....

 

그럼 이제 서버를 올려야겠죠 

 

이전 게시글에서 적었던 것처럼

서버 올리는 건 간단합니다

version: '3.8'
services:
  mc:
    image: itzg/minecraft-server
    tty: true
    stdin_open: true
    environment:
      EULA: true
      TYPE: PAPER
      VERSION: 1.20.1 #latest
      ONLINE_MODE: "TRUE"
      UID: 1026
      GID: 100
      TZ: Asia/Seoul
      #ENABLE_JMX: true
      #JMX_HOST: 
      MOTD: 환영합니다
      DIFFICULTY: normal
      ICON: /downloads/icon/icon.png
      OVERRIDE_ICON: TRUE
      MAX_PLAYERS: 10
      SERVER_NAME: TesT
      STOP_SERVER_ANNOUNCE_DELAY: 20
      PROXY: true
      MEMORY: 4G
    ports:
      - "25565:25565"
    volumes:
      - /volume1/docker/minecraft_plugin_paper/data:/data
      - /volume1/docker/minecraft_plugin_paper/downloads:/downloads

#volumes:
  #mc-data: {}   

제가 쓰던 설정이긴 한데 시놀로지 도커 컨테이너에서 만들었고

 

이것저것 테스트 하느라고 지저분 합니다

 

아이콘이 필요 없으신 분들은 icon 관련 설정 지워도 되고 downloads 폴더 매핑 안해도 됩니다

아이콘을 저 경로에 넣어줘야 하는데 downloads 폴더는 모드 서버 만들 때 쓰던 폴더 거든요...

version: '3.8'
services:
  mc:
    image: itzg/minecraft-server
    container_name: paper
    environment:
      EULA: "true"
      TYPE: PAPER
      VIEW_DISTANCE: 10
      MEMORY: 2G
    ports:
      - "25565:25565"
    volumes:
      - mc-paper:/data
    restart: unless-stopped
volumes:
  mc-paper: {}    

itzg/docker-minecraft-server: Docker image that provides a Minecraft Server that will automatically download selected version at startup (github.com)

깃허브 예제는 이런 식입니다

 

Paper - Minecraft Server on Docker (Java Edition) (docker-minecraft-server.readthedocs.io)

cli 설치는 여기 참고하셔도 됩니다

 

이제 빌드 해보시면 큰 문제 없이 설치가 됐을 겁니다

 

하지만 지금은 순정 상태죠 

아무런 플러그인이 설치가 안 됐으니 순정과 같습니다

여기서 플러그인 들을 추가하기 전에 선택을 해야하는 부분이 있습니다

 

현재는 서버가 하나만 올라갔죠

 

그러니까 단일 서버 입니다

 

뭐 이렇게 사용을 해도 전혀 문제는 없습니다

 

그런데 서버 구상을 어떤 식으로 하느냐에 따라 문제가 좀 될 수도 있습니다

 

 

제가 만들고 싶은 서버는 우선 유저가 접속하면

  • 로비에 접속 합니다
  • 여기서 이런저런 정보를 얻거나 튜토리얼을 한다거나 기본 장비를 지급 받는 다거나
  • npc와 거래를 한다거나하는 로비 서버가 있고
  • 로비 서버에서 npc든 GUI든 명령어든 치고서 야생 서버로 이동을 해서 게임을 진행 합니다
  • 이 외에도 건설이 가능한 타운 서버를 따로 만들 수도 있고 로비+타운 서버로 쓸 수도 있겠죠

자 그럼 여기서 선택지가 두 개 입니다

 

image.png.jpg

Overview - Multiverse-Core - Bukkit Plugins - Projects - Bukkit

하나의 서버 즉 여기서는 컨테이너 하나에 서버를 올리고

멀티버스 플러그인 같은 플러그인을 적용해서

하나의 서버를 여러 월드로 구성할 수 있습니다

 

참고로 기본 순정에서 네더나 엔더 월드 같은 곳이 바로 월드 입니다

저렇게 격리 된 월드는 걸어서 날아서 땅을 파고 접근할 수 없고 포탈을 통해서만 넘어갈 수 있습니다

 

순정은 기본 월드, 월드_네더, 월드_엔더 이런 식의 세 개의 월드로 구성 돼있습니다

그러니까 접속하면 보이는 곳이 기본 월드고 여기에서 집짓고 몹잡고 땅파고 다 하는 거죠

 

멀티버스 플러그인을 사용한다면 월드를 추가가 가능합니다

 

기본 월드 하나가 아니라 로비, 타운, 야생 월드 등으로 나눌 수 있는 거죠

뿐만 아니라 아이디어에 따라 투기장이나 거래소 같은 것들을 따로 만들 수도 있을 거고요

 

기본 적으로 월드와 월드 사이에 이동은 포탈이나 워프 텔레포트등의 명령어를 통해 이동 합니다

뭐 npc나 포탈이나 귀환서나 이런 것들 만들어서 적용 가능 하겠죠

 

경제 플러그인을 설치 했다면 이런 이동 하는 기능에 비용을 부과할 수도 있습니다

텔포 명령어 한 번에 100원 포탈 클릭 한 번에 1000원 이런 식으로요

 

각 스킬 쿨타임 적용도 가능하고 아이디어만 있으면 이렇게저렇게 구상할 수 있더라고요

 

 

두 번째 방법은 서버를 여러개 만들어서 묶는 겁니다

image.png.jpg

BungeeCord | SpigotMC - High Performance Minecraft

 

번지코드라는 프록시 서버를 앞단에 두고 마크 서버를 뒤에 두는 방식입니다

마크 서버의 포트등이 노출 되지 않기 때문에 디도스에 유리하고 어쩌고 합니다

 

itzg/docker-bungeecord: A BungeeCord server to use in conjunction with itzg/minecraft-server (github.com)

다행스럽게도 도커 이미지가 있습니다

 

이 외에 벨로시티라는 프로그램도 있습니다만 좀 더 자료가 많은 번지코드를 선택 했습니다

벨로시티가 성능은 더 좋다고 하더라고요 

참고로 위 도커 이미지에서 벨로시티 타입도 적용 된다고 하니 취향 껏 고르시면 됩니다...

 

어쨌든 이 방법은 한 서버에 여러 월드를 만드는 방식이 아니고

여러 대의 서버를 묶는 방식 입니다

 

여기서는 컨테이너가 여러개가 되겠죠

실제로 하나의 물리적인 서버에 여러개의 컨테이너를 연결 하는 것 뿐만 아니라

여러 대의 물리적인 서버를 서로 묶는 것도 가능 합니다

 

그러니까 로비 서버는 시놀에 올리고 사양이 좀 필요한 야생 서버는 데스크탑 서버에 올리고 이런 게 가능 해지는 거죠

 

문제는 뭐냐 하면 컨테이너든 물리적인 서버든 서버가 두 개 이상으로 나눠 졌으니

데이터 동기화가 필요 합니다

 

주로 사용 되는 건 MySQL 이나 MariaDB, Redis 입니다 

 

네 서버 구성 난이도가 올라가죠

 

각종 플러그인 중에 번지코드 즉 멀티 서버를 지원하는 플러그인에는 DB설정 부분이 있습니다

그 부분을 다 만져 줘야 합니다...

 

그래도 분할 서버의 이점이 더 크기 때문에 멀티버스 플러그인 보다는 번지코드를 선택 하기로 합니다

 

번지 코드는 멀티버스 플러그인으로 가능 한것들은 다 구현 가능하고

번지코드 + 멀티버스 플러그인으로 사용도 가능하면서 각각의 서버를 점검이나 유지보수 하기도 편해지고

사양이 좀 떨어지면 그 월드 서버 컨테이너만 고사양 서버에서 돌리면 되고 

구성이 좀 복잡하다 뿐이지 이점이 더 많은 거 같아서 번지코드로 선택을 했습니다

 

그런데 그래서는 안되는 거였습니다....

 

난이도가.....

 

여하튼 글이 좀 길어 졌는데 

 

기반 다지기는 이정도면 될 거 같습니다 원하는 서버를 정했다면 이제 

순정 서버에 플러그인을 적용 하면서 세팅을 해야하는데 하...번지코드...

 

그 부분은 다음에 써야겠습니다 

 

참고로 플러그인은 자바로 제작이 되는데 잘 만든 플러그인은 유료로 판매를 하더라고요

그리고 특이한 게 유료 플러그인인데 소스는 공개를 해두고 컴파일해서 쓰는 건 무료인 플러그인 들이 꽤 있습니다

 

편하게 컴파일 된 플러그인은 유료, 직접 컴파일 하면 무료

 

대충 플러그인 하나 당 10유로 정도 하더라고요

컴파일 하는 거 어렵지 않으니 직접 하는 게 편합니다

 

단 유료 구매자에 관해서만 고객 지원을 해주는 개발자도 있으니 필요에 따라 선택 하면 될 거 같네요

 

마크 서버 만들어 보면서 생각보다 너무 복잡하고 디테일해서 놀라고 있습니다

워낙 오래된 게임이라 정보나 자료가 많기는 한데 구버전용인 경우가 많아서

수많은 시행착오를 겪으며 해보고 있는데 재미 있네요

 

이렇게 저렇게 천천히 하나씩 만들어 가봐야 할 거 같습니다

 

긴 글 읽으시느라 고생 하셨습니다.

신고공유스크랩
9
profile image
빨간물약 글쓴이 2024.02.23. 18:04
일회용아이
순정도 옛날에 비해 업데이트가 많이 되긴 했는데 모드나 플러그인 적용을 하면 완전 다른게임이 되더라고요
profile image 3등
달소 2024.02.23. 22:42
와,,, 미니맵과 월드맵이라,, 제가 아는 마크랑 아예 다른겜이군요..
젊머니 6일 전
와 감사합니다 저도 띵타이쿤 참고해서 서버 세팅하고있었는데 큰 도움 됐습니다 ㅎㅎ

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
가이드 Ubuntu 24.04 LTS Desktop 원격 접속 설정하기(SSH,RDP) 3 달소 1일 전18:33 82 +1
가이드 Ubuntu 24.04 LTS Server 설치해보기 달소 1일 전17:40 158 +2
잡담 Ubuntu 24 가 정식출시되었습니다~~ 8 달소 1일 전10:37 267 +2
3870 잡담
normal
kmw_ 21시간 전21:52 316 0
3869 후기
normal
ljr10 22시간 전21:18 93 0
3868 가이드
image
달소 1일 전18:09 84 0
3867 가이드
image
달소 1일 전19:06 58 0
3866 가이드
image
달소 1일 전18:33 82 +1
3865 잡담
image
달소 1일 전10:37 267 +2
3864 가이드
image
달소 1일 전17:40 158 +2
3863 질문
image
게르노 2일 전16:08 75 0
3862 질문
normal
까칠한나그네 1일 전15:44 80 0
3861
image
달소 23.07.09.16:17 761 0
3860 질문
normal
서버구축하자 3일 전13:09 425 0
3859 가이드
image
달소 2일 전07:24 281 0
3858 질문
normal
감자칩 2일 전18:56 203 0
3857 가이드
image
달소 1일 전22:54 86 0
3856 가이드
image
달소 1일 전23:10 83 +1
3855 질문
normal
웹서버구축관심 5일 전02:22 336 0
3854 잡담
image
달소 2일 전07:46 297 +1
3853
image
한군77 23.03.16.11:23 462 0
3852
image
달소 22.07.22.14:46 1511 +2
3851 정보
image
달소 2일 전08:21 173 +1