•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
파일:관련 문서 아이콘.svg   관련 문서: 마인크래프트/플러그인
,
,
,
,
,
파일:마인크래프트 로고.svg
[ 펼치기 · 접기 ]
기본 플레이
시스템
인게임
도움말
시리즈 및 매체
출시 에디션
파생 게임
미디어
유저 콘텐츠
창작 요소
멀티 콘텐츠
개발
기타
이야깃거리
관련 문서
1. 개요2. 서버 유형
2.1. LAN 서버2.2. Realms2.3. 바닐라 서버 프로그램2.4. 서버 구현 프로그램
3. 서버 만들기
3.1. 윈도우 환경
3.1.1. 자바 설치3.1.2. 구동기 만들기3.1.3. 방화벽 해제
3.1.3.1. 포트 포워드
3.1.3.1.1. 포트 포워드 문제 해결
3.2. 리눅스 환경
3.2.1. 자바 설치
3.3. 도메인 설정(공통)
4. 개인 운영5. 마인크래프트 서버 호스팅 업체6. 서버 설정7. 서버 구현물 목록
7.1. 바닐라 서버7.2. Bukkit API
7.2.1. Craftbukkit7.2.2. Spigot7.2.3. Paper7.2.4. Purpur7.2.5. Airplane(AirplanePurpur)7.2.6. NachoSpigot
7.3. 버킷 + 모드 서버
7.3.1. Cauldron (MCPC+)7.3.2. Thermos7.3.3. SpongeForge7.3.4. CatServer7.3.5. Atom7.3.6. Magma7.3.7. Arclight7.3.8. Mohist7.3.9. Cardboard
7.4. 자체 API 기반
7.4.1. Forge7.4.2. Fabric7.4.3. SpongeVanilla7.4.4. Minestom7.4.5. Cuberite7.4.6. Glowstone
7.5. 개발 중단된 프로젝트
7.5.1. TacoSpigot7.5.2. Kettle7.5.3. Project Rainbow7.5.4. Tuinity7.5.5. Yatopia
8. 사건 사고
8.1. Craftbukkit DMCA 테이크 다운
8.1.1. 발단8.1.2. 전개8.1.3. 결말

1. 개요[편집]

마인크래프트 멀티플레이 서버를 구축하는 방법은 4가지가 있다: LAN 서버, Realms, 바닐라 서버, 모드/플러그인 서버

참고로 마인크래프트가 기존 PC용 자바 에디션과, 콘솔/모바일 크로스 플랫폼을 지원하는 베드락 에디션으로 분리되어, 자신의 플랫폼에 알맞은 서버 구동기를 선택해야 한다.

2. 서버 유형[편집]

2.1. LAN 서버[편집]

싱글플레이 세계에서 게임설정에 들어가면 LAN 서버를 열 수 있다.
같은 근거리 통신망에 연결되어 있는 유저끼리 접속할 수 있다.
서버를 구동하는 PC와 같은 와이파이 또는 회선에 접속된 PC에서만 접속할 수 있다는 말이다.[1][2]

LAN 서버에서 플러그인을 사용할 수 없다. 모드는 포지나 패브릭을 설치하면 이용 가능하며, 플러그인과 유사한 기능을 하는 서버측(Server-Side) 모드를 대체재로 사용할 수 있다.

2.2. Realms[편집]

렐름 서버 또한 자바 에디션용 렐름과 베드락 에디션용 렐름이 따로있다.

2.3. 바닐라 서버 프로그램[편집]

프로그램이 실행되는 동안 서버가 인터넷 전역으로 공개되어 열린다. 같은 와이파이에 연결될 필요가 없다는 말이다.[3] 대부분의 서버 구현 프로그램들은 이 바닐라 서버를 기반으로 제작되었다.

2.4. 서버 구현 프로그램[편집]

구현물 또는 구현 프로그램 (Implementation[4]) 을 통해 서버를 구동할 수 있다. 방법은 다음 문단에서 설명한다.

자바 에디션에서는 일반적으로 구현 프로그램은 Java 언어로 작성되었고, jar 파일[5]로 구성된다. 바닐라 서버와 달리 플러그인 API를 내장하고 있어 플러그인을 추가할 수 있다. 구현물 중에서 포지와 연계되어 있는 SpongeForge를 사용한다면 플러그인과 모드를 동시에 적용할 수도 있다.
국내 서버들은 Bukkit 기반의 구현 프로그램으로 CraftBukkit, Spigot, PaperMC를 주로 사용하는 편이다. 이 중 Spigot이 가장 유명하고 [요즘은] 플러그인도 방대하지만 약간의 저작권 문제를 안고 있어, 사용자가 직접 컴파일해서 써야 한다. PaperMC는 코드를 완전히 새로 써서 저작권 문제로부터 자유롭지만 Spigot 플러그인들과 호환성이 다소 떨어질 수 있으며, 이로 인해 버그가 생길 수 있다.

베드락 에디션에서는 일반적으로 구현 프로그램은 PHP 언어로 작성되었고, phar 파일[7]로 구성된다. 바닐라 서버와 달리 플러그인 API를 내장하고 있어 플러그인을 추가할 수 있다.
국내 서버들은 PocketMine-MP 기반의 구현 프로그램을 사용하며, PocketMine-MP 기반의 수정본 구동기[8]Altay, Genisys 등이 있다. 국내 서버는 안정성, 업데이트 속도 등의 이유로 현재는 PocketMine-MP를 선호하는 편이다.

다만 자바에디션에서 비공식 소프트웨어가 공식 소프트웨어인 바닐라보다 훨씬 나은 성능을 보여주는 것에 비해서 베드락 에디션은 그 반대의 상황이다. 자신이 플러그인을 사용하지 않는다면 공식 소프트웨어인 바닐라를 사용하는 것을 강력하게 추천한다.

3. 서버 만들기[편집]

대다수의 서버 구현물은 Java로 작성된 프로그램이다. PE 포맷이 아닌 Jar 파일이기 때문에 일반적인 실행 방법[9]으로 구동할 수 있지만 GUI 가 뜨지 않아 서버 실행 상황,버그같은 오류를 확인할수 없고 자바를 통해 서버 구현물을 실행, 서버를 구동시킬 수 있다.

정 컴퓨터를 마크 서버로 만들기 싫으면 https://aternos.org/server/ 를 이용해 무료로 만들자[10]

3.1. 윈도우 환경[편집]

당신이 지금 윈도우 운영체제를 사용하고 있다면 아래 방법을 따르도록 하자.

3.1.1. 자바 설치[편집]

서버를 실행하려면 JRE(Java Runtime environment, 자바 실행 환경)[11]가 설치되어 있어야 한다.

자바가 설치되어 있는지 확인하려면:
1) 실행 창(윈도우 키+R)에 cmd 를 입력하고 Enter를 누른다.
2) java -version 을 입력한다.
3) java version "..." 메세지와 함께 자바 버전이 출력되면 잘 설치되어 있는 것이다.

만약 "java -version 은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다." 라는
문구가 뜬다면 자바가 설치되어 있지 않거나, 시스템 환경변수(PATH)에 자바 경로가 설정되지 않은 것이다.
  • 자바를 설치하려면 자바 홈페이지로. [12][13]
  • 일반적으로 Java를 설치하면 대부분은 환경 변수가 설정되지만, 일부 환경 변수가 설정되지 않는 경우도 있다.[14]
  • 자바 환경변수를 설정하려면,
  1. 윈도우키+Pause 키를 눌러 "시스템"에 들어간다. 만약 Pause키가 없는 경우, 윈도우키+R키를 눌러 control(제어판)을 실행, "제어판시스템 및 보안시스템"에 들어가준다.
  2. 좌측의 "고급 시스템 설정"에 들어간다.
  3. "고급" 탭의 "환경 변수" 버튼을 누른다.
  4. "시스템 변수" 리스트에서 "Path" 항목을 선택하고 "편집" 버튼을 누른다.
  5. "새로 만들기" 버튼을 눌러 자바가 설치되어 있는 경로(폴더)를 입력한다. (대부분 "%programfiles%\Java\jre1.8.0_231\bin\"에 설치되어 있다.)
  6. "확인" 버튼을 누른다.
  7. 윈도우키+R 키를 눌러 #cmd,#fbccfe /k java를 입력하고 java 관련 명령어가 뜨면("java 은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다." 라는 문구가 더이상 뜨지 않는다면) 성공이다.

환경변수 관련 설정 방법은 오라클 공식 문서에 자세히 나와 있다.

3.1.2. 구동기 만들기[편집]

구동기는 서버 구현 프로그램을 실행하는 명령어를 실행 가능한 파일배치파일 파일로 만드는 것이다.
아래 설명과 같이 구동기를 만든 후 더블 클릭으로 구동기 파일을 실행하면 서버가 켜진다.

1) 폴더[15] 하나를 만든다.
2) 폴더 안에 들어가서 미리 받아 놓은 서버 구현물(Spigot이나 Paper 등) 파일을 옮겨 넣는다.[16]
3) 폴더의 빈 화면에 우클릭 > 새로 만들기 > 텍스트 문서
4) 파일 이름을 start[17]로 정하고 메모장으로 열어서 아래와 같이 작성한다. 만약 뒤에 확장자 ".txt"가 붙은 경우 txt 를 bat 이나 cmd 로 변경해주자.
5) 파일을 연다. bat 으로 확장자를 변경한 경우 우클릭>편집을 누르자.
@echo off
java -Xms(서버가 구동될 메모리) -Xmx(서버가 구동될 메모리)[18] -jar <서버 파일>.jar
pause

만약 서버 파일을 계속 다시 시작하고 싶지 않다면 @echo off 아래에
cls
:start
를 추가하고 pause 아래에
goto start
를 추가하자.

주의: <서버 파일>.jar 부분을 방금 준비한 서버 구현물의 파일 이름으로 바꾸도록 한다.[19] 예) spigot-latest.jar

작성한 구동기 스크립트에 대한 설명은 아래 표와 같다. 필요하면 기호에 맞게 스크립트를 바꿔 써도 좋다.
명령문 (매개 변수)
명령문 설명
@echo off
프롬프트 메세지에 "C:\Windows\System32 >" 처럼 파일 경로가 출력되는 것을 끈다.
java -jar server.jar
"server.jar" 라는 이름의 서버 구현물 파일을 Java로 실행한다.[20]
-Xmx1024M -Xms256M
서버를 실행하는 데 할당시킬 메모리 크기[21]를 256MB 이상 1024MB 이하로 잡는다.
pause
일괄적인 처리를 보류한다. 서버 종료시 화면이 갑자기 꺼지지 않아 유용하다.
cls
콘솔에서 출력된 모든 텍스트를 제거한다.
goto start
:start 부터 명령을 다시 시작한다.

6) 메모장을 저장한 후 닫는다.
7) start.txt 텍스트 파일 이름을 start.bat [22][23]으로 바꾼 뒤 실행한다. 단, 위에서 파일 확장자를 bat으로 이미 변경하고 편집했을 경우 이 단계는 넘겨도 된다.
  • 텍스트 파일 이름을 바꿔도 여전히 텍스트로 열린다면 파일 탐색기가 확장자명을 숨기고 있기 때문이다. [24]

8)폴더에 eula.txt를 만들어준다. 그리고 eula.txt를 메모장으로 열어 주고 eula=true로 작성한다.(이것을 저장하면 모장의 eula에 동의한다는 뜻이며, 자신이 서버를 운영하며 이 약관에 위반되는 행위를 할 경우 모장에게 제재를 받을 수 있다.)
9).bat또는 .cmd 파일을 열어 준다. 그리고 잠시 기다리면 콘솔에 텍스트가 표시되며 world, server.properties 같은 폴더나 파일이 생성된다.
  • 폴더나 파일이 생성 되지 않는다변 .bat나.cmd 파일을 다시 메모장으로 열어 준 다음 버킷 파일 이름과 메모장에 쓴 버킷 파일 이름이 일치한지 확인하면 된다.
  • 서버는 JVM(자바 가상 머신)에서 돌아가기 때문에, 여기를 참고하여 가비지 컬렉션 관련 인수를 추가하여 서버를 최적화 하면 좋다.
  • 가비지 컬렉션중 가장 유명한 컬렉션은 Aikar Flags이다.[25]
  • Invalid maximum heap size: -Xmx(자신이 지정한 크기)G The specified size exceeds the maximum representable size. 라고 뜬다면 자바가 32비트라서 일어나는 오류다. 자바 사이트에서 64비트 버젼을 받아주면 해결된다.

3.1.3. 방화벽 해제[편집]

위의 방법대로 따라한다면 서버는 정상적으로 구동될테지만 본인 밖에 접속을 할 수 없을 것이다. 이를 해결하기 위해서는 방화벽을 해제해야 한다. 방화벽은 윈도우의 방화벽과 공유기의 방화벽이 존재하며, 윈도우의 방화벽을 열지 않으면 공유기에 방화벽을 열었다고 해도 멀티가 불가능 하나 윈도우의 방화벽을 열었다면 같은 공유기 내에서는 멀티가 가능하다. 포트 포워드나 DMZ로 공유기의 포트를 열 경우 보안이 취약해지기 때문에 장거리 멀티가 아니라면 윈도우 방화벽만 해제해 주자.[26]

1.윈도우 키 + R을 입력하고 나타나는 실행 창에 control을 입력한다. 또는 제어판을 검색하여 연다.
2. 시스템 및 보안 → Windows Defender 방화벽 → 왼쪽에 위치한 고급 설정 클릭
3. 아웃바운드는 기본 설정이 접속 허용이니 건드릴 필요가 없고 인바운드 규칙을 선택한다.[27]
4. 오른쪽에 새규칙포트(O)를 선택[28], TCP(T)특정 로컬 포트(S)[29] 선택하고 포트 입력 칸에 자신이 설정한 서버의 포트를 입력한다.(포트를 따로 설정하지 않았다면 기본 포트인 25565를 입력하면 되며 베드락 에디션은 19132).[30]
5. 연결 허용(A)를 선택하고, 도매인(D), 개인(P), 공용(U) 모두 선택한다.
6. 이름은 편한대로 지정해주고 설명은 선택 옵션이다.
3.1.3.1. 포트 포워드[편집]
자신의 컴퓨터가 Wi-Fi 에 연결되지 않고 LAN 선이 모뎀에 연결된 경우 패스. 장거리를 하고 싶다면 위에서 연 포트를 공유기에서도 열어주어야 한다. 모든 공유기 공통으로 공유기 페이지에 로그인해야되며 방법을 모르는 경우 공유기의 사용설명서를 읽어보면 된다. 공유기 제조사별로 방법이 천차 만별이니 문서에 모든 경우를 다 적기에는 어려움이 있다. 열심히 공유기의 포트 포워드나 포트 포워딩항목을 찾아보자 다만 Iptime같은 사재 공유기 말고 통신사의 공유기라면 내부 포트를 제대로 지정할 수 없는 경우가 있는데[31] 통신사에 연락하거나 DMZ, S-DMZ, Twin-IP를 사용하거나 내부 포트에 맞춰주자. 모뎀을 사용하거나 이중 공유기이면 모든 모뎀, 공유기를 똑같이 설정해주어야 한다.[32] 공유기에서 컴퓨터로 할당되는 IP를 고정하는 것을 추천[33], 유동 IP이기 때문에 컴퓨터로 할당되는 IP주소가 바뀐다면 다시 설정해야 되기 때문이다. 포트 포워딩 테스트
3.1.3.1.1. 포트 포워드 문제 해결[편집]
간혹 공유기로 구축된 내부 네트워크와 서버 프로그램 자체에서 설정한 내부 네트워크 간 IP 설정이 달라[34] 127.0.0.1과 같은 루프백 IP로는 접근이 되는데, 외부에서 서버 접근이 안 되는 경우가 있다. 방화벽 설정, 공유기 포트포워드 설정 등등을 다 했는데 안 되면 환장할 노릇.
그런 경우에는 최초 서버 구축 시에 "사용자의 내부 IP *.*.*.*으(로) 포트포워드가 필요할 수 있습니다"라는 문구가 뜨는데
관리자 권한으로 cmd 실행
netsh interface portproxy add v4tov4 listenport=[설정 포트] listenaddress=[내부 네트워크 IP] connectport=[설정 포트] connectaddress=[컴퓨터의 내부 IP 주소]
와 같이 컴퓨터 내부적으로 한 번 더 포트포워드를 해줘야 정상적으로 포트포워드가 작동해 외부에서 내부 서버로 접근이 가능해진다. VMware 같은 가상 머신을 이용하는 컴퓨터의 경우 발생하는 문제.

3.2. 리눅스 환경[편집]

3.2.1. 자바 설치[편집]

자바 설치법은 배포판의 종류에 따라 다르다.
자바 홈페이지에서 바이너리 압축 파일을 내려받거나 운영체제의 패키지 매니저[35]를 통해 open-jdk 또는 oracle-jdk를 내려받는다.
데비안 계열은 apt-get install open-jdk라고 하면 된다.
권한이 부족하면 앞에 sudo를 붙이자.

3.3. 도메인 설정(공통)[편집]

자신이 어떤 운영체제를 사용해도 도메인 설정을 하는 방법은 동일하다. 도메인이란 간단히 말해서 숫자로 된 아이피주소를 문자열로 바꿔주는 서비스인데 일단 아이피가 바로 노출되는 것 보단 보안에 효과가 있으며, 사용자들이 알기 쉬워 접근성을 올려 줄 수 있고, 서버의 특성을 나타내는 수단이다.

노하마치, 장거리 멀티등으로 많은 블로그에서 홍보하는데 하마치 아이피도 도메인 등록을 할 수 있으며 장거리 멀티는 도메인과는 크게 상관이 없다. 굳이 도메인을 안쓰고 아이피 주소를 사용하는 것도 충분히 가능하다. 반드시 해야하는 절차가 아니며 개인의 취향과 선택에 따르는 선택사항이라는 점을 명심하자. 또한 .com같은 도메인은 이미 다른 사용자가 가져간 경우가 태반이며, 가격 역시 매우 비싸며, .kr은 대한민국 법의 보호를 받는 도메인이라는 점을 참고해두자.[36]

도메인을 등록하려면 대개 돈을 지불하여야 하며, 무료 도메인 사이트 역시 존재하나 무료 도메인 사이트는 선택할 수 있는 폭이 좁고 디도스 공격을 당해 서버가 폐쇄될 가능성이 높다. 과거 무료 도메인 사이트인 oa.to가 디도스 공격으로 폐쇄되었던 걸 생각해보자.

그냥 도메인을 등록하면 가정에선 기본적으로 유동 아이피이기에 아이피 주소가 바뀌어 도메인이 갑자기 안될 수도 있으며 이러한 불편함을 해소하기 위해서는 아이피를 고정하거나 DDNS서버스를 사용하여야 한다.
iptime공유기라면 내장된 무료 DDNS를 사용하는 것을 추천하고, 이외에는 no-ip를 추천한다.[37] no-ip같은 경우 추가 프로그램을 깔지 않으면 DDNS가 안되니 참고 바람. 다른 서비스를 찾고 싶다면 구글에 DDNS 검색을 해보자.

DDNS가 싫다고 한다면 그냥 도메인을 아이피로 등록하면 된다. 만약 많은 사람들이 참여하는 서버로 만들고 싶다면 반드시 아이피를 고정하거나 DDNS를 사용해야 하며, 그냥 도메인을 등록하는 경우는 친한 사람끼리 플레이하는 정도가 적당하다.

4. 개인 운영[편집]

개인 운영이란 서버 호스팅을 이용하지 않고 본인 컴퓨터로 서버를 여는 것을 말한다.

호스팅 비용이 들지 않겠지만, 24시간 내내 컴퓨터를 켜야 하기에 전기세가 많이 나갈 수 있어서 대부분은 시간제[38]로 운영한다. 뿐만 아니라 디도스 공격에 취약하기 때문에 누군가가 서버 컴퓨터에 디도스 공격을 하면 그대로 서버 자체가 마비될 수 있기 때문이다. 서버를 운영하는데 디도스 공격을 걱정한다면 비싼 돈을 들여서 디도스 방어 장비를 사용하기보다는 그냥 호스팅을 이용하는게 좋다.

또한 컴퓨터의 성능을 많이 받쳐야 한다. 서버 인원이 적은 소규모 서버라면 감당할 수 있어도 서버 인원이 늘어나고 서버에 컨텐츠를 추가할수록 많은 리소스를 먹게 되어 개인 컴퓨터로는 감당하기 어렵다. 특히 야생서버의 경우 서버 유저들이 맵을 자유롭게 돌아다니다 보니 맵 파일 크기가 몇십에서 심하면 몇백GB를 넘어버린다. 따라서 Worldborder나 플러그인을 통해 맵의 크기를 제한시켜야 한다.

그리고 외부에서 접속할 수 있도록 공유기 설정도 변경해야 하는데, 공유기마다 접근 방법이나 설정 페이지가 다르기 때문에 어려올 수 있다.

5. 마인크래프트 서버 호스팅 업체[편집]

마인크래프트 서버를 전문적으로 호스팅해주는 업체가 있다.[39] Mojang 스튜디오(전 Mojang AB)에서 운영중인 Minecraft Realms이 있지만, 플러그인 사용이 불가능해서 사용하는 곳이라고는 친구들이랑 야생 또는 건축을 하거나, 미니게임 맵을 받아서 플레이할 수 있는 것 밖에 없다.

따라서 바닐라 외의 서버를 돌려주는 호스팅 업체들이 있다. 외국의 대표적인 호스팅 업체로는 MCProHosting[40], Apex Hosting 등이 있으며, Aternos 같은 무료 호스팅 업체도 있으나 무료 호스팅 업체들은 대부분 램 1GB에 성능이 낮은 편이다보니 서버 랙이 있으며, 플러그인을 많이 적용하거나, 모드를 적용하면 램 용량을 초과해버려서 서버가 작동하지 않는다. 유료 호스팅의 경우는 추가로 금액을 지불해서 램 용량을 추가하거나 SSD 용량을 업그레이드할 수 있다.

업체마다 원격 데스크톱 연결을 지원하거나, DDOS 방어 기능을 지원하기도 한다. 또한 리눅스 말고 윈도우 서버를 선택할 수 있다.[41]

호스팅 비용은 업체마다 다른 편이며, 비용이 싼 것도 있고, 비싼 것도 있다. 비용이 싸고 신뢰도가 낮은 업체는 사기 위험이 있기 때문에 피해야 한다. 비용이 싼 업체들은 원칙적으로 환불이 불가능하므로 신중하게 선택하는 것이 좋다.

6. 서버 설정[편집]

아래에는 서버를 설정하는 방법을 서술한다.

6.1. server.properties[편집]

파일:상세 내용 아이콘.svg   자세한 내용은 server.properties 문서
번 문단을
부분을
참고하십시오.

6.2. motd 설정[편집]

서버 motd를 한글로 작성하려면 UTF-8 형식으로 작성해야 한다.[42]
한글에서 유니코드로 바꾸는 방법은 여기로 가서 변환 해주도록 하자. 뿐만이 아니라 색을 입히고 출력 결과물을 미리 볼 수 있는등 편하게 설정 할 수 있다.

또 방법이 하나더 존재한다. 스크립트중
On server ping list:
(Tab)set motd to "첫번째 줄%nl%두번째 줄"
을 그대로 복사하여 사용이 가능하다.

7. 서버 구현물 목록[편집]

이 문단은 현재까지 사용 가능하거나 개발이 중단된 다양한 종류의 서버 구현 프로그램을 소개한다.
* 이름: 서버 구현 프로그램 이름
* 한글 이름: 제안하는 한글 표기명
* API: 플러그인 동작의 기반이 되는 API
* 지원 로더: 모드와 플러그인의 지원 여부
* 홈페이지: 공식 홈페이지 링크
* 마지막 버전: 개발이 중단된 경우 기입
* 추가 설명: 해당 구현물의 부가적인 설명

참고로 1.17부터 모든 서버 구동기들은 Java 16 이상이 요구된다..

7.1. 바닐라 서버[편집]

제작사인 Mojang에서 개발하는 공식 서버 프로그램이다. 근거리 네트워크 망의 유저끼리만 접속되는 LAN 서버나, Mojang 사에서 호스트해주는 Realms 와 달리 독립적인 서버 프로그램을 통해 여는 방식이라 유저가 자신의 컴퓨터로 서버를 호스팅 할 수 있다. 아래에 나열할 서버 프로그램들도 마찬가지.
멀티플레이를 많이 해보면 알다시피 서버의 기능을 풍요롭게 하는 요소로써 플러그인이 빠질 수 없는데, 바닐라 서버는 API가 존재하지 않아 플러그인을 적용할 수 없다. 즉, 화폐를 추가하거나 미니게임을 제공하는 등 플러그인이 제공하는 기능을 사용할 수 없고 기본적인 게임 요소만을 즐길 수 있다.[43] 따라서 플러그인을 사용하지 않는 생야생 서버[44]를 여는 경우에는 바닐라 서버가 가장 적합하다. 또, 바닐라 서버는 정식으로 출시되지 않은 스냅샷 버전을 지원한다는 이점을 가지고 있다.

서버 구동기 다운로드 방법은:
  • 최신 릴리즈 버전은 여기에서 내려받는다.
  • 다른 버전의 경우, 게임 런처에서 실행설정 → 원하는 버전의 프로필 → 버전 항목 오른쪽에 서버 다운로드를 클릭한다.
서버를 구축하는 방법은 여기를 참고.

7.2. Bukkit API[편집]

플러그인 API의 일종이다. 아래 목록은 이 API를 제공하는 서버 구현 프로그램들이다.
대한민국은 물론 해외를 포함하여 가장 높은 점유율을 보이며, 대다수의 플러그인들이 이 API를 기반으로 개발된다. 모장이 버킷 개발팀을 인수했고, 현재는 DMCA 테이크 다운으로 인해 버킷의 공식 개발은 완전히 중단되어 최근에는 Bukkit API를 기반으로 한 다른 버킷으로 넘어가는 추세이다.[45]

일반적인 서버를 만들때는 Paper를 추천하고, 더 많은 커스터마이징까지 원한다면 Purpur를 추천한다.(다만 Purpur 포크 부터는 일부 플러그인 호환성에 문제가 있을 수도 있다.)[46].

아래는 버킷들을 모아둔 사진이다.

7.2.1. Craftbukkit[편집]

  • 이름 : Craftbukkit
  • 한글 이름 : 크래프트버킷
  • API : Bukkit API
  • 지원 로더 : 버킷 플러그인
  • 지원 버전 : Beta_1.2_01 ~ 1.17, 1.17.1
  • 공식 다운로드 : 다운로드는 http://hub.spigotmc.org 에서 가능하다.
  • 비공식 다운로드 : (Beta_1.2_01 ~ Beta_1.8.1), (1.0+)
  • 추가 설명 : 우리나라에서 일반적으로 불리우는 버킷이 이것이다.
DMCA 사태[47] 이후 Spigot팀이 프로젝트를 넘겨받아 유지되고 있는 상태이며, BuildTools를 사용하면 Spigot과 함께 Craftbukkit도 같이 내려받아진다. 여담으로 Craftbukkit보다 Spigot을 쓰는게 더 현명한 선택이다, 그 이유는 여기를 참고.

7.2.2. Spigot[편집]

  • 이름 : Spigot
  • 한글 이름 : 스피곳
  • API : Bukkit API, Spigot API
  • 지원 로더 : 버킷 플러그인, 스피곳 플러그인
  • 지원 버전 : 1.4.4 ~ 1.17, 1.17.1
  • 비공식 다운로드 : (1.4.6+)
  • 추가 설명 : Craftbukkit의 DMCA 사건으로 인해 다운로드 방법이 막혔다가 BuildTools를 통해 컨버팅 방식[48]을 사용하며 컨버팅 후 구현 프로그램을 추출하는 데 꽤 오랜 시간이 걸린다. 때문에 인터넷에는 이러한 컨버팅 과정을 해둔 파일을 바로 내려받을 수 있게 배포하는 사이트도 존재하나, 이미 컨버팅된 파일을 배포하는 것은 라이선스 위반이라 고소를 당하면 배포 중단할수 밖에 없다.
    BuildTools로 스피곳을 구하는 방법은 여기서 알아보자.

    참고로, Spigot은 Bukkit API를 채택하여 Craftbukkit 기반 버킷 플러그인이 호환되며, 설정 튜닝을 통한 최적화 기능도 제공한다. 단 Spigot 별도의 API가 존재하여 Spigot 전용 플러그인을 Craftbukkit에서 구동하려고 하면 오류가 발생할 수 있다.
장점이라면 빠른 업데이트를 예로 들 수 있는데, 프리릴리즈등 정식 출시되지 않은 버전들의 업데이트가 조금이라도 늦어질 경우, BuildTools를 통해 바로 개발 버전의 스피곳을 사용해볼 수 있는 경우가 많다.
하지만 빠른 업데이트가 사실상 의미가 없는게 플러그인들도 업데이트를 바로바로 낼 수 있는게 아니다. 그래서 스피곳을 사용한다 쳐도 결국 플러그인이 지원하는 것을 기다리는 것 때문에 바로바로 업데이트를 할 수 없다. 하지만 그렇다고 Spigot이 지원이 중단된다면 플러그인 업데이트 속도가 더 느려질 것이기 때문에[49] 어떻게 보면 장점... 이라고 해야할 수도 있다. 이러나 저러나 어쨌든 Paper 에게 이득이긴 하다만...

7.2.3. Paper[편집]

  • 이름 : Paper
  • 한글 이름 : 페이퍼
  • API : Bukkit API, Spigot API, Paper API
  • 지원 로더 : 버킷 플러그인, 스피곳 플러그인, 페이퍼 플러그인
  • 지원 버전 : 1.7.10~1.16.3, 1.16.4~1.17.1
  • 추가 설명 : Spigot을 포크하여 여러 문제점들을 해결한 버전. Fabric 모드 프로젝트 중 Lithium의 일부 코드를 가져와 최적화도 더 잘 되어있다. Spigot을 패치한 JAR 형태로 배포되어 사용할 수 있다. Spigot과는 다르게 DMCA 문제가 완전히 해결되어 일반적인 JAR 파일을 배포하는 방법으로 손쉽게 다운로드하여 사용할 수 있다. 그래서 대부분의 서버들이 사용하고 있다. 거의 모든 Spigot 플러그인과 호환된다.

7.2.4. Purpur[편집]

  • 이름 : Purpur
  • 한글 이름 : 퍼퍼
  • API : Bukkit API, Spigot API, Paper API, Tuinity API, Purpur API
  • 지원 버전 : 1.14.4~1.17, 1.17.1
  • 지원 로더 : 버킷 플러그인, 스피곳 플러그인, 페이퍼 플러그인, 튜이니티 플러그인, 퍼퍼 플러그인
  • 추가 설명 : Paper, Tuinity를 포크한 버킷이다. 주로 마인크래프트의 시스템을 purpur.yml 로 수정할 수 있도록 커스터마이징에 초점을 맞춘 버킷이며, 이 역시 Tuinity 처럼 대규모 서버를 열 생각이라면 이 버킷을 추천한다. 심지어 이 버킷은 지원하는 공유기의 경우 방화벽 설정부터 포트포워딩까지 자동으로 진행한다. 또한 이 버킷은 자체적인 클라이언트도 개발되고 있다. 서버를 최적화 하고 싶다면 이 문서를 참고하자.
하지만 Purpur 포크부터는 일부 플러그인의 호환성에 문제가 있을 수 있으니 참고.

7.2.5. Airplane(AirplanePurpur)[편집]

  • 이름 : Airplane, AirplanePurpur[51]
  • 한글 이름 : 에어플레인, 에어플레인퍼퍼[52]
  • API : Bukkit API, Spigot API, Paper API, Tuinity API[53]
  • 지원 버전 : 1.16.5 ~ 1.17
  • 지원 로더 : 버킷 플러그인
  • 추가 설명 : Tuinity를 포크하여 한번더 최적화[55]를 한 버킷이다. Tuinity와 마찬가지로 인지도가 낮다. 일정 부분에서 Tuinity보다 더 빠르게 작동한다. Purpur를 포크한 AirplanePurpur도 있다. 이 버킷도 Paper 플러그인과 문제없이 호환된다. 하지만 패치 속도가 다른 Paper 포크보다 더딘 편인다.

7.2.6. NachoSpigot[편집]

  • 이름 : NachoSpigot
  • 한글 이름 : 나초 스피곳
  • API : Bukkit API, Spigot API
  • 지원 버전 : 1.8.8
  • 지원 로더 : 버킷 플러그인, 스피곳 플러그인
  • 추가 설명 : TacoSpigot을 포크하여 한번더 최적화한 버킷이다. 하지만 인지도는 낮다.

7.3. 버킷 + 모드 서버[편집]

아래 있는 버킷들은 포지 모드와 버킷 플러그인들 혹은 다른것들까지 동시에 지원하는 버킷들이다.

버전별 추천 버킷을 설명하자면,
1.2.5~1.6.4 는 MCPC+(Cauldron),
1.7.10 은 Thermos,
1.8~1.12.1 은 SpongeForge[56],
1.12.2 는 CatServer 혹은 Mohist,
1.14.4 이상은 Arclight를 추천한다.

7.3.1. Cauldron (MCPC+)[편집]

7.3.2. Thermos[편집]

  • 이름 : Thermos
  • 한글 이름 : 써모스
  • API : Bukkit
  • 지원 로더/플러그인 : 버킷 플러그인, 포지 모드
  • 마지막 버전 : 1.7.10-R0.2
  • 다운로드 링크 : 링크
  • 추가 설명 : 1.7.10에서 가장 안정적으로 알려졌던 버킷 플러그인/포지 모드 를 지원했던 버킷이였다. 현재는 개발이 중단되었다.

7.3.3. SpongeForge[편집]

  • 이름 : SpongeForge
  • 한글 이름 : 스펀지포지
  • API : Sponge API
  • 지원 버전 : 1.8~1.12.2
  • 추가 설명 : Craftbukkit의 DMCA 사건으로 인해 WorldEdit 개발자[62]와 콜드론 개발자 등 많은 사람들이 모여 스펀지 팀을 창설했고, 버킷과 완전히 다른 새로운 API를 갖는 서버 구현 프로그램인 Sponge가 탄생했다. 스펀지포지는 Forge와 SpongeAPI를 동시에 포함한다. 따라서 모드와 플러그인을 동시에 지원하고, Forge 서버에 설치되는 하나의 모드와 같이 동작한다. 주의할 점은 버킷 플러그인과 호환되지 않으며 포지 모드와의 호환성이 완전하지 않다. 설치 방법은 스펀지 공식 문서를 참고하도록 하자.[63] 또한 클라이언트에도 역시 적용 가능하다.

7.3.4. CatServer[편집]

  • 이름: CatServer
  • 한글 이름: 캣서버
  • API: Forge Mod Loader, Bukkit, Spigot, Paper
  • 지원 로더: 버킷 플러그인, 스피곳 플러그인, 페이퍼 플러그인, 스펀지 플러그인(Beta)[64], 포지 모드
  • 지원 버전 : 1.12.2
  • 추가 설명: NMS 레이어부터 패치하는 방식으로 패키징되어 포지와 스피곳을 모두 호환, 따라서 모드와 플러그인을 전부 지원하는 서버이다.
    더 나은 호환성과 안정성, 빠른 속도를 제공하며, 코어모드에 대한 호환성이 향상되었다.
    현재 1.12.2에서 모드+플러그인 버킷 중 가장 안정적이라고 한다.[65]
    1.12.2 만 지원하며 다른 버전은 지원할 계획이 없다고 한다.[66]

7.3.5. Atom[편집]

  • 이름: Atom
  • 한글 이름: 아톰
  • API: Forge Mod Loader, Bukkit, Spigot
  • 지원 로더: 포지 모드, 버킷 플러그인, 스피곳 플러그인
  • 지원 버전: 1.12.2
  • 링크: 깃허브

7.3.6. Magma[편집]

  • 이름: Magma
  • 한글 이름: 마그마
  • API: Forge Mod Loader, Bukkit, Spigot, Paper
  • 지원 버전 : 1.12.2, 1.16.5
  • 지원 로더: 버킷 플러그인, 스피곳 플러그인, 페이퍼 플러그인, 스펀지 플러그인, 포지 모드
  • 추가 설명: CatServer, Mohist 처럼 포지와 스피곳을 모두 호환하는 하이브리드 버킷이다.

7.3.7. Arclight[편집]

  • 이름: Arclight
  • API: Forge Mod Loader, Bukkit, Spigot, Paper[67]
  • 링크: 깃허브
  • 지원 로더: 버킷 플러그인, 스피곳 플러그인, 포지 모드
  • 지원 버전 : 1.14.4, 1.15.2, 1.16.5, 1.17.1
  • 추가 설명: Magma, Mohist, CatServer 처럼 포지와 스피곳을 모두 호환하는 하이브리드 버킷이며, 최신버전 하이브리드 버킷중 가장 안정적이다.[69]

7.3.8. Mohist[편집]

  • 이름: Mohist
  • 한글 이름: 모히스트
  • API: Forge Mod Loader, Bukkit, Spigot, Paper
  • 지원 버전 : 1.12.2, 1.16.5, 1.17.1[70]
  • 지원 로더: 버킷 플러그인, 스피곳 플러그인, 페이퍼 플러그인, 포지 모드
  • 추가 설명: CatServer 처럼 포지와 스피곳을 모두 호환하는 버킷이다. 호환성이 완벽하지 않아서 일부 필수급 플러그인은 자체적인 패치가 진행된 플러그인으로 바꿔버린다.[71] 그러나 1.12.2 버전에선 CatServer 다음으로 가장 호환성이 좋다.

7.3.9. Cardboard[편집]

  • 이름: Cardboard
  • 한글 이름: 카드보드
  • API: Fabric Mod Loader, Bukkit, Spigot, Paper
  • 지원 버전: 1.16.4 ~ 1.17.1[72]
  • 지원 로더: 버킷 플러그인, 스피갓 플러그인, 페이퍼 플러그인, 패브릭 모드
  • 추가 설명: Rainbow 프로젝트의 개발자인 Isaiah가 개발하는 패브릭 모드 이다. Bukkit, Spigot, Paper를 지원하도록 하는 모드인데, 아직 굉장히 불안정하다. NMS마저 제대로 구현되지 않은 상태다.[73]

7.4. 자체 API 기반[편집]

아래 목록의 프로그램들은 Bukkit API와 독립적이므로 버킷 플러그인과 호환되지 않는다.
일부 프로그램은 NMS[74]에 의존하지 않고 하나부터 열까지 서버 기능을 직접 개발하기도 한다.
이 경우 업데이트 속도가 더디거나 지원하지 않는 기능이 있으므로, 신중하게 선택하기 바란다.

7.4.1. Forge[편집]

  • 이름 : Forge
  • 한글 이름 : 포지
  • API : ForgeModLoader API
  • 지원 로더 : 포지 모드
  • 추가 설명 : 포지 모드 서버 구동에 사용되는 서버 프로그램. 플러그인은 호환되지 않지만 비슷한 역할을 하는 서버용 모드나 포지 모드로 포트된 플러그인을 대신 사용 가능하다.[76]

7.4.2. Fabric[편집]

  • 이름 : Fabric
  • 한글 이름 : 패브릭
  • API : Fabric API
  • 지원 로더 : 패브릭 모드
  • 추가 설명 :1.14 때 Forge의 업데이트가 늦어지자 대체재로 개발된 프로젝트다. Forge 보다 굉장히 빠르고 가볍다. 또한 패치 속도가 빨라 스냅샷도 지원한다는게 특징이다. 그러나 API 코드가 Forge 보다 적으며[77], Forge와 Fabric의 모드는 상호 호환이 불가능하다는 단점도 있다. Cardboard 모드를 추가하여 Bukkit API를 사용할 수는 있지만, 아직 굉장히 불안정하다. NMS 이벤트 마저 제대로 구현되지 않았다.

7.4.3. SpongeVanilla[편집]

  • 추가 설명 : 원래는 Granite 라는 별도의 프로젝트였으나, Sponge 팀에 인수되었다.
    스펀지바닐라는 스펀지포지의 모드 호환성만 제거한 버전으로 볼 수 있다. (따라서 Forge 기반의 모드가 아니다.)
    설치 방법은 스펀지 공식 문서를 참고하자.

7.4.4. Minestom[편집]

  • 이름 : Minestom
  • 한글 이름 : 마인스톰
  • API : Minestom
  • 지원 로더 : Minestom Extension
  • 홈페이지 : https://minestom.com/
  • 추가 설명 : Glowstone과 마찬가지로 멀티쓰레드로 동작하며[78], 바닐라 서버를 기반으로 하지않고 모든 것을 자체적으로 구현하였다. 다만, 다른 서버 프로그램과는 달리 바닐라 서버를 목적으로 한 프로그램이 아니며, 모든 것을 직접 구현하도록한 장르서버 특화의 오픈소스 서버 빌딩 라이브러리이다.[79] 때문에 일반적인 사용자는 이용하지 않는 것이 좋다. 최신버전만을 지원하지만, 번지코드나 Velocity 같은 프록시 프로그램도 지원하기 때문에 프록시 플러그인을 이용하여 간접적으로 이전버전에서의 접속을 허용할수 있다.

7.4.5. Cuberite[편집]

  • 이름 : Cuberite
  • 한글 이름 : 큐브라이트
  • API : Cuberite API
  • 지원 로더 : 큐브라이트 플러그인
  • 홈페이지 : http://cuberite.org
  • 추가 설명 : C++로 작성한 마인크래프트 서버. 서버 리소스(CPU, 메모리 등) 관리 최적화를 염두에 두고 개발되어 성능이 좋다. 하지만 서버를 자체 구현했기 때문에 업데이트가 느리고 잔 버그가 많다. Lua로 작성된 자체 플러그인들이 존재한다.

7.4.6. Glowstone[편집]

  • 이름 : Glowstone
  • 한글 이름 : 글로우스톤
  • API : GlowKit, Bukkit, Spigot, Paper
  • 지원 버전 : 1.12.2, 1.14 ~ 1.16[80]
  • 지원 로더 : 글로우킷 플러그인, 버킷 플러그인, 스피곳 플러그인, 페이퍼 플러그인
  • 최신 버전 : 다운로드 사이트
  • 추가 설명 : 바닐라 서버를 기반으로 하는 대다수의 서버 프로그램과 달리, 글로우스톤은 서버의 기능을 하나부터 열까지 자체적으로 구현하였다.
    각 월드마다 개별의 멀티 쓰레드로 동작하기 때문에 단일 쓰레드로 동작하는 다른 서버와 비교했을 때 서버에 걸리는 부하가 적을 것이다. 다만, 서버의 모든 요소들을 자체 구현했기 때문에 아직 기본적인 게임 기능마저 덜 구현되었다. (2018년 초 기준, 마인카트도 구현되지 않았다...)

7.5. 개발 중단된 프로젝트[편집]

7.5.1. TacoSpigot[편집]

  • 이름 : TacoSpigot
  • 한글 이름 : 타코 스피곳
  • API : Bukkit
  • 지원 버전 : 1.8.8~1.9.4, 1.10.2~1.12.2
  • 지원 로더 : 버킷 플러그인
  • 홈페이지 : 현재 없어졌다.
  • 추가 설명 : 페이퍼 버킷을 기반으로 만들어진 버킷이다. 페이퍼 버킷의 여러 문제점들을 해결했다고 자칭하는데... 1.8.8~1.9.4 서버의 경우 페이퍼 버킷보다 더 오래 지원되었고, 많은 버그 수정이 있었지만 2018년에 개발이 중단되면서 1.12.2의 경우 2019년 중반까지 개발된 페이퍼 버킷 보다 더 안좋다. 그래서 많은 1.8.8~1.9.4 서버들은 TacoSpigot 을 사용다.
위에 왜 과거형이냐면 이 버킷은 이젠 못 쓴다. 준필수급 플러그인인 Luckperms 가 java 15 이하 버전들의 지원을 종료 했는데[82] TacoSpigot 은 Java 16 에서 작동이 안된다. 그래서 이젠 절대 쓰지 말아야 할 버킷중 하나가 되었다. 여담으로 Spigot, Paper, NachoSpigot 은 잘 작동한다.

7.5.2. Kettle[편집]

  • 이름: Kettle
  • 한글 이름 : 케틀
  • API: FML, Bukkit API, Spigot, Paper API, Sponge
  • 지원 로더 : 버킷 플러그인, 스피곳 플러그인, 페이퍼 플러그인, 포지 모드, 스펀지 플러그인
  • 마지막 버전: 1.12.2 HEAD-a8543ec

7.5.3. Project Rainbow[편집]

7.5.4. Tuinity[편집]

  • 이름 : Tuinity
  • 한글 이름 : 튜이니티
  • API : Bukkit API, Spigot API, Paper API, Tuinity API
  • 마지막 지원 버전 : 1.15.2~1.16.3[구버전_링크], 1.16.4 ~ 1.17.1
  • 지원 로더 : 버킷 플러그인, 스피곳 플러그인, 페이퍼 플러그인, 튜이니티 플러그인
  • 추가 설명 : Paper를 포크하여 만들어진 버킷이다. 대규모 서버에 초점이 맞춰저있었다. 페이퍼 버킷을 최적화 해서 페이퍼 버킷보다 성능은 더 좋았다.[84] 또한 자체적인 Fabric 모드(Starlight)를 개발해 버킷에 패치하였다. 페이퍼 버킷에서 작동되는 플러그인 중 호환성 문제는 없었다. 한국에서는 인지도가 낮았지만 해외에서는 인지도가 높은 편이었다. 대부분의 Paper 포크도 Tuinity를 기반으로 제작했을 정도였다.[85] 다만 2021년 8월 18일, Tuinity 개발자가 Paper 개발자로 참여하고 Tuinity 프로젝트와 Paper 프로젝트를 합치겠다고 협의했다. 그래서 이젠 Paper 가 성능이 기존의 Tuinity 랑 같아졌고, 앞으로 Tuinity 에서 최적화 될 사항이 이젠 Paper 에서 최적화되어 Paper 를 쓰지 않을 이유가 없어졌다.

7.5.5. Yatopia[편집]

  • 이름 : Yatopia
  • API : Bukkit
  • 지원 버전 : 1.16.2~1.16.5
  • 지원 로더 : 버킷 플러그인
  • 추가 설명 : Tuinity를 포크하고 다수의 Paper 포크와 Fabric 모드[86]에서 최적화 패치를 가져와 결합한 버킷이다. 여러가지의 최적화 옵션을 사용할 수 있다. 한때 호환성 문제가 심각했던적이 있었지만, 최신버전에서는 일부 고쳐졌음에도 불구하고 Yatopia에 대한 사람들의 시선이 좋지 못하자[87], 결국 개발자들이 단체로 이탈하면서 개발이 중단되었다.

8. 사건 사고[편집]

8.1. Craftbukkit DMCA 테이크 다운[편집]


사건에 대해 읽기 전 EULA 에 대해 알아가길 바람.
EULA란, End User License Agreement 의 약자로, 한국어로 최종 사용자 사용권 계약이라고 부른다.

마인크래프트 의 제작사 Mojang (이하 "모장") 에서 인터넷을 통해 실행되는 모든 서버[88]에 적용시킨 규칙으로 이를 어길 시 모장에서 제재한다.

EULA는 마인크래프트 제작사인 모장과 이 게임을 이용하는 사용자 간의 권리와 의무가 명시된 내용으로, 민사 상의 계약이기 때문에 지키지 않는다고 해서 감옥에 간다든가 그런 게 절대 아니다. 물론 계약은 계약이기에 약관상에 명시된 사항이라면 모장 사 측에서 임의로 처리가 가능하다. 예를 들어 계정을 삭제해버린다던지, 해당 IP를 게임 다운로드나 실행 관련 인터넷망에서 완전히 끊어버리던지.

자세한 내용은 Mojang Account 참고.

8.1.1. 발단[편집]

이 EULA 실시 이후 2014년 8월 21일, Craftbukkit 팀(이하 "버킷 팀") 의 리더인 EvilSeph 가 트위터를 통해 아래와 같이 글을 올림.
It's time to say good bye.

이제 헤어져야 할 시간입니다.
이에 마인크래프트의 수석 개발자인[89] Jens Bergensten 이 위 글에 대해 아래와 같이 답변함.
Warren over at bukkit seems to have forgotten that the project was bought by Mojang over two years ago, and isn't his to discontinue.

버킷의 워렌은 2년 전 모장이 버킷팀을 인수했고, 2년 전부터 이 프로젝트는 모장의 소유였다는 것을 잊은 것 같네요. 이 프로젝트는 그의 마음대로 그만 둘 수 없습니다.
그리고 갑자기 버킷 팀의 총 책임자였던 Nathan Adams 가 아래와 같이 말함.
To make this clear: Mojang owns Bukkit. I'm personally going to update Bukkit to 1.8 myself. Bukkit IS NOT and WILL NOT BE the offical API.

모장이 버킷팀을 인수한게 명확합니다. 저는 개인적으로 직접 1.8 업데이트를 진행할 것입니다. 버킷은 지금도 아니고, 앞으로도 공식 API가 절대 아닐 겁니다.
그리고 이어서
I started Bukkit, I'm going to personally see it through for 1.8 Updating it now :)

저는 버킷 개발을 시작했습니다. 저는 개인적으로 지금 1.8로 업데이트하고 있다는 것을 보여줄 겁니다. :)

8.1.2. 전개[편집]

발단 이후, 버킷 팀에 약 25% 의 코드를 제공한 사람인 Wesley Wolfe (이하 "울프") 가 Bukkit API 를 이용한 모든 사이트에 DMCA 테이크 다운을 요청했고, 울프의 요청에 따라 GitHub 링크와, 공식 사이트의 다운로드 서버, JavaDocs 서버가 다운되었다.

울프가 신청한 DMCA 의 원문내용은 아래와 같다. 해석은 아래에.
From: Wesley Wolf <email redacted>
Date: 3 Septemver 2014 03:48
Subject: [SL] [abuse-google] Copyright

My name is Wesley Wolfe. A site hosted on an IP adress owned by Multiplay
(ip redacted) is infringing on my software copyright by the distribution
of a software known as CraftBukkit.

Original content can be fount at

https://github.com/Wolvereness/Bukkit-Bleeding/commits?author=Wolverness
https://github.com/Wolvereness/Bukkit-Bleeding/commit/0a0fee8be25bf8a732abff2d66a89a64614b6327

and the appropriate license for previously mentioned content can be found at

https://github.com/Wolvereness/Bukkit-Bleeding/blob/f210234e59275330f83b994e199c76f6abd41ee7/LICENCE.txt

The provided license requires the use of included or linking code to
provide the original source under the GNU GPL license version 3, or any
later version. An offical notice has been sent to Mojang AB, whereas the
Chief Operating Officer, Vu Bui, responded with the clear text:

Mojang has not authorized the inclusion of any of its proprietary
Minecraft Software (including its Minecraft Server software) within the
Bukkit project to be included in or made subject to any GPL or LGPL
license, or indeed any other open source license.

As the Minecraft Server software is included in CraftBukkit, and the
original code has not been provided or its user authorized, this is a
violation of my copyright. I have a goot faith belief the distribution of
the copyright owner, it's agent, or the low

Pages including infringing content:
http://dl.bukkit.org/ - links to:
http://dl.bukkit.org/downloads/craftbukkit/ - links to 45 pages, with
infringing content begginning on craftbukkit build #1597 and currently
ending at craftbukkit build #3115, but please allow me not to enumerate
them all
first infringing build)

I have a good faith belief that the above information is accurate and that
I am the copyright owner or authorized to act on the copyrigh owner's
behalf.

Pursuant to the Digital Millennium Copyright Act (17 U.S.C 짠 512(c)), the
above mentioned pages need to be expeditiously remove or access-of
disabled.

Electronically Singed:
위의 원문을 해석한 것이다. 애매한 부분이 있다면 정확하게 수정해주길 바람.
발신: 웨슬리 울프
날짜: 2014년 09월 03일 03시 48분
제목: 저작권

제 이름은 웨슬리 울프입니다. 멀티플레이가 소유한 IP 주소로 호스팅된 사이트는
Craftbukkit으로 알려진 소프트웨어가 저의 소프트웨어에 대한 저작권을 침해, 배포하고 있습니다.

원래 컨텐츠는 여기서 찾을 수 있습니다 :
https://github.com/Wolvereness/Bukkit-Bleeding/commits?author=Wolverness
https://github.com/Wolvereness/Bukkit-Bleeding/commit/0a0fee8be25bf8a732abff2d66a89a64614b6327

기타 이전에 언급한 내용을 통해 정당한 라이센스를 확인할 수 있습니다.
https://github.com/Wolvereness/Bukkit-Bleeding/blob/f210234e59275330f83b994e199c76f6abd41ee7/LICENCE.txt

라이센스는 GNU GPL 라이센스 버전 3 또는 그 이후 버전에 속하는 라이센스를 통해 제공하고 있으며
원본 소스를 제공하기 위해 코드를 링크하거나 포함하여 사용하는 것을 말합니다.

안내문을 모장에게 보냈으며, 운영책임자인 Vu Bui 는 명확한 글로 답변해줬습니다.

모장은 마인크래프트 소프트웨어 (서버 소프트웨어를 포함하여) 에 대한 권리와
버킷 프로젝트를 포함하든 GPL 또는 LGPL 라이센스로 만들어 졌든, 또는 실제 다른 오픈소스 라이센스이든
어떤 소유자에 대한 권리도 가지고 있지 않습니다.

Craftbukkit은 마인크래프트 서버를 포함하고 있음에도 불구하고, 원본 코드가 제공되지 않았으며, 권한도 명시하지 않았습니다.
이는 저의 저작권에 대한 위반입니다. Craftbukkit 을 배포하는 것은 소유권을 가진 사람의 권리(또는 법)을 무시한 행위 입니다.

저작권 침해를 포함하는 사이트들 입니다.
http://dl.bukkit.org/ - 이는 아래와 연결되어 있습니다.
http://dl.bukkit.org/downloads/craftbukkit/ - 45페이지와 연결되어 있으며
제가 정리한 모든 것은 Craftbukkit 빌드 #1597 을 시작해 Craftbukkit 은 #3115 에서 끝납니다.
(제일 첫번째 위반 빌드 입니다.)

위의 정보가 정확하다고 보고 있으며
저는 저작권 소유주이며, 저작권 소유자의 권한을 행사할 수 있습니다.

디지털 밀레니엄 저작권 법 (DMCA) 에 의거
위에서 언급한 페이지들은 빠른 시간안에 삭제하거나 접속이 금지되어야 합니다.

웨슬리 울프
울프의 신청으로 Bukkit API 를 사용한 버킷이 먼저 내려가게 되었고, 그 다음 Spigot, Cauldron 순으로 내려가게 되었다.

버킷의 플러그인들도 하나 둘씩 업데이트를 하지 않게 되었다.
그러다 Spigot 이 버킷을 업데이트 한 이후로 중요한 플러그인들[90][91]은 계속해서 업데이트가 되고 있다. 거의 모든 플러그인이 Spigot-API 기반으로 업데이트되었다.

8.1.3. 결말[편집]

이 DMCA를 피하는 과정에서 여러 프로젝트가 주목받았다. 또 서버 소프트웨어의 주도권이 Spigot으로 넘어감에 따라 전체적인 업데이트 속도가 향상되었다.
Beat 패치, BuildTools 빌드, 서버 코드 자체 제작, Forge 의존 등 여러 DMCA 회피 방법이 나왔으며 이는 이후에 유사한 상황이 생길 시 유용하게 쓰일 것이다.
[1] 다만 같은 와이파이로 묶여 있지 않더라도 공유기의 DMZ설정이 되어 있다는 가정하에 서버를 열면 제공되는 포트를 이용해 현 PC의 (공인IP or 도매인 + 포트넘버)를 주소창에 치면 접속 할 수 있다.[2] 치트 사용이 불가능한 특정 맵에서의 꼼수가 가능한 방법으로, LAN 서버 만들기에 들어가 치트 사용을 켜고 모드를 크리에이티브 모드로 변경하여 서버를 열면 치트 사용이 가능해지고 모드도 자동으로 전환된다. 다만, 그 맵에서 나간 순간 전부 다 풀려버리니 주의하도록 하자.[3] 단, 공유기를 사용 중이라면 공유기의 포트포워딩 설정을 통해 외부로 서버 포트를 개방해야 외부 유저들이 접속할 수 있다.[4] 용어에 대한 정의는 위키피디아에 나와있다.[5] 압축을 풀면 사용할 수 없다![요즘은] PaperMC도 많이쓰는 추세이다.[7] 또는 src 폴더[8] 포크본 구동기[9] 파일을 더블 클릭하는 것과 같은 행위.[10] 다만, 외국이어서 핑이 은근 심하기도 하고, 램 메모리 할당량이 1GB에다 플러그인도 제한적이다.[11] JDK(Java Development Kit)가 설치되어 있어도 작동한다. 이는 JDK에 JRE가 포함되어 있기 때문. 하지만 JRE가 용량을 더 적게 잡아먹으므로 모드 개발이라도 할 게 아닌 이상 JRE 설치가 권장된다. 1.16 기준으로 더이상 JRE를 지원하지 않는 버킷(Paper 등)이 많아뎠으므로 JDK를 설치하는것이 좋다.[12] 1.16.5 기준으로 JDK 11 이상을 지원하는 버킷이 많아져 JDK 설치 페이지로 이동한다.[13] 더 빠르게 사용하고 싶다면 Adopt Open JDK를 사용하는것도 좋다. 일반 Java와 설치 방법은 같다.[14] 환경 변수가 설정 되었는지 확인하려면, 윈도우키+R 을 누른 후 cmd /k java --version 을 입력해보면 된다.[15] 이 폴더는 서버 월드, 플러그인, 설정 파일이 담길 폴더이므로 신중하게 정하자. 띄어쓰기나 기호가 없는 오로지 영문, 숫자, 하이픈(-) 만으로 된 폴더명을 추천한다.[16] 어떤 구현물을 써야 할 지 모르겠다면 여기를 클릭해서 확인해보자.[17] 배치 파일 이름은 무엇으로 해도 상관없다.[18] 단 이것은 호스팅 컴퓨터 기준이다. 서버를 연 컴퓨터로 마크를 하려면 최소 4G는 빼고 할당해야 한다[19] 파일 이름과 확장자명을 올바르게 기입하지 않으면 서버가 켜지지 않는다.[20] Java를 설치했더라도 이 과정에서 Java가 잡히지 않거나, Java가 여러 버전이 깔려 있을 때는 설치된 경로에서 java.exe를 찾아 수동으로 지정해줘야 한다.[21] 플러그인이나 모드가 많거나 동시 접속자가 많으면 더 많은 을 할당할 필요가 있다. M 대신 G를 사용해 기가바이트 단위로 할당 가능하다. 1G=1024M[22] 경고가 뜨면 무시하고 실행하면 된다.[23] .cmd도 된다.[24] windows10 기준 폴더 창 상단의 보기-옵션-보기-알려진 파일 형식의 파일 확장명 숨기기 박스 체크 해제하면 확장자가 보이는데 텍스트 파일 이름이 예를 들어 server.bat.txt 식으로 되어 사실상 확장자가 변경된 것이 아니라 이름만 변경된 경우이다. 뒤의 txt를 지우면 해결된다[25] -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -XX:TargetSurvivorRatio=90 -XX:+AggressiveOpts -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true 이것을 -Xmx와 -jar 사이에 넣으면 된다.[26] 윈도우 방화벽을 열어주어야 랜서버로 같은 공유기 내에서 멀티를 할 수 있는 것이다.[27] 아웃바운드는 내가 접속하는 것, 인바운드는 남이 접속하는 것을 의미한다.[28] 프로그렘을 선택해서 자바로 지정해주어도 된다. jre에 있는 java.exe를 지정하면 된다.[29] 모든 로컬 포트로 설정해도 되지만 포트를 적게 열어두는 것이 그나마 보안에 도움이 된다.[30] 1000-2000이런 식으로 범위로 지정해주어도 된다. 다만 그 범위에 설정한 포트가 포함되어 있어야 된다.[31] 한 LG공유기로 예를 들자면 내부 포트를 지정된 범위에서만 선택 가능하다. ex)스타크래프트 1234. 메일 P2P 1555등등등 이런 경우면 여기에 맞게 외부 포트도 설정해주고 윈도우 방화벽도 다시 설정해주어야 하며 버킷에서도 설정해주어야 한다.[32] 모뎀일 경우 통신사에 연락해야하는 경우가 많다.[33] 이것 역시 방법이 천차만별[34] 한번 다르게 설정되었다면 아래 방법으로 해결될때 까지 절대 문제가 해결되지 않는다. 환장할 노릇[35] 데비안 계열은 apt, 레드햇 계열은 rpm, 아치 리눅스 계열은 pacman을 사용한다.[36] 일반인도 .kr이 들어간 도메인을 사용할 수 있다. 국가기관은 go.kr을 사용하며 go.kr은 일반인이 사용하지 못한다.[37] 한달에 한 번 갱신하여야 도메인을 계속 사용 할 수 있는데 비용은 무료이다. 기간이 다가오면 메일이 오니 참고하자[38] 새벽에만 서버를 운영하는 등.[39] 호스팅 업체에 따라서 Java 에디션 서버만 지원하거나 Java와 베드락 에디션 서버를 돌다 지원한다. 규모가 큰 업체의 경우는 다른 게임 서버도 호스팅해주기도 한다.[40] 참고로 유명 외국 미니게임 서버인 하이픽셀은 이 호스팅 업체를 통해 운영하며, 이 업체의 직원들에게 MCProHosting 랭크를 준다. (혜택은 HELPER 랭크과 똑같다) 하이픽셀 자체 호스팅으로 바뀌면서 해당 랭크도 삭제되었다.[41] 윈도우 서버를 선택한다면, 월 라이선스비가 추가된다.[42] 그렇지 않으면 한글이 모두 깨져서 나온다.[43] 다만 1.12.2부터 함수, 1.13부터 데이터팩 기능이 추가되면서 플러그인을 바닐라 기능으로 대체하는 것이 가능하니, 어느 정도 지식이 있다면 플러그인보다는 안정성이 높은 바닐라 서버를 사용하는 것을 추천한다.[44] 경제, RPG, 미니게임 등을 모두 배제하고 마인크래프트 본연의 야생 생존만이 유일한 장르인 서버[45] 예를 들어 필수 플러그인 중 하나인 WorldEdit은 PaperAPI를 기반으로 제작되어 Spigot에서는 실행되지 않는다.[46] 대부분의 서버에서는 Paper를 사용하지만, 최적화를 다루는 문서에서는 Purpur를 사용한다. Airplane은 1.17 기준으로 오류 패치 속도가 더디므로 비추천한다. (하지만 빠르기는 가장 빠르다.)[47] 원래는 CraftBukkit의 라이선스는 돈 주고 판매가 불가능한 라이선스였다. 모장이 버킷 개발팀을 인수가 거쳐서 라이선스 위반이 돼서 DMCA이 발동된 것[48] Git 저장소에 저장되어 있는 소스코드를 내려받아 프로그램을 컴파일하는 방법이다. 윈도우 환경에서는 Git Bash 프로그램을 설치해야 했으나 그냥 도스창에다 쳐도 알아서 Git를 다운받아 진행한다.[49] 왜냐하면 플러그인을 업데이트하려면 해당 버전의 서버.jar 파일이 필요한데 이게 늦게 나올수록 업데이트 속도도 지연되기 때문이다.[50] 이 버킷은 1.7~1.8.9의 플레이어가 1.7.10 서버에 들어올 수 있는 엄청난 버킷이다.[51] Purplane 이라고도 알려져 있다.[52] 퍼플레인 이라고도 알려져 있다.[53] AirplanePurpur의 경우 Purpur API도 지원한다.[54] 최신 버전 다운로드 링크이다.[55] 주로 엔티티[56] SpongeForge 사용시 Sponge 플러그인 사용만 가능하며 버킷 플러그인을 사용하지 못한다. 하지만 해당 버전들은 SpongeForge 외에 플러그인을 지원하는 모드 버킷이 없으니 울며 겨자먹기로 써야한다. 만들 수 있으면 본인이 프로젝트를 만드는 것은 어떤가...[57] 원래 이름은 MCPC+ 였지만 1.7 업데이트를 진행하면서 Cauldron으로 변경되었다.[58] Forge 서버 기반이라서 포지 모드를 적용할 수 있었다.[59] 현재 사이트 폐쇄됨[60] 공식 사이트에서는 1.9.4 이전 버전들은 현재 내려가 있다[61] 다운받은 파일 이름 끝부분은 Forge 호환버전을 의미한다.[62] sk89q, Craftbukkit 시절 WorldEdit 플러그인으로 유명해진 개발자. 현재 스펀지 개발에서 손을 뗀 상태.[63] 스펀지 공식 문서는 오픈 소스이며, 누구든지 번역에 참여할 수 있다. 현재 한글 번역이 진행중이다.[64] Sponge 플러그인 호환은 개발을 시도했다 중단하였다.[65] -EssentialsX 개발자[66] 1.16.5 서버를 사용하고 싶으면 Loli-Server을 사용하라고 권장하는데 프로젝트 이름이 진짜 저렇다. 절대 쓰지 말자. 후술할 Arclight 나 Mohist 가 훨씬 낫다. 여담으로 Loli-Server 가 이런식으로 링크를 낚시해 Mohist 프로젝트 개발이 중단되었으니 Loli-Server 을 쓰라고 거짓 선동 및 광고를 하고 있으나 믿지 말자. 그리고 Loli-Server 는 쓰지 말고 알아서 개발 중단되게 냅두자[67] 개발자가 곧 지원할 예정이라고 했다.[68] 버전에 맞게 다운로드 해야한다.[69] 최신 마인크래프트 버전도 패치하지 않으면 지원되지 않는 WorldEdit, Skript 등 플러그인도 완벽히는 아니지만 다른 하이브리드 버킷보단 잘 작동한다.[70] 1.17은 개발중이라고 한다.[71] 이 플러그인 패치는 Mohist에서 해당 플러그인을 포크한 Github 에서 다운받아온다. EssentialsX, Paper 개발자들은 Mohist를 사용하지 말라고 한다. 물론 자신이 쓰고 싶다면 써도 된다.[72] 아직 개발 버전이다.[73] 이게 얼마나 심각하냐면 이벤트도 제대로 작동하지 않는다.[74] 모장이 개발한 마인크래프트 서버 소스코드[75] 이곳에서 받을 수 있는 클라이언트 설치파일로 포지서버 설치도 가능하다.[76] 예를 들어 WorldEdit, Dynmap등은 포지와 플러그인 버전이 모두 존재한다. WorldEdit은 플러그인이 기반이지만 Dynmap은 모드를 중점으로 두고 개발되었기 때문에 Dynmap 플러그인보다 Dynmap 모드가 훨씬 안정적이다.[77] 예를 들어 Forge는 Packet으로 모드를 받아올 수 있지만, Fabric은 Packet으로 받지 못해 모드가 적용되었는지조차 확인할 수 없다. 클라이언트를 제한하는 대부분의 서버에서 Fabric을 막는 이유다.[78] Glowstone보다 더 뛰어난 멀티쓰레드 환경이 구축되어있다. 월드뿐만 아니라 더 많은 부분이 멀티쓰레드로 설계되어있다.[79] 바닐라 서버를 기반으로 만들어진 여러 서버 프로그램이 있듯이 Minestom은 그러한 바닐라 서버와 같은 역할을 한다. 다만, 직접 프로그래밍할 것을 지향하는 오픈소스 라이브러리인 것이 차이점.[80] 다운로드는 불가능하지만 Github에서 직접 받아 빌드할수는 있다.[81] 공식 다운로드 링크는 현재 없어졌다[82] 현재 찾아온 정보로는 ViaVersion, EssentialsX 도 곧 Java 15 이하 버전들을 지원 종료할 예정이라 한다.[구버전_링크] 1.15.2, 1.16.1, 1.16.3, 1.17[84] 청크 생성 속도, 빛 관련 성능에서 체감이 컸다.[85] Purpur, Airplane, Yatopia[86] Akarin, EMC, Lithium, Origami, Airplane, Cadmium, Tic-Tacs[87] Paper 개발자의 문서중 하나, 또는 완전히 분리된 문서도 있다. ViaVersion은 완전히 구동되지 않도록 되어있다. (실행은 되지만, 다른 애드온을 꺼버린다.)[88] 즉, 친구들끼리 하마치를 통해 여는 서버도 포함. 사실 현실에 인맥이 있는 친구들끼리 하면 EULA에 위반 될 일을 할 필요가 없다[89] 마인크래프트 원개발자인 Notch 가 Jeb_ 이 모장에 온 이후, 수석 개발자 자리를 줬다.[90] WorldEdit, AuthMe, Factions 등등[91] Essentials 의 경우 Spigot 팀에서 직접 업데이트 한다고 알려져있다.