
Minecraft dnes patrí k najpopulárnejším sieťovým hrám. Za necelé tri roky (prvý oficiálny release sa uskutočnil na jeseň 2011) získal milióny fanúšikov po celom svete.
Vývojári hry sa zámerne orientujú na najlepšie vzory spred dvadsiatich rokov, keď boli mnohé hry podľa dnešných merítok primitívne z pohľadu grafiky a nedokonalé z pohľadu použiteľnosti, ale predsa len skutočne pohlcujúce.
Rovnako ako všetky hry typu sandbox, Minecraft ponúka hráčovi obrovské možnosti na kreativitu – v tom spočíva hlavné tajomstvo jeho popularity.
Organizácia serverov pre hru v multiplayerovom režime spadá na plecia samotných hráčov a ich komunít. Dnes v internete funguje desiatky tisíc herných serverov (pozrite si napríklad zoznam tu).
Nemálo fanúšikov tejto hry je aj medzi našimi klientmi, ktorí si prenajímajú v našich dátových centrách zariadenia pod herné projekty. V tomto článku vám priblížime, na aké technické aspekty je potrebné zamerať sa pri výbere servera pre
Minecraft.
Výber platformy
Hra Minecraft sa skladá z nasledujúcich architektonických prvkov:
- server – program, ktorý umožňuje hráčom vzájomne interagovať cez sieť;
- klient – program na pripojenie k serveru, inštalovaný na počítači hráča;
- pluginy – doplnky k serveru, ktoré pridávajú nové funkcie alebo rozširujú staré;
- módy – doplnky k hernému svetu (nové bloky, predmety, možnosti).
Pre Minecraft existuje množstvo serverových platforiem. Najrozšírenejšie a najpopulárnejšie sú Vanilla a Bukkit.
Vanilka toto je oficiálna platforma od vývojárov hry. Šíri sa ako v grafickej, tak aj v konzolovej verzii. Nová verzia Vanilla vychádza vždy súčasne s novou verziou Minecraft.
Nevýhodou Vanilla je nadmerná spotreba pamäte (približne 50 MB na jedného hráča). Ďalšou zásadnou nevýhodou je absencia pluginov.
Bukkit bol vyvinutý skupinou nadšencov, ktorí sa snažili vylepšiť oficiálny server Minecraft. Pokus bol celkom úspešný: funkcionalita Bukkit je omnoho širšia ako Vanilla - predovšetkým vďaka podpore rôznych modov a pluginov. Zároveň spotrebuje menej pamäte na každého hráča - približne 5–10 MB.
Nevýhody Bukkit spočívajú v tom, že pri spustení berie príliš veľa operačnej pamäte. Okrem toho, čím dlhšie server beží, tým viac pamäte potrebuje (aj keď je málo hráčov). Pri výbere servera Bukkit by ste mali zohľadniť, že jeho nové verzie zvyčajne obsahujú chyby; stabilná verzia sa zvyčajne objaví približne 2-3 týždne po vydaní oficiálnej verzie Minecraft.
Okrem toho sa v poslednej dobe zvyšuje popularita aj iných platforiem (napríklad Spout, MCPC a MCPC+), ale sú charakterizované obmedzenou kompatibilitou s Vanilla a Bukkit a veľmi obmedzenou podporou modov (napríklad pre Spout je možné písať mody len od nuly). Ak ich už aj použiť, tak len na experimenty.
Na usporiadanie herného servera odporúčame používať platformu Bukkit, pretože sa vyznačuje najväčšou flexibilitou; okrem toho pre ňu existuje množstvo rôznych modov a pluginov. Stabilná práca servera Minecraft do veľkej miery závisí od správneho výberu hardvérovej platformy. Poďme sa na túto tému pozrieť podrobnejšie.
Hardvérové požiadavky
Avšak server a klient Mineсraft sú veľmi náročné na systémové prostriedky.
Pri výbere hardvérovej platformy je potrebné vziať do úvahy, že viacjadrový procesor neposkytne veľké výhody: jadro servera Minecraft môže využívať len jeden výpočtový prúd. Druhé jadro, samozrejme, nebude na škodu: niektoré pluginy sa vykonávajú v samostatných vláknach a Java tiež spotrebuje dosť zdrojov...
Preto pre Minecraft-servera je lepšie vybrať procesor, ktorý má vyšší výkon jedného jadra. Silnejší dvojjadrový procesor bude preferovanejší ako viacjadrový, ale menej výkonný. Na špecializovaných fórach sa odporúča používať procesory s taktom nie nižším ako 3GHz.
Na normálne fungovanie Minecraft servera je potrebné veľké množstvo pamäte RAM. Bukkit zaberá približne 1 GB pamäte RAM; okrem toho na každého hráča, ako už bolo spomenuté vyššie, pripadá od 5 do 10 MB. Pluginy a mody tiež spotrebúvajú dosť veľa pamäte. Pre server so 30–50 hráčmi bude potrebné minimálne 4 GB pamäte RAM.
V Minecraft-e veľa závisí od rýchlosti fungovania súborového systému (napríklad načítavanie tých istých pluginov). Preto je preferované vybrať server s SSD diskom. Hlavné disky pravdepodobne nebudú vyhovovať kvôli nízkej rýchlosti náhodného čítania.
Obrovský význam má aj rýchlosť internetového pripojenia. Pre hru 40–50 osôb úplne postačuje kanál 10 Mb/s. Avšak pre tých, ktorí plánujú väčší Minecraft projekt, ktorý zahŕňa webovú stránku, fórum a dynamickú mapu, je veľmi žiaduce mať kanál s vyššou priepustnosťou.
Akú konkrétnu konfiguráciu je najlepšie zvoliť? Z našich navrhovaných konfigurácií odporúčame venovať pozornosť nasledujúcim:
- Intel Core 2 Duo E8400 3GHz, 6GB RAM, 2×500GB SATA, 3000 rub/m,
- Intel Core 2 Quad Q8300 2.5GHz, 6GB RAM, 2×500GB SATA, 3500 rub/m — túto konfiguráciu používame pre náš testovací server Minecraft, na ktorom si teraz môžete zahrať (ako to urobiť, je uvedené nižšie);
- Intel Core i3-2120 3.3GHz, 8GB RAM, 2×500GB SATA, 3500 rub/m.
Tieto konfigurácie sú úplne vhodné na vytvorenie Minecraft servera pre 30–40 hráčov. Niektorou nevýhodou je absencia SSD diskov, ale dávame iné dôležité výhody: garantovaný kanál 100 Mb/s bez akýchkoľvek obmedzení a pomerov. Pri objednávke všetkých vyššie uvedených konfigurácií nie je účtovaný inštalačný poplatok.
Máme aj výkonnejšie, ale samozrejme aj drahšie servery (pri objednávke týchto konfigurácií sa inštalačný poplatok tiež neúčtuje):
- 2× Intel Xeon 5130, 2GHz, 8GB RAM, 4×160GB SATA, 5000 rub/m;
- 2× Intel Xeon 5504, 2GHz, 12GB RAM, 3×1TB SATA, 9000 rub/m.
Odporúčame tiež venovať pozornosť novej rozpočtovej verzii s SSD diskom na báze procesora Intel Atom C2758: Intel Atom C2758 2.4GHz, 16 GB RAM, 2×240GB SSD, 4000 rub/m, inštalačný poplatok — 3000 rub.
Inštalácia a spustenie servera Bukkit v OS Ubuntu
Predtým, ako nainštalujeme server, vytvoríme nového používateľa a pridáme ho do skupiny sudo:
$ sudo useradd -m -s /bin/bash $ sudo adduser sudo
Ďalej nastavíme heslo, pod ktorým sa vytvorený používateľ prihlási na server:
$ sudo passwd
Znovu sa pripojíme k serveru pod novým účtom a začneme s inštaláciou.
Minecraft je napísaný v Jave, preto je potrebné na server nainštalovať Java Runtime Environment.
Aktualizujeme zoznam dostupných balíkov:
$ sudo apt-get update
Potom spustíme nasledujúci príkaz:
$ sudo apt-get install default-jdk
Na inštaláciu a spustenie Bukkit je tiež vhodné nainštalovať terminálový multiplexor — napríklad screen (môžete použiť aj iné terminálové multiplexory — pozrite si našu prehľad):
$ sudo apt-get install screen
Screen bude potrebný, ak sa budeme pripájať k hernému serveru cez ssh. S jeho pomocou môžeme spustiť server Minecraft v samostatnom okne terminálu a aj po zatvorení klienta ssh server bude fungovať.
Vytvoríme adresár, v ktorom sa budú uchovávať súbory servera:
$ mkdir bukkit $ cd bukkit
Potom prejdeme na stránku sťahovania oficiálneho webu Bukkit. V pravom hornom rohu stránky môžete vidieť odkaz na poslednú odporúčanú verziu servera (recommended build). Odporúčame stiahnuť práve tú:
$ wget
Teraz spustíme screen:
$ sudo screen
a vykonáme nasledujúci príkaz:
$ java -Xmx1024M -jar craftbukkit.jar -o false
Vysvetlíme, čo znamenajú použité parametre:
- Xmx1024M — maximálne množstvo operačnej pamäte na serveri;
- jar craftbukkit.jar — cesta k serveru;
- o false — povolí prístup k serveru z pirátskych klientov.
Server bude spustený.
Server môžete zastaviť zadaním príkazu stop v konzole.
Nastavenie a konfigurácia servera
Nastavenia servera sú uložené v konfiguračnom súbore server.properties. Obsahuje nasledujúce parametre:
- generator-settings — určuje vzor generovania superplochého sveta;
- allow-nether — určuje možnosť prechodu do Netheru. Predvolene má tento parameter hodnotu true. Ak je nastavená hodnota false, všetci hráči z Netheru budú presunutí do normálneho sveta;
- level-name — názov priečinka s súbormi mapy, ktorý sa bude používať počas hry. Priečinok sa nachádza v tej istej adresári, kde sú súbory servera. Ak takáto adresa neexistuje, server automaticky vytvorí nový svet a umiestni ho do priečinka so tým istým menom;
- enable-query — nastavením hodnoty true aktivuje protokol GameSpy4 na počúvanie servera;
- allow-flight — povoľuje lety vo svete Minecraft. Predvolene má hodnotu false (lety sú zakázané);
- server-port — určuje port, ktorý bude používať herný server. Štandardný port pre Minecraft je 25565. Zmenu tejto hodnoty sa neodporúča;
- level-type — určuje typ sveta (DEFAULT/FLAT/LARGEBIOMES);
- enable-rcon — otvára vzdialený prístup k konzole servera. Predvolene je vypnutý (false);
- level-seed — vstupné údaje pre generátor úrovní. Aby ste mohli vytvárať náhodné svety, toto pole by malo zostať prázdne;
- force-gamemode — nastavuje štandardný herný režim pre hráčov pripojených na server;
- server-ip — uvádza IP adresu, ktorú budú používať hráči na pripojenie k serveru;
- max-build-height — uvádza maximálnu výšku stavby na serveri. Jeho hodnota by mala byť celé číslo, ktoré je násobkom 16 (64, 96, 256 atď.);
- spawn-npcs — povoľuje (ak je nastavené na true) alebo zakazuje (ak je nastavené na false) objavovanie NPC v dedinách;
- white-list — zapína a vypína používanie bieleho zoznamu hráčov na serveri. Ak je nastavené na true, administrátor môže vytvoriť biely zoznam manuálnym pridávaním nickov hráčov. Ak je však nastavené na false, na server môže vstúpiť akýkoľvek používateľ, ktorý pozná jeho IP adresu a port;
- spawn-animals — povoľuje automatické objavovanie priateľských mobov, ak je nastavené na true);
- snooper-enabled — povoľuje serveru posielať štatistiky a údaje vývojárom;
- hardcore — zapína na serveri režim Hardcore;
- texture-pac — súbor textúr, ktorý sa bude používať pri pripojení hráča na server. Ako hodnotu tohto parametra sa uvádza názov zip archívu s textúrami, ktorý sa nachádza v tej istej adresári, ako server;
- online-mode — zapína kontrolu prémiových účtov používateľov, ktorí sa pripájajú na server. Ak je táto voľba nastavená na true, na server môžu vstúpiť iba vlastníci prémiových účtov. Ak je kontrola účtov vypnutá (nastavené na false), na server môžu vstúpiť všetci používatelia (vrátane napríklad hráčov, ktorí falšujú prezývky), čo predstavuje dodatočné bezpečnostné riziká. Pri vypnutej kontrole je možné hrať Minecraft v lokálnej sieti, bez prístupu na Internet;
- pvp — povoľuje alebo zakazuje hráčom bojovať navzájom. Ak je táto voľba nastavená na true, hráči sa môžu navzájom zničiť. Ak je nastavené na false, hráči nemôžu spôsobovať si navzájom priame škody;
- difficulty — určuje úroveň obtiažnosti hry. Môže nadobúdať hodnoty od 0 (najľahšie) po 3 (najťažšie);
- gamemode — určuje, aký herný mód bude nastavený pre hráčov, ktorí vstúpia na server. Môže nadobúdať nasledujúce hodnoty: 0 — Survival, 1 — Creative, 2 — Adventure;
- player-idle-timeout — čas nečinnosti (v minútach), po uplynutí ktorého sa hráči automaticky odpoja od servera;
- max-players — maximálny povolený počet hráčov na serveri (od 0 do 999);
- spawn-monsters — povoľuje (ak je nastavené na true) vznik nepriateľských mobov;
- generate-structures — zapína (true) / vypína (false) generovanie štruktúr (pokladnice, pevnosti, dediny);
- view-distance — reguluje polomer aktualizovaných chunkov pre odosielanie hráčovi; môže nadobúdať hodnoty od 3 do 15.
Logy servera Minecraft sa zapisujú do súboru server.log. Ten sa nachádza v tej istej zložke ako súbory servera. Log neustále rastie na veľkosti, pričom zaberá čoraz viac a viac diskového priestoru. Chod mechanizmu logovania je možné usporiadať pomocou takzvanej rotácie logov. Na rotáciu sa používa špeciálny nástroj — logrotate. Ten obmedzuje počet záznamov v logu na určený limit.
Je možné nastaviť rotáciu logov tak, aby sa všetky záznamy odstránili, akonáhle súbor logu dosiahne určitú veľkosť. Možno tiež nastaviť termín, po uplynutí ktorého budú všetky staré záznamy považované za neaktuálne a odstránené.
Hlavné nastavenia rotácie sa nachádzajú v súbore /etc/logrotate.conf; okrem toho je možné pre každú aplikáciu vytvoriť individuálne nastavenia. Súbory s individuálnymi nastaveniami sa ukladajú v adresári /etc/logrotate.d.
Vytvoríme textový súbor /etc/logrotate.d/craftbukkit a zapíšeme do neho nasledujúce parametre:
/home/craftbukkit/server.log {
rotate 2
weekly
compress
missingok
notifempty
}
Pozrime sa na ich hodnoty podrobnejšie:
- parametr rotate určuje počet rotácií pred odstránením súboru;
- weekly určuje, že rotácia sa bude vykonávať týždenne (je možné nastaviť aj iné parametre: monthly - mesačne a daily - denne);
- compress určuje, že archívne logy treba komprimovať (opačná možnosť je nocompress);
- missingok určuje, že v prípade absence logu je potrebné pokračovať v práci a nezobrazovať chybové správy;
- notifempty určuje, aby sa s logom nepohybovalo, ak je prázdny.
Podrobnejšie informácie o nastaveniach rotácie logov si môžete prečítať tu.
Tipy na optimalizáciu
Hneď na úvod si povedzme, že v tejto sekcii budú uvedené tipy, ktoré sa týkajú len optimalizácie herného servera. Otázky jemného ladenia a optimalizácie servera, na ktorom je nainštalovaný Minecraft, sú samostatnou témou, ktorá presahuje rámec tohto článku; zainteresovaní čitatelia si bez problémov môžu nájsť potrebné informácie na internete.
Jedným z najbežnejších problémov, ktoré sa vyskytujú pri hraní Minecraftu, sú tzv. lagy - situácie, keď program včas nereaguje na používateľský vstup. Môžu byť spôsobené problémami na strane klienta i servera. Nižšie uvedieme odporúčania, ktoré pomôžu znížiť pravdepodobnosť vzniku problémov na strane servera.
Pravidelne kontrolujte spotrebu pamäte serverom a pluginmi
Spotrebu pamäte je možné sledovať pomocou špecializovaných administratívnych pluginov - napríklad, LagMeter.
Sledujte aktualizácie pluginov
Vo všeobecnosti sa vývojári nových pluginov s každou novou verziou snažia znížiť záťaž.
Snažte sa nepoužívať množstvo pluginov so podobnou funkčnosťou
Veľké pluginy (napríklad Essentials, AdminCMD, CommandBook) často obsahujú funkčnosť mnohých menších pluginov. Napríklad ten istý Essential obsahuje funkcie pluginov iConomy, uHome, OpenInv, VanishNoPacket, Kit. Menšie pluginy, ktorých funkčnosť je úplne pokrytá funkčnosťou jedného veľkého, je vo väčšine prípadov možné odstrániť, aby sa server nezaťažoval.
Obmedzte mapu a načítavajte ju sami.
Ak mapu neobmedzíte, záťaž na server sa podstatne zvýši. Mapu je možné obmedziť pomocou pluginu. WorldBorder. Na to je potrebné spustiť tento plugin a vykonať príkaz /wb 200, a potom vyplniť mapu pomocou príkazu /wb fill.
Vyplnenie mapy samozrejme zaberie nejaký čas, ale je lepšie to spraviť raz, keď je server uzatvorený na technické práce. Ak bude mapu vyplňovať každý hráč, server bude pracovať pomaly.
Nahradte náročné pluginy rýchlejšími a menej náročnými.
Nie všetky pluginy pre Minecraft môžeme nazvať úspešnými: často obsahujú veľa zbytočných a nepotrebných funkcií a niekedy aj spotrebúvajú veľa pamäte. Neúspešné pluginy je lepšie nahradiť alternatívami (existuje ich dosť veľa). Napríklad plugin LWC môžeme nahradiť pluginmi Wgfix+MachineGuard, a plugin DynMap môžeme nahradiť Minecraft Overviewer.
Vždy čistejte drop alebo nainštalujte plugin na automatické odstraňovanie dropov.
Dropom v hrách sú predmety, ktoré vypadávajú pri smrti mobov alebo zničení niektorých blokov. Uloženie a spracovanie dropov spotrebúva veľmi veľa systémových zdrojov.
Aby server pracoval rýchlejšie, je preferované odstraňovanie dropov. To je najlepšie robiť pomocou špeciálnych pluginov – napríklad NoLagg alebo McClean.
Nepoužívajte anticheaty.
Na herných serveroch sú často inštalované takzvané anticheaty – programy, ktoré blokujú pokusy manipulovať s hrou nespravodlivými spôsobmi.
Existujú anticheaty aj pre Minecraft. Každý anticheat vždy predstavuje dodatočnú záťaž na server. Preferovateľnejšie je inštalovať ochrany pre launcher (ktoré však, pravdaže, neposkytujú absolútnu záruku bezpečnosti a ľahko sa prelomia – ale to už je téma na samostatný rozhovor) a pre klienta.
Na záver
Akékoľvek pokyny a odporúčania sú oveľa efektívnejšie, ak sú podložené konkrétnymi príkladmi. Na základe vyššie uvedených inštrukcií na inštaláciu sme vytvorili náš server MineCraft a umiestnili na mapu niečo zaujímavé.
Tu je, čo sa nám podarilo:
- Server Bukkit – stabilná odporúčaná verzia 1.6.4;
- Plugin Statistics – pre zbieranie štatistík o hráčoch;
- Plugin WorldBorder – na vykreslenie a obmedzenie mapy;
- Plugin WorldGuard (+WorldEdit ako závislosť) – na ochranu vybraných oblastí.
Pozývame všetkých záujemcov hrať na ňom: na pripojenie pridajte nový server a zadajte adresu mncrft.slc.tl.
Budeme radi, ak sa v komentároch podelíte o svoje skúsenosti s inštaláciou, nastavením a optimalizáciou serverov MineCraft a povieme, aké mody a pluginy vás zaujímajú a prečo.
Skvelá správa: Od 1. augusta bol inštalačný poplatok za dedikované servery s pevným konfiguračným nastavením znížený o 50%. Teraz jednorazový inštalačný poplatok predstavuje len 3000 rubľov.
Čitateľov, ktorí tu nemôžu zanechať komentáre, pozývame k nám do blog.
Zdroj: habr.com
