자주 묻는 질문
모두를 위해
Sponge가 무엇인가요?
Sponge는 마인크래프트 자바에디선의 다목적 API입니다. Sponge로 개발된 여러 플러그인을 추가하여 마인크래프트에 강력한 새 기능을 추가함으로써 더 풍요롭고 재밌는 마인크래프트를 즐길 수 있습니다. Sponge에 대해 자세히 알아보시려면 소개 와 Sponge의 연혁은 Sponge의 역사 문서를 참조하세요.
Sponge를 구동하려면 무엇이 필요한가요?
Sponge와 마인크래프트는 Java Runtime Environment (자바 런타임 환경)이 필요합니다. 당연히 서버를 구동할 컴퓨터도 필요하고, 그 외에는 필요한 준비물이 없습니다. 올바른 Java 버전을 설치하는 방법에 대해 알아보려면 Java 설치 를 참조해주세요.
어디서 Sponge를 다운로드 할 수 있나요?
SpongeForge와 SpongeVanilla는 다운로드 페이지 에서 다운로드 받으실 수 있습니다.
Sponge의 구현 프로그램에는 어떤 것들이 있나요?
현재 Sponge 프로젝트는 2가지 구현물을 개발하고 있으며 모두 SpngeAPI를 사용합니다.
SpongeForge: 마인크래프트 모드 프레임워크인 Minecraft Forge의 핵심 모드로, Forge로는 부족한 강력한 API들을 제공합니다. Sponge는 서버 운영자에게 Sponge 플러그인을 쉽게 활용할 수 있게 해주어 서버 관리를 쉽게 만듭니다. (SpongeForge는 본래 Sponge였으나, 혼동을 피하기 위해 이름이 바뀌었습니다).
SpongeVanilla: 바닐라 마인크래프트 서버에서 돌아가는 Sponge API를 구현한 서버 프로그램입니다. 참고로 SpongeVanilla는 Granite라는 이름으로 시작되었지만, 개발 팀이 병합되면서 지금처럼 되었습니다.
API의 유연성 덕분에 커뮤니티에서 자체 개발한 서버 프로그램 구현체도 있습니다:
Sponge 플러그인을 어디서 다운로드 할 수 있나요?
Sponge 공식 플러그인 저장소인 Ore 에서 플러그인을 찾고 내려받을 수 있습니다.
Bukkit에 무슨 일이 있었나요?
Bukkit 프로젝트는 개발자들이 API와 서버 개발을 중단했습니다. 곧이어 Bukkit 프로젝트의 기여자 중 한 명이 CraftBukkit의 배포를 중단하라는 DMCA 테이크다운을 보냈습니다. 그는 정당한 법적 권리를 지니고 있었고, CraftBukkit과 그 파생(Spigot과 Cauldron 등) 프로젝트의 소스 코드뿐만 아니라 서버 프로그램 다운로드도 더 이상 공개적으로 사용할 수 없게 됐습니다. 이게 Sponge 개발에 왜 영향을 줬는지 이유를 알고 싶으시다면, Sponge의 역사 를 참고해주세요.
Sponge로 Bukkit 플러그인을 사용할 수 있나요?
안 됩니다. 앞으로도 Bukkit 플러그인을 Sponge에서 실행시킬 수 있게 할 계획도 없습니다. Sponge는 자체적으로 개발한 SpongeAPI를 사용하며, Bukkit은 Bukkit API를 사용합니다. 여러 커뮤니티에서 Bukkit API를 Sponge에서 사용하게끔 시도했었지만 API 설계 차이 때문에 빈번히 실패했습니다. Sponge에 기능이 없거나 서버에 필요한 플러그인을 찾지 못 하셨다면 `포럼 <https://forums.spongepowered.org/>`_에 문의를 하는 것도 하나의 방법입니다.
서버 운영자를 위해
저는 서버 운영자인데, Sponge로 서버를 이전하면 무엇이 일어나나요?
Forge 서버를 운영하고 계시다면 SpongeForge를 다운로드하여 mods 폴더에 넣으세요. 이렇게 하면 기존 Forge 서버처럼 정상적으로 구동될 것입니다.
Forge가 아닌 서버들은 위와 달리 SpongeVanilla를 선택해서 사용할 수 있습니다. SpongeVanilla는 Forge에 의존하지 않기 때문입니다. 참고로 Sponge 문서에는 Bukkit 또는 Canary 서버에서 Sponge 서버로 이전할 수 있는 튜토리얼을 제공합니다. 또 Bukkit 커뮤니티에서 온 많은 개발자들이 이미 그들의 프로젝트(서버 모드)를 Sponge 서버와 연동되도록 작업했거나, Sponge와 호환시킬 계획을 세우고 있습니다.
월드는 유지됩니다. 하지만 플러그인의 데이터는 플러그인 개발자가 변환 프로그램을 만들어 주어야 합니다. 몇몇 플러그인 개발자는 변환 작업을 해주지 않으니 참고해주세요.
이와 관련하여 Sponge는 Sponge 서버에서 Bukkit 플러그인을 지원하지 않을 것입니다.
제 서버를 Sponge로 이전하려고 하는데, 플레이어에게는 어떤 영향을 끼치게 될까요?
Sponge로 이전하는 것이 플레이어에게 영향을 끼치지는 않으며, (서버 관리자가) 올바르게 변환 작업을 한다면 플레이어는 이전하기 전과 동일한 방법으로 서버에 접속할 수 있습니다. Sponge가 Forge에 기반하기는 하지만 Forge 모드를 사용하지 않는다면 플레이어가 서버에 접속하기 위해 따로 Forge를 설치할 필요는 없습니다.
개발자를 위해
Sponge로 무엇을 할 수 있나요?
Sponge는 플러그인 API를 제공합니다. 이 말은 새로운 컨텐츠나 게임 모드를 만들 수 있다는 겁니다. 플러그인 개발하기 를 보고 시작해 보세요.
Sponge로 무엇을 할 수 없나요? / Sponge에 한계가 있나요?
Sponge는 클라이언트 측에서 새 블록, 텍스처, 몹 또는 클라이언트 측 수정이 필요한 다른 콘텐츠를 만드는 데 사용할 수 없습니다. SpongeAPI는 보안 문제로 클라이언트에 모드나 플러그인을 보내는 것을 지원하지 않지만, 클라이언트용 ForgeAPI를 사용하거니 서버용 Sponge 플러그인을 만들 수 있습니다. 심지어 클라이언트 측에서 Sponge를 사용할 수도 있지만 몇몇 작업은 여전히 모드가 필요합니다.
저는 Bukkit 플러그인 개발자입니다. 왜 Sponge는 Bukkit API를 사용할 수 없나요?
Bukkit API는 GPL 라이선스를 따르는 코드를 포함하고 있었는데, 이것이 2014년 9월에 발생한 DMCA Takedown과 이로 인한 프로젝트 중단의 주된 원인이었습니다. 이 점을 고려하여 Sponge는 더욱 개방적인 MIT 라이선스를 따르는 새로운 API를 통해 Bukkit이 안고 있던 여러 문제를 해결하였습니다. 물론 코드를 소유하고 있는 Mojang의 간섭으로부터 자유로워지는 것은 아닙니다만, 우리는 Mojang이 앞으로도 개발을 지원해 줄 것이라고 믿고 있습니다.
플러그인에서 서버 프로그램 내부에 접근할 수 있나요?
(CraftBukkit에서 “NMS”나 “net.minecraft.server”로 알려져 있는) 서버 프로그램 내부는 많은 필드와 메소드가 난독화된 MCP를 통해 접근할 수 있습니다. 하지만 서버 프로그램에 직접 접근하는 것은 플러그인이 충돌할 위험이 있으니 주의해야 합니다 - 선택은 당신의 몫입니다.
플러그인에서 MCP에 접근하는 방법에 대한 소개는 구현 의존 플러그인 를 참고해주세요.