마인크래프트는 기본적으로 모장에서 제공하는 바닐라 서버/클라이언트가 있습니다.
서버계열
초기에 마인크래프트 플러그인을 지원하기 위해서
Bukkit 팀에서 만든 API 명세가 Bukkit API입니다.
Bukkit API의 구현체는 CraftBukkit이랑 Spigot 등이 있습니다.
Bukkit API는 서버만을 위한 API이기 때문에 모드를 지원하지 않습니다.
클라계열
초기 모드들은 클라이언트 디컴파일 방식이었습니다.
코드 수정후에 다시 컴파일 해야 했기 때문에 minecraft.jar 안에 집어넣었죠.
MCP(minecraft coder pack)가 난독화된 바닐라 클라이언트를 디컴파일 시키고 난독화를 푸는 도구입니다.
코드 수정이기 때문에 모드간 충돌이 생길 수 밖에 없었습니다.
그걸 해결 하기 위해 그 후에 몇가지 로더들이 나왔는데... 요건 생략
로더는 가벼워서 지금도 쓰이긴 합니다만,
기능이 부족해서 결국 Forge가 나오게 됩니다.
Forge 는 모드 시스템으로, Forge API를 구현합니다.
Forge 는 버킷과 다르게 서버/클라 모두 존재합니다.
이와중에 양쪽 API를 모두 지원하는게 Cauldron.
CraftBukkit은 한번 타격을 받은후 거의 쇠퇴 분위기이고..
Bukkit 계열은 거의 Spigot으로 넘어갔다 보시면됩니다.
최근에는 새로운 API로 Sponge API가 나오고 있습니다.
API 구현체가 참 많은데요.
Forge API랑 Sponge API 둘다 사용가능한,
Forge 모드로 구현되어 동작하는 SpongeForge(혹은 Sponge)
바닐라 클라/서버에 구현되어 Sponge API만 지원하는 SpongeVanilla
마지막으로 GlowStone이라고 오픈소스 마인크래프트 구현체가 있는데.
바닐라 서버를 오픈소스로 카피하는 프로젝트입니다.
기본적으로 Bukkit API를 쓰며 GlowStone 위에 돌아가는 SpongeAPI 구현체도 예정되어있습니다.
여담으로 Sponge API 가 기대됩니다.
모장의 끔찍한 프로그래밍 실력을 보면...
아예 처음부터 다시 짜는게 나을듯하네요.
댓글의 조롱들.... This is madness! / Literally madness. / nice! Teach me your wisdom great bone!
보면 수준차이가 너무납니다..
여기서 모드/플러그인을 클라/서버로 구분해 썼습니다만..
사실 별 의미 없습니다. 결국 API마다 다른 명칭일뿐 애드온이라고 불러도 상관 없을듯.