Platformy serveru
Jakou platformu používat?
Detailněji jsou konkrétní platformy rozvedeny níže. V této části je zjednodušeně popsáno, jakou platformu nejspíše potřebujete.
Chci čistý Vanilla server
V případě, kdy chcete server s čistou Vanilla zkušeností, nejrozumnější volbou je Fabric s módem Lithium (optimalizační mód, který nemá dopad na Vanilla mechaniky).
Chci na serveru pluginy
V takovém případě chcete Paper, Pufferfish, nebo Purpur. Rozdíly najdete zde. Paper je však téměř jistě vše, co potřebujete. Vyloženě chybu neuděláte, ať zvolíte jakoukoli z těchto tří platforem. Navíc se mezi platformami dá později volně přecházet.
Spigot (a rozhodně ani CraftBukkit) nepoužívejte (pluginy jsou kompatibilní).
Chci na serveru módy
U módovaných platforem záleží na tom, pro jakou platformu jsou módy, které chcete použít, určeny. Pokud však máte možnost volby, měli byste preferovat Fabric namísto Forge, jelikož přináší lepší uživatelskou (i vývojářskou) zkušenost a možnosti optimalizace.
Chci proxy platformu
V dnešní době byste měli používat Velocity.
Chci na serveru pluginy i módy
V takovém případě je nejlepší se bez pluginů obejít. Více se dočtete zde.
Standardní platformy
Vanilla
Vanilla je oficiální a jediná platforma vydávaná Mojangem. Tato platforma se obecně nedoporučuje používat. Jediné komunitní modifikace, které Vanilla podporuje, jsou datapacky. Pluginy či módy na Vanille zprovoznit nelze. Vanilla se nedoporučuje používat ani v případě, kdy uživatel žádné pluginy či módy používat nechce, především z důvodu špatné optimalizace. V případě, kdy chcete používat platformu Vanilla, použijte místo ní platformu Fabric s módem Lithium. Tento mód server optimalizuje bez negativních dopadů na Vanilla mechaniky hry. Hráč žádný mód u sebe nainstalovaný mít nemusí. Připojí se stejně, jako kdyby server běžel na Vanille.
Platformy podporující pluginy
Spigot
Spigot je platforma, která umožnuje běh pluginů (konkrétně Bukkit pluginů, kterými se obecně označení “pluginy” myslí).
Spigot se však nedoporučuje používat, narozdíl od platformy Paper, která je ve všech ohledech lepší, a se Spigot pluginy kompatibilní.
CraftBukkit
Základní platformou podporující Bukkit pluginy je CraftBukkit, nicméně ne každý to ví, tudíž jako “záklád” podporující pluginy je v této knize použiván Spigot, i když funkce může implementovat již samotný CraftBukkit. Správné označení by tak např. mohlo být “CraftBukkit a jeho forky” místo “Spigot a jeho forky”. Nemělo by to však být podstatné. Pokud tedy používáte CraftBukkit (což byste ale rozhodně neměli), vztahuje se to i na Vás.
CraftBukkit vs Bukkit
Někdy si lidé pletou pojmy CraftBukkit a Bukkit. Bukkit je vývojařské API (které umožňuje psaní pluginů). CraftBukkit je pak platforma, samotný server, který toto API implementuje a umožňuje běh pluginů využívající toto API.
Paper
Paper je fork Spigotu (Spigot pluginy jsou tak kompatibilní), který se zaměřuje především na výkon serveru, optimalizace, opravy chyb a zranitelností.
V případě, kdy se nějaká chyba či zranitelnost objeví, Paper bude pravděpodobně jeden z prvních, který tuto chybu či zranitelnost opraví (často i objeví). Optimalizace nejsou zanedbatelné a jsou opravdu znát.
Na Paperu v dnešní době běží většina serverů podporující pluginy viz https://bstats.org/global/bukkit#serverSoftware
Pufferfish
Pufferfish je fork Paperu, který především přidává další optimalizace. Hodí se tak zejména u velkých serverů, které se snaží udržet co nejvíce hráčů, nebo v případě, kdy výkon serveru není dostatečný. V tomto ohledu však není všespásný. Na výkon serveru mají mnohem zásadnější vliv jiné faktory, Pufferfish však může pomoci.
Purpur
Purpur je fork Pufferfishe, který přidává velké množství možností konfigurace řady aspektů hry a nové funkce.
Mezi to spadá například příkaz ping, řízení mobů, AFK systém, TPS bar, silk touch spawnery a mnoho dalšího.
Výkon Purpuru je stejný jako u Pufferfishe, možnosti konfigurace nemají na výkon negativní dopad.
Jaký Spigot fork používat?
Spigot ani CraftBukkit rozhodně nepoužívejte.
U Paperu, Pufferfishe, nebo Purpuru neuděláte výběrem vyloženě chybu u žádného z nich.
Pokud nemáte důvod používat Pufferfish nebo Purpur, je Paper nejideálnější volbou.
Největší nevýhodou používání Pufferfishe nebo Purpuru je to, že v komunitách specifických pro Paper (např. Paper Discord/fórum) nejsou tyto platformy podporovány, tím pádem Vám může být žádost o pomoc odmítnuta čistě z principu.
Dalším faktorem je rychlost vydání nových aktualizací. Jelikož je Purpur fork Pufferfishe, což je fork Paperu, prvně vyjde Paper, poté Pufferfish, a nakonec Purpur, ačkoli aktualizace mezi Pufferfishem a Paperem a Purpurem a Pufferfishem nebývá velká.
Platformy podporující módy (modloadery)
Forge, Fabric a jejich forky
U módovaných platforem se používají zejména dvě platformy, a to Forge a Fabric. Módy na těchto platformách nejsou vzájemně kompatibilní, jedná se o dvě naprosto odlišné platformy.
Jakou z nich využívat tedy záleží na tom, pro jakou platformu jsou módy, které chcete použít, určeny. Pokud však máte možnost volby, měli byste preferovat Fabric namísto Forge, jelikož přináší lepší uživatelskou (i vývojářskou) zkušenost a možnosti optimalizace.
Existují i forky výše zmíněných platforem, jako například Quilt (fork Fabricu) nebo NeoForge (fork Forge).
SpongeForge
SpongeForge ve skutečnosti není platformou, jako ostatní zmíněné v této kapitole, ale přistupuje se k němu tak, i když se jedná pouze o Forge mód.
SpongeForge je jedinou “platformou”, která umožňuje stabilní běh Forge módů a pluginů zároveň. Bohužel však podporuje pouze nějaké verze Minecraftu (Forge).
SpongeForge však neumožňuje běh Bukkit pluginů (= “klasické” pluginy). Pluginy musí podporovat přímo Sponge. Mnoho známých pluginů naštěstí Sponge podporuje. Mezi ně patří například LuckPerms, TAB, SkinsRestorer, LibertyBans a mnoho dalších. U těch, kteří podporu pro Sponge nemají, často naleznete alternativu (např. Nucleus místo EssentialsX).
Instalace SpongeForge a Sponge pluginů
SpongeForge je Forge mód, který se instaluje jako kterýkoli jiný mód, tedy nahráním do složky /mods/ a následným zapnutím/restartem serveru. Po zapnutí/restartu se vytvoří složka /plugins/, se kterou je možné pracovat jako na klasickém Spigot serveru, tj. plugin se nainstaluje nahráním pluginu (.jar souboru) do složky /plugins/ a následým restartem serveru. Konfigurační soubory pluginů se nachází ve složce /plugins/.
Hybridní platformy
Hybridní platforma je platforma, která podporuje zároveň jak módy, tak pluginy.
Forge
Od verze 1.8 do verze 1.16.5 a pro některé novější verze lze pro Forge použít SpongeForge, což je jediná stabilní a doporučená platforma pro běh módů a pluginů zároveň.
U nových verzí existují platformy jako Mohist, Magma a Arclight, který má ze zmíněných variant asi nejlepší reputaci. Tyto platformy se však opravdu nedoporučuje používat, jelikož vše nemusí fungovat jak má, jsou nestabilní, a můžou způsobit řadu problémů. Pokud nelze použít SpongeForge, je nejlepším řešením se hybridním platformám vyvarovat a místo pluginu použít alternativu v podobě módu, která často existuje (např. FTB Essentials místo EssentialsX nebo FTB Chunks/Cadmus místo Residence/Lands/GriefPrevention), a pokud taková varianta neexistuje, tak se bez pluginu obejít.
Pokud budete mít s pluginy na hybridním serveru problémy, je to už čistě Váš problém, pomoc od vývojářů pluginů a podobně neočekávejte.
Pro velmi staré verze (1.7.10) existuje např. KCauldron, Thermos či jeho udržovaný fork Crucible. Stabilita hybridních platforem na takových starých verzích může být lepší, avšak i tak se můžete setkat s problémy.
Pokud Vás více zajímá, proč hybridní servery nepoužívat, a jakou to má příčinu, můžete si přečíst následující články: https://madelinemiller.dev/blog/minecraft-hybrid-servers/ https://madelinemiller.dev/blog/where-is-forge-worldguard/
EssentialsX taktéž napsali článek, proč nepoužívat Mohist: https://essentialsx.net/do-not-use-mohist.html
Fabric
Pro Fabric žádná použitelná hybridní platforma neexistuje. Existují některé módy, jako Banner nebo CardBoard, které se o funkčnost pluginů na Fabricu snaží, ale používat by se neměly (proč se dočtete zde: https://gist.github.com/Patbox/e44844294c358b614d347d369b0fc3bf).
Místo toho je ideální použití alternativ v podobě server-side módů. Jejich velký seznam můžete nalézt zde: https://serverside.infra.link/
Pokud potřebujete poradit s hledání alternativy, můžete se obránit na následující server-side komunity:
- Fabric Server Side Development: https://discord.gg/atSzZ6zMHz
- Patbox’s Discord: https://discord.gg/AbqPPppgrd
- Fabric/Quilt Server Tools: https://discord.gg/p56NJ6kp4u
Nebo módované komunity obecně:
- The Fabric Project: https://discord.gg/v6v4pMv
- The Quilt Community: https://discord.quiltmc.org/
Proxy platformy
Co je to proxy se dočtete zde.
Velocity a BungeeCord (Waterfall) pluginy nejsou vzájemně kompatibilní.
Velocity
Velocity je moderní proxy platforma vyvíjená PaperMC. V dnešní době je Velocity považováno za standard, který by se měl používat. Už před nějakou dobou BungeeCord/Waterfall v počtu uživatelů předběhla, a tak se jedná o nejpoužívanější platformu.
BungeeCord a Waterfall
BungeeCord (a jeho fork Waterfall, který poskytuju určitá vylepšení) byl roky nejpoužívanější proxy platformou proxy platformou, ale jeho popularita upadá, jelikož je Velocity obecně lepší.
Waterfall už ani není aktivně vyvíjen viz https://forums.papermc.io/threads/announcing-the-end-of-life-of-waterfall.1088/.
V dnešní době se tedy BungeeCord/Waterfall postupně přestává používat a nahrazuje jej modernější Velocity, které se doporučuje namísto BungeeCord/Waterfall.
Ostatní platformy
Folia
Folia se od všech ostatních platforem výrazně liší, jelikož funguje jinak, než klasické platformy. Tato platforma je vhodná pro opravdu velké servery s velkým počtem hráčů rozprostřených po velké ploše, jako například u serveru 2b2t.org.
Folia odstraňuje limitující vlastnost klasických Minecraft serverů, kdy hlavní game loop využívá pouze jedno vlákno. Tím pádem je pro Folii vhodný úplně jiný model procesoru, než pro klasické servery.
Pro většinu serverů Folia nedává smysl, a tak se jí vůbec nemusíte zaobírat. Pokud si nejste jisti, zda pro Vás platforma Folia nemá smysl, téměř jistě nemá.
Více se o této platformě můžete dočíst na následujícím odkaze: https://paper-chan.moe/folia/
Ne-Notchian platformy
Výše zmiňované platformy jako Vanilla, Paper či Fabric jsou takzvané Notchian servery. To znamená, že jsou založeny na původním kódu Minecraftu (Vanilly, která je samotná Notchian serverem). Existují však i implementace Minecraft serverů, které neobsahují žádný kód od Mojangu. Takové platformy ani nemusí být napsány v programovacím jazyce Java. Mezi ně patří například Minestom či Valence. Další jich můžete nalézt na následujícím odkaze: https://wiki.vg/Server_List
Žádný z těchto projektů však nedokáže nahradit standardní platformy, jelikož tyto platformy neimplementují řadu Vanilla mechanik a funkcí. Jedná se spíše o “stavební bloky”, z kterých takový server naprogramovat lze, avšak jeho vývoj a udržování by bylo nesmírně náročné. Aktuálně se tak jedná spíše o “hračky”, ale určitá využití mít mohou.
Taktéž existují proxy v různých jazycích, např. Hopper a Gate, přičemž největším problémem jsou chybějící komunitní modifikace. Vlastní vývoj takových proxy platforem nedává smysl, a tak nejsmysluplnější volbou zůstává Velocity.
Mimo jiné dokonce existují i Minecraft klienti napsaní v jiném jazyku, například stevenerella.
Co je fork
Ve světě softwaru je fork software, který dědí a upravuje jiný software. Obecně platí, že fork udržuje aktuálnost s projektem, který dědí.
Nejčastěji se s výrazem “fork” setkáte u platforem podporující pluginy. Na obrázku níže můžete vidět nejznámější forky a jejich účel.
(zdroj: PurpurMC Discord).
Konkrétně z toho zjednodušeně řečeno vyplývá následující - když budete využívat Paper, server bude fungovat stejně, jako na Spigotu (tzn. budou fungovat Spigot pluginy), s přidanými funkcemi od Paperu (v případě Paperu to jsou opravy chyb, optimalizace a podobně). Pufferfish bude mít funkce, jako Paper s nějakými navíc (v případě Pufferfishe zejména další optimalizace). Když server běží na platformě Purpur, stále můžete využít funkce a možnosti nastavení Spigotu, Paperu, i Pufferfishe, s nějakými úpravami/možnostmi navíc (v případě Purpuru se jedná o možnost konfigurace řady aspektů hry viz https://purpurmc.org/docs/purpur/configuration/).
Když vyjde nová aktualizace, Purpur bude z těchto platforem aktualizován jako poslední. Jelikož to jsou forky, prvně musí vyjít Paper, poté Pufferfish, a nakonec až Purpur.
Forky existují i pro jiné platformy, jako Forge. Příkladem může být NeoForge (fork Forge), nebo QuiltMC (hard fork Fabricu).
Jak můžete vidět na obrázku níže, forků může existovat opravdu mnoho.
(zdroj:
https://raw.githubusercontent.com/saboooor/fork-graph/main/img.png)
Spousta z nich však není stabilní. Proto byste měli používat jen “ověřené” forky (což je v případě platforem podporujících pluginy Paper, Pufferfish, nebo Purpur).
Technická poznámka: Základní platformou podporující Bukkit pluginy je CraftBukkit, nicméně ne každý to ví, tudíž je jako “záklád” použit Spigot, i když samotné funkce může implementovat již CraftBukkit. Správné označení by tak např. mohlo být “CraftBukkit a jeho forky” místo “Spigot a jeho forky”. Nemělo by to však být podstatné. Pokud tedy používáte CraftBukkit (což byste ale rozhodně neměli), vztahuje se to i na Váš případ, pokud není uvedeno jinak.
Změna platformy
Změna platformy je standardně jednoduchý proces. Platforma je naprogramovaná v samotném serveru, tedy spouštěcím .jar souboru (standardně server.jar).
Proto v drtivé většině případů stačí serverový soubor nové platformy stáhnout a původní nahradit.
Pro případ, kdy by nastala chyba, nebo byste chtěli akci vrátit, je důležité mít k dispozici zálohu serveru.
Pokud migrujete ze Spigot forku na Vanillu/módovanou platformu, je nutno světy přemigrovat.
Placené forky
Co se týče placených forků, drtivá většina jejich autorů pouze vydělává na neznalosti a marketingu, který vzbudí velká očekávání, ale realita pak bývá jiná a nákup zbytečný.
Některé z nich však smysl dávat mohou, například v určitých situacích na velmi starých verzích (1.8.8), případně na moderní verze existuje fork Pufferfish+, s nímž osobní zkušenost nemám, ale myslím, že narozdíl od forků, nacházející se např. na BuiltByBit, to vyloženě vyhazování peněz pro specifické účely být nemusí.
Co se týče placených proxy forků, pokud nemají funkci, kterou opravdu potřebujete, jejich používání je téměř jistě nesmysl. Pokud chcete moderní, efektivní a bezpečnou proxy, použijte Velocity.