Vytváření a nastavení Minecraft serveru

Vytváření a nastavení Minecraft serveru

Minecraft patří dnes mezi nejpopulárnější síťové hry. Za necelé tři roky (první oficiální vydání se uskutečnilo na podzim 2011) si získal miliony fanoušků po celém světě.

Vývojáři hry se vědomě zaměřují na nejlepší vzory dvacetileté historie, kdy mnohé hry byly z dnešního pohledu primitivní z hlediska grafiky a nedokonalé z hlediska použitelnosti, ale přesto - skutečně uchvacující.

Jako všechny hry se sandboxovým prvkem, Minecraft uživateli poskytuje obrovské možnosti pro kreativitu - v tom je vlastně hlavní tajemství jeho popularity.

Organizací serverů pro hru v multiplayerovém režimu se zabývají sami hráči a jejich komunity. Dnes na internetu funguje desítky tisíc herních serverů (viz například seznam zde).

Mnoho fanoušků této hry máme i mezi našimi klienty, kteří si pronajímají v našich datových centrech zařízení pro herní projekty. V tomto článku se podíváme na to, na jaké technické aspekty je třeba se zaměřit při výběru serveru pro
Minecraft.

Vybereme platformu

Hra Minecraft obsahuje následující architektonické prvky:

  1. server - program, pomocí kterého hráči vzájemně komunikují přes síť;
  2. klient - program pro připojení k serveru, nainstalovaný na počítači hráče;
  3. pluginy - příslušenství k serveru, které přidávají nové funkce nebo rozšiřují stávající;
  4. módy - příslušenství k hernímu světu (nové bloky, předměty, možnosti).

Pro Minecraft existuje mnoho serverových platforem. Nejpoužívanější a nejpopulárnější jsou Vanilla a Bukkit.

Vanilla je oficiální platforma od vývojářů hry. Je k dispozici jak v grafické, tak v konzolové verzi. Nová verze Vanilla vychází vždy současně s novou verzí Minecraft.

Nevýhodou Vanilla je nadměrná spotřeba paměti (přibližně 50 MB na jednoho hráče). Dalším podstatným nedostatkem je absence pluginů.

Bukkit byla vytvořena skupinou nadšenců, kteří se pokusili vylepšit oficiální server Minecraft. Pokus se ukázal jako úspěšný: z funkčnosti je Bukkit mnohem širší než Vanilla – především díky podpoře různých módů a pluginů. Navíc spotřebovává méně paměti na každého hráče – přibližně 5–10 MB.

Nevýhody Bukkitu spočívají v tom, že při spuštění zabírá příliš mnoho operační paměti. Dále, čím déle server běží, tím více paměti potřebuje (i když je málo hráčů). Pokud vyberete jako server Bukkit, mějte na paměti, že nové verze obvykle obsahují chyby; stabilní verze se obvykle objeví přibližně 2–3 týdny po vydání oficiální verze Minecraft.

Kromě toho v poslední době získávají popularitu i další platformy (například Spout, MCPC a MCPC+), ale mají omezenou kompatibilitu s Vanilla a Bukkit a velmi omezenou podporu módů (například pro Spout můžete psát módy pouze od nuly). Pokud je budete používat – pak pouze pro experimenty.

Pro organizaci herního serveru doporučujeme používat platformu Bukkit, protože se vyznačuje nejvyšší flexibilitou; navíc pro ni existuje mnoho různých módů a pluginů. Stabilní fungování serveru Minecraft do značné míry závisí na správném výběru hardwarové platformy. Podívejme se na tuto otázku podrobněji.

Hardwarové požadavky

Jak server, tak klient Minecraftu jsou velmi náročné na systémové zdroje.
Při výběru hardwarové platformy je třeba mít na paměti, že vícejádrový procesor velké výhody nepřinese: jádro serveru Minecraft může využít pouze jeden výpočetní proces. Druhé jádro, nicméně, nebude na škodu: některé pluginy běží na samostatných vláknech, a Java také spotřebovává nemálo zdrojů…

Proto pro Minecraft-serveru je lepší vybírat procesor, jehož výkon jednoho jádra je vyšší. Výkonnější dvoujádrový procesor bude preferovatelnější než vícejádrový, ale méně výkonný. Na specializovaných fórech se doporučuje používat procesory s taktovacím frekvencí minimálně 3 GHz.

Pro normální fungování serveru Minecraft je potřeba velké množství operační paměti. Bukkit zabírá přibližně 1 GB operační paměti; navíc je pro každého hráče, jak již bylo uvedeno, přiděleno 5 až 10 MB. Pluginy a mody také spotřebovávají poměrně hodně paměti. Pro server s 30 až 50 hráči je tedy potřeba alespoň 4 GB operační paměti.

V Minecraftu závisí mnoho věcí (např. načítání těchto pluginů) na rychlosti práce souborového systému. Proto je lepší vybírat server s SSD diskem. Hlavní disky pravděpodobně nebudou vhodné kvůli nízké rychlosti náhodného čtení.

Obrovský význam má také rychlost internetového připojení. Pro hru 40-50 lidí bude plně stačit kanál 10 Mb/s. Nicméně ti, kteří plánují větší projekt v Minecraftu zahrnující web, fórum a dynamickou mapu, by měli mít kanál s vyšší propustností.

Jakou konkrétní konfiguraci je nejlepší vybrat? Z námi nabízených konfigurací doporučujeme věnovat pozornost následujícím:

  • Intel Core 2 Duo E8400 3 GHz, 6 GB RAM, 2×500 GB SATA, 3000 Kč/měs.;
  • Intel Core 2 Quad Q8300 2.5 GHz, 6 GB RAM, 2×500 GB SATA, 3500 Kč/měs. — tuto konfiguraci používáme pro náš testovací server MineCraft, na kterém si můžete hrát (jak to udělat je popsáno níže);
  • Intel Core i3-2120 3.3 GHz, 8 GB RAM, 2×500 GB SATA, 3500 Kč/měs.

Tyto konfigurace jsou zcela vhodné pro vytvoření serveru Minecraft pro 30-40 hráčů. Některou nevýhodou je absence SSD disků, ale nabízíme jinou důležitou výhodu: zaručený kanál 100 Mb/s bez jakýchkoli omezení a podmínek. Při objednávce všech výše uvedených konfigurací není účtován instalační poplatek.

Máme i výkonnější, ale samozřejmě dražší servery (při objednání těchto konfigurací také není účtován instalační poplatek):

  • 2× Intel Xeon 5130, 2 GHz, 8 GB RAM, 4×160 GB SATA, 5000 Kč/měs.;
  • 2× Intel Xeon 5504, 2 GHz, 12 GB RAM, 3×1 TB SATA, 9000 Kč/měs.

Doporučujeme také věnovat pozornost nové rozpočtové verzi se SSD diskem na bázi procesoru Intel Atom C2758: Intel Atom C2758 2.4 GHz, 16 GB RAM, 2×240 GB SSD, 4000 Kč/měs., instalační poplatek — 3000 Kč.

Instalace a spuštění serveru Bukkit v OS Ubuntu

Než nainstalujeme server, vytvoříme nového uživatele a přidáme ho do skupiny sudo:

$ sudo useradd -m -s /bin/bash 
$ sudo adduser  sudo

Dále nastavíme heslo, pod kterým se nově vytvořený uživatel připojí k serveru:

$ sudo passwd 

Znovu se připojíme k serveru pod novým účtem a začneme s instalací.
Minecraft je napsán v Javě, proto je nutné na serveru nainstalovat Java Runtime Environment.

Aktualizujeme seznam dostupných balíčků:

$ sudo apt-get update

Poté provedeme následující příkaz:

$ sudo apt-get install default-jdk

Pro instalaci a spuštění Bukkit je také doporučeno nainstalovat terminový multiplexor – například screen (lze použít i jiné terminové multiplexory – viz náš přehled):

$ sudo apt-get install screen

Screen bude potřebný, pokud se k hernímu serveru budeme připojovat přes ssh. S jeho pomocí lze spustit server Minecraft v samostatném okně terminálu, a i po zavření klienta ssh bude server pokračovat v běhu.

Vytvoříme adresář, ve kterém budou uchovány soubory serveru:

$ mkdir bukkit
$ cd bukkit

Poté přejdeme na stránku pro stahování oficiálního webu Bukkit. V pravém horním rohu stránky můžete vidět odkaz na poslední doporučenou verzi serveru (recommended build). Doporučujeme stahovat právě tuto:

$ wget

Nyní spustíme screen:

$ sudo screen

a provedeme následující příkaz:

$ java -Xmx1024M -jar craftbukkit.jar -o false

Vysvětlíme, co jednotlivé parametry znamenají:

  • Xmx1024M - maximální množství operační paměti na serveru;
  • jar craftbukkit.jar - cesta k serveru;
  • o false - povoluje přístup na server z pirátských klientů.

Server bude spuštěn.
Server lze zastavit zadáním příkazu stop v konzole.

Nastavení a konfigurace serveru

Nastavení serveru jsou uložena v konfiguračním souboru server.properties. Obsahuje následující parametry:

  • generator-settings - určuje šablonu generace superplochého světa;
  • allow-nether - určuje možnost přechodu do Dolního světa. Výchozí hodnota pro tento parametr je true. Pokud je nastavena hodnota false, všichni hráči z Dolního světa budou přesunuti do obyčejného světa;
  • level-name — název složky s mapovými soubory, která bude použita během hry. Složka se nachází ve stejné adresáři jako soubory serveru. Pokud taková adresář neexistuje, server automaticky vytvoří nový svět a umístí ho do adresáře se stejným názvem;
  • enable-query — při nastavené hodnotě true aktivuje protokol GameSpy4 pro naslouchání serveru;
  • allow-flight — povoluje lety ve světě Minecraftu. Ve výchozím nastavení je nastavena na false (lety nejsou povoleny);
  • server-port — určuje port, který bude používán herním serverem. Standardní port pro Minecraft je 25565. Změnu této hodnoty se nedoporučuje;
  • level-type — určuje typ světa (DEFAULT / FLAT / LARGEBIOMES);
  • enable-rcon — otevírá vzdálený přístup k konzoli serveru. Ve výchozím nastavení je vypnut (false);
  • level-seed — vstupní data pro generátor úrovní. Pro možnost vytváření náhodných světů je třeba toto pole nechat prázdné;
  • force-gamemode — nastavuje standardní herní mód pro hráče připojující se k serveru;
  • server-ip — určuje IP adresu, která bude používána hráči pro připojení k serveru;
  • max-build-height — určuje maximální výšku stavby na serveru. Jeho hodnota by měla být číslo dělitelné 16 (64, 96, 256 atd.);
  • spawn-npcs — povoluje (pokud je nastavena hodnota true) nebo zakazuje (pokud je nastavena hodnota false) výskyt NPC ve vesnicích;
  • white-list — zapíná a vypíná používání bílého seznamu hráčů na serveru. Pokud je nastavena hodnota true, může administrator vytvářet bílý seznam přidáváním hráčských jmen ručně. Pokud je nastavena hodnota false, může se na server připojit jakýkoli uživatel, který zná jeho IP adresu a port;
  • spawn-animals — povoluje automatické objevování přátelských mobů, pokud je nastavena hodnota true);
  • snooper-enabled — povoluje serveru zasílat statistiky a data vývojářům;
  • hardcore — zapíná na serveru režim Hardcore;
  • texture-pack — soubor textur, který bude používán při připojení hráče k serveru. Jako hodnota tohoto parametru je uvedeno jméno zip archivu s texturami, který se nachází ve stejné adresáři jako server;
  • online-mode — zapíná kontrolu prémiových účtů uživatelů, kteří se připojují k serveru. Pokud je tato možnost nastavena na true, mohou na server vstoupit pouze vlastníci prémiových účtů. Pokud je kontrola účtů vypnuta (nastaveno na false), mohou na server vstoupit všichni uživatelé (včetně například hráčů, kteří podvádějí s přezdívkami), což vytváří dodatečná bezpečnostní rizika. Při vypnuté kontrole lze hrát Minecraft v lokální síti, bez přístupu k Internetu.
  • pvp — povoluje nebo zakazuje hráčům bojovat mezi sebou. Pokud je tato volba nastavena na true, mohou se hráči navzájem ničit. Pokud je nastavena na false, hráči nemohou způsobit vzájemné poškození.
  • difficulty — nastavuje úroveň obtížnosti hry. Může nabývat hodnot od 0 (nejjednodušší) do 3 (nejtěžší).
  • gamemode — určuje, jaký herní režim bude nastaven pro hráče, kteří vstoupí na server. Může nabývat následujících hodnot: 0 — Survival, 1 — Creative, 2 — Adventure.
  • player-idle-timeout — doba nečinnosti (v minutách), po jejímž uplynutí se hráči automaticky odpojí od serveru.
  • max-players — maximální povolený počet hráčů na serveru (od 0 do 999).
  • spawn-monsters — povoluje (pokud je nastavena hodnota true) spawnování nepřátelských mobů.
  • generate-structures — zapíná (true) / vypíná (false) generování struktur (pokladnice, pevnosti, vesnice).
  • view-distance — reguluje radius aktualizovaných chunků pro zasílání hráči; může nabývat hodnot od 3 do 15.

Logy serveru Minecraft se zapisují do souboru server.log. Ten se ukládá ve stejné složce jako soubory serveru. Log se neustále zvětšuje a zabírá stále více a více diskového prostoru. Práci mechanismu logování lze uspořádat pomocí tzv. rotace logů. K rotaci se používá speciální utilita — logrotate. Ta omezuje počet záznamů v logu na určitý limit.

Rotaci logů lze nastavit tak, aby se všechny záznamy odstranily, jakmile dosáhne soubor logu určité velikosti. Lze také stanovit lhůtu, po jejímž uplynutí budou všechny staré záznamy považovány za neaktualní a odstraněny.

Hlavní nastavení rotace se nacházejí v souboru /etc/logrotate.conf; navíc lze pro každou aplikaci vytvářet individuální nastavení. Soubor s individuálními nastaveními se ukládá do adresáře /etc/logrotate.d.

Vytvoříme textový soubor /etc/logrotate.d/craftbukkit a zapíšeme do něj následující parametry:

/home/craftbukkit/server.log {
  rotate 2
  weekly
  compress
  missingok
  notifempty
}

Podívejme se na jejich hodnoty podrobněji:

  • parametr rotate určuje počet rotací před smazáním souboru;
  • weekly určuje, že rotace bude probíhat týdně (lze nastavit i jiné parametry: monthly – měsíčně a daily – denně);
  • compress určuje, že archivační logy je třeba komprimovat (opačná možnost je nocompress);
  • missingok určuje, že v případě absence logu má pokračovat práce a nevyhazovat chybové hlášení;
  • notifempty určuje, že se logový soubor nebude posouvat, pokud je prázdný.

Podrobněji o nastaveních rotace logů si můžete přečíst zde.

Tipy na optimalizaci

Hned na začátek si vyjasníme, že v této části budou uvedeny pouze rady týkající se optimalizace herního serveru. Otázky jemného ladění a optimalizace serveru, na kterém je nainstalován Minecraft, jsou samostatné téma, které přesahuje rámec tohoto článku; zájemci si snadno najdou potřebné informace na Internetu.

Jedním z nejčastěji se vyskytujících problémů při hraní Minecraftu jsou takzvané lagy – situace, kdy program včas nereaguje na uživatelský vstup. Tyto mohou být způsobeny problémy jak na straně klienta, tak i na straně serveru. Níže uvedeme doporučení, která pomohou snížit pravděpodobnost vzniku problémů na serverové straně.

Pravidelně kontrolujte spotřebu paměti serverem a pluginy

Spotřebu paměti můžete sledovat pomocí specializovaných administrativních pluginů – například, LagMeter.

Sledujte aktualizace pluginů

Obecně platí, že vývojáři nových pluginů se s každou novou verzí snaží snížit zátěž.

Snažte se nepoužívat mnoho pluginů se stejnou funkcionalitou

Velké pluginy (například Essentials, AdminCMD, CommandBook) často zahrnují funkčnost mnoha malých pluginů. Například Essentials obsahuje funkce pluginů iConomy, uHome, OpenInv, VanishNoPacket, Kit. Malé pluginy, jejichž funkčnost je plně pokryta funkcionalitou jedné velké, lze ve většině případů odstranit, aby se server nepřeplnil.

Omezi mapu a načtěte ji sami.

Pokud neomezíte mapu, výrazně se zvyšuje zátěž serveru. Mapu lze omezit pomocí pluginu WorldBorder. K tomu je třeba spustit tento plugin a provést příkaz /wb 200, a poté vykreslit mapu pomocí příkazu /wb fill.

Vykreslování samozřejmě zabere nějaký čas, ale je lepší to udělat jednou, kdy je server uzavřen pro technické práce. Pokud bude mapu vykreslovat každý hráč, server bude pracovat pomalu.

Nahraďte těžkopádné pluginy rychlejšími a méně náročnými.

Není mnoho pluginů pro Minecraft, které by se daly nazvat úspěšnými: často obsahují mnoho nadbytečných a nepotřebných funkcí, a někdy také spotřebovávají příliš mnoho paměti. Neúspěšné pluginy je lepší nahradit alternativními (existuje jich docela dost). Například plugin LWC lze nahradit Wgfix+MachineGuard, a plugin DynMap lze nahradit Minecraft Overviewer.

Vždy odstraňujte drops nebo nainstalujte plugin pro automatické odstraňování drops.

Drops ve hrách jsou předměty, které vypadávají při smrti mobů nebo zničení některých bloků. Ukládání a zpracování drops zabírá velmi mnoho systémových zdrojů.

Aby server pracoval rychleji, je lepší drops odstraňovat. To je nejlepší provádět pomocí speciálních pluginů – například NoLagg nebo McClean.

Nepoužívejte anti-cheaty.

Na herních serverech se často instalují takzvané anti-cheaty – programy, které blokují pokusy zasahovat do hry nečestnými způsoby.

Existují anti-cheaty i pro Minecraft. Jakýkoli anti-cheat je vždy dodatečná zátěž na server. Preferuje se instalovat ochranu pro launcher (která však neposkytuje absolutní záruku bezpečnosti a snadno se prolomí – ale to už je téma na jiný rozhovor) a pro klienta.

Na závěr

Jakékoli instrukce a doporučení jsou mnohem účinnější, pokud jsou podložena konkrétními příklady. Na základě výše uvedených pokynů k instalaci jsme vytvořili svůj server MineCraft a umístili na mapu něco zajímavého.

Tady je, co se nám podařilo:

  • Server Bukkit – stabilní doporučená verze 1.6.4;
  • Plugin Statistics – pro shromažďování statistik o hráčích;
  • Plugin WorldBorder – pro vykreslení a omezení mapy;
  • Plugin WorldGuard (+WorldEdit jako závislost) – pro ochranu určitých oblastí.

Zveme všechny zájemce, aby si na něm zahráli: pro připojení přidejte nový server a zadejte adresu mncrft.slc.tl.

Budeme rádi, pokud se v komentářích podělíte o své vlastní zkušenosti s instalací, nastavením a optimalizací serverů MineCraft a povíte nám, jaké mody a pluginy vás zajímají a proč.

Skvělá zpráva: Od 1. srpna byl instalační poplatek za dedikované servery s fixní konfigurací snížen o 50 %. Nyní jednorázový instalační poplatek činí pouze 3000 Kč.

Čtenáře, kteří zde nemohou zanechat komentáře, zveme k nám na blog.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster