콘텐츠로 이동

서버 코어 사이의 관계

이 문서에는 서버 코어 사이의 비교, 선택, 설정 이야기가 많이 나오므로, 서버 코어끼리 어떻게 다른지 먼저 정리해 두자.

여기서는 GitHub를 예로 든다. GitLab처럼 GitHub와 비슷한 사이트도 많다.

GitHub에서 Fork는 저장소를 복제하는 것이다. 저장소를 복제하면 원래 프로젝트에 영향을 주지 않고 마음껏 여러 변경을 시험해 볼 수 있다.

보통 Fork는 다른 사람의 프로젝트를 고치거나, 다른 사람의 프로젝트를 내 아이디어의 출발점으로 삼을 때 쓴다.

Minecraft 서버 코어에서 A가 B의 Fork라는 말은, A가 B의 여러 성질(호환성 등)을 유지하면서 어떤 부분(성능, 기능 등)에서 더 나은 모습을 보인다는 뜻이다.

Bukkit -> Spigot -> Paper가 대체로 서버 코어 발전의 흐름이다. Paper는 Bukkit과 Spigot용으로 만든 플러그인 대부분을 지원한다.

거의 모든 최신 서버 코어는 Paper를 기반으로 하며, 무엇에 중점을 두느냐에 따라 기능, 성능, 확장성 등 서로 다른 방향을 택한다.

Purfferfish: Paper 기반, 엔티티 성능 최적화에 집중한 Fork

Gale: Paper 기반, 여러 성능 최적화에 집중한 Fork

Leaves: Paper 기반, 바닐라 서버에서 망가진 특성을 되살리는 데 힘쓰는 Fork

Purpur: Paper 기반, 커스텀 설정과 기능에 집중한 Fork

Leaf: Paper 기반, 여러 성능 최적화에 집중한 Fork

Fabric과 Forge는 Minecraft에서 가장 많이 쓰이는 모드 로더 두 가지다. Fabric과 Forge 서버 양쪽에서 쓸 수 있다고 밝힌 모드도

보통은 .jar 파일을 로더별로 따로 배포하며, 서로 호환되지 않는다.

그러니 Forge용이라고 적힌 모드를 Fabric 서버에 넣어서 로드가 안 되는 일은 없도록 하자.

Forge는 비교적 오래된 모드 로더로, 설계상 역사적 짐이 좀 있지만 유명한 모드가 많이 Forge로 개발되었다.

NeoForge는 Forge의 Fork다. 원래 Forge 팀 내부의 오랜 갈등 끝에 새 팀이 꾸려지면서 생겼다.

LexManos를 제외한 기존 Forge 팀 전원이 NeoForge로 옮겼고, 그래서 Forge와 NeoForge는 완전히 같을 수 없게 되었다.

다만 Forge 개발자가 적은 비용으로 NeoForge로 옮겨 갈 수 있을 것으로 보인다.

Fabric은 비교적 새로운 모드 로더로, 더 가볍고 효율적으로 설계되었다. 성능은 대체로 더 좋지만, 콘텐츠 모드는 아직 Forge보다 적다.

Fabric에는 최적화 효과가 좋은 모드가 많으며, Sodium이 대표적이다.

초보자에게는 어려운 부분이다. 쉽게 말하면 다음과 같다.

Bukkit + Forge = Catserver

Paper(일부) + Forge = Mohist