Spigotの派生、Paperがビルド不要で実行できる理由
Minecraftの代表的なMODサーバーにSpigotというのがあります。この派生であるサーバー"Paper"をご存知でしょうか。最近はPaperを使用している方も多いと思います。
Spigotを使用するときには、ユーザーがBuildToolsを使用してSpigotをビルドする必要があります。しかしPaperはユーザーがビルドせず、配布されているJARファイルを実行するだけでサーバーが実行できます。なぜ、Spigotの派生であるPaperはビルドが不要なのでしょうか。
そのためにはまず、ユーザーがSpigotをビルドしなければならなくなった理由を知らなければなりません。
ビルドが必要な理由
ユーザーがSpigotでビルドが必要な理由は、著作権です。昔はSpigotは直接配布されていました。しかし、Spigotの元になる「CraftBukkit」が著作権の問題によって直接配布することができなくなり、そのCraftBukkitの派生であるSpigotも影響を受けることになったのです。
そこでSpigotは直接配布せず、ユーザーがBuildToolsを使いサーバーをビルドしてもらうことで、著作権の問題を回避したのです。これが必要な理由です。
詳しくは https://wiki.craftportal.jp/view/DMCA をご覧ください。
Paperがビルド不要な理由
Spigotを使うのにビルドが必要な理由がわかったでしょうか。でも皆さんは、「それならPaperはSpigotの派生なんだから、JARファイルを配布できないんじゃないか。」と思ったのではないでしょうか。そこにはPaper独自の方法がありました。
実は、配布されているJARファイルは「サーバー」本体ではありません。配布されているJARファイルは、Paperが独自開発した"Paperclip"というものです。
簡単に言えば、SpigotとPaperには次の違いがあります。
- Spigot: JARファイルを実行する前にビルドする。
- Paper: JARファイルを実行した後にビルドする。
Paperclip
は、実行されると内部でサーバーをビルドして、そのビルドされたサーバーを使用します。これにより著作権的な問題を回避しているのです。また、そのビルドされたサーバーはcache
ディレクトリに保存され、バージョン変更などがない限り、初回のビルドだけで済むようになっています。
つまり、Paperでもビルドはしているということです。ユーザーが意識的にビルドするかしないかの違いしかないのです。
まとめ
- Spigotは著作権上の問題からサーバー本体を直接配布できなくなった。
- SpigotはユーザーにBuildToolsでビルドしてもらうことでその問題を回避した。
- Paperが配布しているJARファイルは、CraftBukkitなどが含まれたJARファイルではない。
- Paperは実行されたときにビルドすることで著作権上の問題を回避した。
参考
掲載内容は私自身の見解であり、必ずしも所属する企業や組織の立場、戦略、意見を代表するものではありません。
Discussion