
Minecraft Àr idag en av de mest populÀra nÀtspelen. PÄ knappt tre Är (den första officiella lanseringen Àgde rum hösten 2011) har den fÄtt miljoner fans vÀrlden över.
Spelets utvecklare fokuserar medvetet pÄ de bÀsta exemplen frÄn för tjugo Är sedan, nÀr mÄnga spel var primitiva i dagens mÄtt mÀtt nÀr det gÀller grafik och bristfÀlliga ur anvÀndbarhetssynpunkt, men som ÀndÄ verkligen var fÀngslande.
Precis som alla sandlĂ„despel erbjuder Minecraft spelaren enorma möjligheter för kreativitet â detta Ă€r egentligen hemligheten bakom dess popularitet.
Organisationen av servrar för spelet i flerspelarlÀget sköts av enskilda spelare och deras gemenskaper. Idag finns det tiotusentals spelservrar pÄ Internet (se till exempel listan hÀr).
Det finns mÄnga fans av detta spel bland vÄra kunder, och de hyr utrustning för spelprojekt i vÄra datacenter. I den hÀr artikeln kommer vi att berÀtta om vilka tekniska aspekter som Àr viktiga att tÀnka pÄ nÀr man vÀljer en server för
Minecraft.
Val av plattform
I spelet Minecraft ingÄr följande arkitektoniska element:
- server â ett program som gör det möjligt för spelarna att interagera med varandra via nĂ€tverket;
- klient â ett program för att ansluta till servern, installerat pĂ„ spelarens dator;
- plugins â tillĂ€gg till servern som lĂ€gger till nya funktioner eller utökar gamla;
- mods â tillĂ€gg till spelvĂ€rlden (nya block, föremĂ„l, möjligheter).
Det finns mÄnga serverplattformar för Minecraft. De mest utbredda och populÀra Àr Vanilla och Bukkit.
Vanilla Àr den officiella plattformen frÄn spelets utvecklare. Den finns bÄde i grafisk och konsolversion. Den nya versionen av Vanilla slÀpps alltid samtidigt som en ny version av Minecraft.
En nackdel med Vanilla Àr det höga minnesutnyttjandet (ungefÀr 50 MB per spelare). En annan betydande nackdel Àr avsaknaden av plugins.
Bukkit skapades av en grupp entusiaster som försökte förbĂ€ttra den officiella Minecraft-servern. Försöket visade sig vara ganska framgĂ„ngsrikt: funktionalitetsmĂ€ssigt Ă€r Bukkit mycket bredare Ă€n Vanilla, i första hand tack vare stödet för olika mods och plugins. Dessutom förbrukar den mindre minne per spelare â cirka 5â10 MB.
Nackdelarna med Bukkit Ă€r att den tar för mycket RAM-minne vid uppstart. Dessutom, ju lĂ€ngre servern Ă€r igĂ„ng, desto mer minne krĂ€ver den (Ă€ven om det Ă€r fĂ„ spelare). NĂ€r man vĂ€ljer Bukkit som server bör man tĂ€nka pĂ„ att dess nya versioner vanligtvis har buggar; den stabila versionen brukar dyka upp cirka 2â3 veckor efter den officiella Minecraft-versionen.
Dessutom har andra plattformar (till exempel Spout, MCPC och MCPC+) ökat i popularitet pÄ senare tid, men de skiljer sig Ät genom begrÀnsad kompatibilitet med Vanilla och Bukkit samt mycket begrÀnsat stöd för mods (till exempel kan man för Spout bara skriva mods frÄn grunden). Om de ska anvÀndas kan det endast vara för experiment.
För att organisera en spelserver rekommenderar vi att anvÀnda Bukkit-plattformen, eftersom den erbjuder den största flexibiliteten; dessutom finns det mÄnga olika mods och plugins för den. Den stabila driften av en Minecraft-server beror till stor del pÄ rÀtt val av hÄrdvaruplattform. LÄt oss titta nÀrmare pÄ detta.
HÄrdvarukrav
BÄde servern och klienten för Minecraft Àr mycket krÀvande nÀr det kommer till systemresurser.
Vid val av hÄrdvaruplattform bör man tÀnka pÄ att en flerkÀrnig processor inte ger sÄ stora fördelar: Minecraft-serverns kÀrna kan endast anvÀnda en berÀkningsström. Ett andra kÀrna Àr ÀndÄ inte pÄ tok: vissa plugins körs i separata strömmar, och Java krÀver ocksÄ en hel del resurser.
DÀrför för Minecraft-servern Àr det bÀttre att vÀlja en processor med högre prestanda per kÀrna. En kraftfullare tvÄkÀrnig processor kommer att vara mer fördelaktig Àn en flerkÀrnig, men mindre kraftfull. PÄ specialiserade forum rekommenderas processorer med en klockfrekvens pÄ minst 3 GHz.
För att en Minecraft-server ska fungera normalt krĂ€vs det en stor mĂ€ngd RAM-minne. Bukkit tar upp ungefĂ€r 1 GB RAM; dessutom tilldelas mellan 5 och 10 MB per spelare, som nĂ€mnts tidigare. Plugins och mods konsumerar ocksĂ„ en hel del minne. För en server med 30â50 spelare behövs dĂ€rför minst 4 GB RAM.
I Minecraft beror mycket (t.ex. laddning av samma plugins) pÄ hastigheten hos filsystemet. DÀrför Àr det att föredra att vÀlja en server med SSD-disk. Spindeldiskar Àr knappast lÀmpliga pÄ grund av den lÄga hastigheten för random reading.
Den hastighet som internetanslutningen har Ă€r ocksĂ„ av stor betydelse. För spel med 40â50 personer rĂ€cker en 10 Mbit/s-anslutning gott och vĂ€l. För dem som planerar ett mer storskaligt Minecraft-projekt, inklusive webbplats, forum och dynamisk karta, Ă€r det ytterst önskvĂ€rt att ha en anslutning med högre bandbredd.
Vilken specifik konfiguration Àr bÀst att vÀlja? FrÄn de konfigurationer vi erbjuder rekommenderar vi att ni uppmÀrksammar följande:
- Intel Core 2 Duo E8400 3 GHz, 6 GB RAM, 2Ă500 GB SATA, 3000 rub/mĂ„n.;
- Intel Core 2 Quad Q8300 2.5 GHz, 6 GB RAM, 2Ă500 GB SATA, 3500 rub/mĂ„n. â denna konfiguration anvĂ€nder vi för vĂ„r testserver för MineCraft, dĂ€r ni just nu kan spela (hur man gör detta finns skrivet nedan);
- Intel Core i3-2120 3.3 GHz, 8 GB RAM, 2Ă500 GB SATA, 3500 rub/mĂ„n.
Dessa konfigurationer passar bra för att skapa en Minecraft-server med 30â40 spelare. En nackdel Ă€r avsaknaden av SSD-diskar, men vi erbjuder en annan viktig fördel: en garanterad 100 Mbit/s-anslutning utan nĂ„gra begrĂ€nsningar eller kvoter. Vid bestĂ€llning av alla ovanstĂ„ende konfigurationer tas ingen installationsavgift ut.
Vi har Àven mer kraftfulla, men naturligtvis ocksÄ dyrare servrar (vid bestÀllning av dessa konfigurationer tas ingen installationsavgift ut):
- 2Ă Intel Xeon 5130, 2 GHz, 8 GB RAM, 4Ă160 GB SATA, 5000 rub/mĂ„n;
- 2Ă Intel Xeon 5504, 2 GHz, 12 GB RAM, 3Ă1 TB SATA, 9000 rub/mĂ„n.
Vi rekommenderar Ă€ven att ni tittar pĂ„ den nya budgetmodellen med SSD-disk baserat pĂ„ Intel Atom C2758-processorn: Intel Atom C2758 2.4 GHz, 16 GB RAM, 2Ă240 GB SSD, 4000 rub/mĂ„n., installationsavgift â 3000 rub.
Installation och driftsÀttning av Bukkit-servern i Ubuntu OS
Innan vi installerar servern, skapar vi en ny anvÀndare och lÀgger till den i sudo-gruppen:
$ sudo useradd -m -s /bin/bash $ sudo adduser sudo
DÀrefter sÀtter vi ett lösenord som den skapade anvÀndaren kommer att anvÀnda för att logga in pÄ servern:
$ sudo passwd
Vi kopplar sedan tillbaka till servern med det nya kontot och börjar installationen.
Minecraft Àr skrivet i Java, sÄ Java Runtime Environment mÄste installeras pÄ servern.
Vi uppdaterar listan över tillgÀngliga paket:
$ sudo apt-get update
Sedan kommer vi att köra följande kommando:
$ sudo apt-get install default-jdk
För att installera och köra Bukkit Ă€r det bra att ocksĂ„ installera en terminalmultiplexer â till exempel screen (andra terminalmultiplexers kan ocksĂ„ anvĂ€ndas â se vĂ„r översyn):
$ sudo apt-get install screen
Screen behövs om vi ska ansluta till spelservern via ssh. Med hjÀlp av det kan servern Minecraft köras i ett separat terminalfönster, och Àven efter att ssh-klienten stÀngs kommer servern att fortsÀtta att fungera.
Vi skapar en katalog dÀr serverfilerna kommer att lagras:
$ mkdir bukkit $ cd bukkit
DÀrefter gÄr vi till nedladdningssidan för den officiella Bukkit-webbplatsen. I det övre högra hörnet av sidan kan vi se en lÀnk till den senaste rekommenderade serverversionen (recommended build). Vi rekommenderar att hÀmta just den:
$ wget
Nu startar vi screen:
$ sudo screen
och kör följande kommando:
$ java -Xmx1024M -jar craftbukkit.jar -o false
Vi förklarar vad de anvÀnda parametrarna betyder:
- Xmx1024M â maximalt antal RAM-minne pĂ„ servern;
- jar craftbukkit.jar â sökvĂ€gen till servern;
- o false â tillĂ„ter Ă„tkomst till servern frĂ„n piratkopierade klienter.
Servern kommer att startas.
För att stoppa servern kan man skriva kommandot stop i konsolen.
Konfigurering och instÀllning av servern
ServerinstÀllningar lagras i konfigurationsfilen server.properties. Den innehÄller följande parametrar:
- generator-settings â anger mönstret för att generera en superplatt vĂ€rld;
- allow-nether â avgör möjligheten att gĂ„ till Nether. Som standard Ă€r detta vĂ€rde instĂ€llt pĂ„ true. Om det Ă€r instĂ€llt pĂ„ false kommer alla spelare frĂ„n Nether att flyttas till den normala vĂ€rlden;
- level-name â namnet pĂ„ mappen med kartfiler som kommer att anvĂ€ndas under spelet. Mappen placeras i samma katalog som serverfilerna. Om en sĂ„dan katalog inte finns, kommer servern automatiskt att skapa en ny vĂ€rld och placera den i en katalog med samma namn;
- enable-query â nĂ€r instĂ€llningen Ă€r true aktiverar den GameSpy4-protokollet för att lyssna pĂ„ servern;
- allow-flight â tillĂ„ter flygning i vĂ€rlden av Minecraft. Som standard Ă€r det false (flygning förbjuden);
- server-port â anger porten som spelservern ska anvĂ€nda. Standardporten för Minecraft Ă€r 25565. Det rekommenderas att inte Ă€ndra detta vĂ€rde;
- level-type â bestĂ€mmer vĂ€rldstypen (DEFAULT/FLAT/LARGEBIOMES);
- enable-rcon â öppnar fjĂ€rrĂ„tkomst till serverns konsol. Som standard Ă€r den avstĂ€ngd (false);
- level-seed â ingĂ„ngsvĂ€rden för nivĂ„generatorn. För att kunna skapa slumpmĂ€ssiga vĂ€rldar mĂ„ste detta fĂ€lt lĂ€mnas tomt;
- force-gamemode â stĂ€ller in standardspeltypen för spelare som ansluter till servern;
- server-ip â anger IP-adressen som spelare kommer att anvĂ€nda för att ansluta till servern;
- max-build-height â anger den maximala bygghöjden pĂ„ servern. Dess vĂ€rde ska vara ett tal som Ă€r delbart med 16 (64, 96, 256 etc.);
- spawn-npcs â tillĂ„ter (om vĂ€rdet Ă€r true) eller förbjuder (om vĂ€rdet Ă€r false) framtrĂ€dande av NPC:er i byar;
- white-list â aktiverar och inaktiverar anvĂ€ndningen av en vit lista för spelare pĂ„ servern. Om vĂ€rdet Ă€r true kan administratören skapa en vit lista genom att manuellt lĂ€gga till spelarnamn. Om det Ă€r false kan vilken anvĂ€ndare som helst som kĂ€nner till serverns IP-adress och port komma in;
- spawn-animals â tillĂ„ter automatiskt framtrĂ€dande av vĂ€nliga mobbar om vĂ€rdet Ă€r true;
- snooper-enabled â tillĂ„ter servern att skicka statistik och data till utvecklarna;
- hardcore â aktiverar hardcore-lĂ€get pĂ„ servern;
- texture-pac â texturfilen som kommer att anvĂ€ndas nĂ€r en spelare ansluter till servern. Som vĂ€rde pĂ„ detta parameter anges namnet pĂ„ zip-arkivet med texturer som lagras i samma katalog som servern;
- online-lĂ€ge â aktiverar kontrollen av premiumkonton för anvĂ€ndare som ansluter till servern. Om den hĂ€r instĂ€llningen Ă€r true, kan endast Ă€gare av premiumkonton ansluta till servern. Om kontrolleringen av konton Ă€r avstĂ€ngd (false), kan alla anvĂ€ndare (inklusive till exempel spelare med förfalskade namn) ansluta till servern, vilket skapar ytterligare sĂ€kerhetsrisker. NĂ€r kontrolleringen Ă€r avstĂ€ngd kan man spela Minecraft över ett lokalt nĂ€tverk, utan internetĂ„tkomst;
- pvp â tillĂ„ter eller förbjuder spelare att strida mot varandra. Om denna parameter Ă€r true, kan spelarna förstöra varandra. Om den Ă€r false, kan spelarna inte orsaka direkt skada pĂ„ varandra;
- svĂ„righetsgrad â anger spelets svĂ„righetsnivĂ„. Kan vara mellan 0 (det enklaste) och 3 (det svĂ„raste);
- spellĂ€gen â anger vilken speltyp som ska anvĂ€ndas för spelare som ansluter till servern. Kan anta följande vĂ€rden: 0 â Survival, 1-Creative, 2-Adventure;
- spelare-idle-tid â tid för inaktivitet (i minuter) efter vilken spelare automatiskt kopplas bort frĂ„n servern;
- max-spelare â maximalt tillĂ„tet antal spelare pÄ servern (frĂ„n 0 till 999);
- spawna-mobbar â tillĂ„ter (om vĂ€rdet Ă€r true) skapande av fientliga mobbar;
- generera-strukturer â aktiverar (true) / inaktiverar (false) generering av strukturer (skatter, fĂ€stningar, byar);
- visningsavstĂ„nd â reglerar radien av uppdaterade chunkar som skickas till spelaren; kan vara mellan 3 och 15.
Minecraft-serverloggar skrivs till filen server.log. Den sparas i samma mapp som serverfilerna. Loggen ökar stĂ€ndigt i storlek och tar mer och mer diskutrymme. Arbetet med loggmekanismen kan organiseras med hjĂ€lp av sĂ„ kallad loggrotation. För rotation anvĂ€nds ett speciellt verktyg â logrotate. Det begrĂ€nsar antalet poster i loggen till en viss grĂ€ns.
Loggrotation kan konfigureras sÄ att alla poster tas bort sÄ fort loggfilen nÄr en viss storlek. Det gÄr ocksÄ att ange en tidsperiod efter vilken alla gamla poster anses vara obsoleta och tas bort.
De grundlÀggande instÀllningarna för rotation finns i filen /etc/logrotate.conf; dessutom kan individuella instÀllningar skapas för varje applikation. Filer med individuella instÀllningar lagras i katalogen /etc/logrotate.d.
Vi skapar en textfil /etc/logrotate.d/craftbukkit och skriver in följande parametrar:
/home/craftbukkit/server.log {
rotate 2
weekly
compress
missingok
notifempty
}
LÄt oss titta mer noggrant pÄ deras vÀrden:
- Parametern rotate anger antalet rotationer innan filen tas bort;
- weekly anger att rotationen kommer att utföras veckovis (andra alternativ kan stÀllas in: monthly - mÄnadsvis och daily - dagligen);
- compress anger att arkivloggarna ska komprimeras (den motsatta alternativet Àr nocompress);
- missingok anger att om loggfilen saknas ska arbetet fortsÀtta och inga felmeddelanden visas;
- notifempty anger att loggfilen inte ska flyttas om den Àr tom.
Mer information om loggrotationens instÀllningar kan lÀsas hÀr.
Tips för optimering
Vi vill omedelbart pÄpeka att detta avsnitt endast kommer att ge rÄd som rör optimering av spelservrar. FrÄgor kring finjustering och optimering av servern dÀr Minecraft Àr installerat Àr ett separat Àmne som ligger utanför ramen för denna artikel; intresserade lÀsare kan lÀtt hitta nödvÀndig information pÄ internet.
Ett av de vanligaste problemen som uppstÄr vid spelande av Minecraft Àr sÄ kallade lagg - situationer dÀr programmet inte reagerar i tid pÄ anvÀndarens input. Dessa kan bero pÄ problem bÄde pÄ klientsidan och serversidan. Nedan ger vi rekommendationer som kan hjÀlpa till att minska risken för problem pÄ serversidan.
Ăvervaka regelbundet minnets förbrukning av servern och plugins
Minneförbrukningen kan övervakas med hjÀlp av specialiserade administrativa plugins - till exempel, LagMeter.
HÄll utkik efter uppdateringar av plugins
Som regel strÀvar utvecklare av nya plugins efter att minska belastningen med varje ny version.
Försök att inte anvÀnda mÄnga plugins med liknande funktionalitet
Stora plugins (t.ex. Essentials, AdminCMD, CommandBook) inkluderar ofta funktioner frÄn mÄnga mindre plugins. Till exempel innehÄller Essentials funktioner frÄn iConomy, uHome, OpenInv, VanishNoPacket, Kit. Mindre plugins vars funktionalitet helt tÀcks av en stor plugin kan i de flesta fall tas bort för att undvika att överbelasta servern.
BegrÀnsa kartan och ladda den sjÀlv
Om kartan inte begrÀnsas kommer serverbelastningen att öka avsevÀrt. Kartan kan begrÀnsas med hjÀlp av pluginet WorldBorder. För att göra detta behöver du starta detta plugin och köra kommandot /wb 200, och sedan rita kartan med kommandot /wb fill.
Att rita kartan tar naturligtvis tid, men det Àr bÀttre att göra det en gÄng genom att stÀnga servern för tekniskt arbete. Om varje spelare ska rita kartan kommer servern att fungera lÄngsamt.
Byt ut tunga plugins mot snabbare och mindre resurskrÀvande alternativ
Inte alla plugins för Minecraft kan betraktas som lyckade: de innehÄller ofta överflödiga och onödiga funktioner, och ibland konsumerar de Àven mycket minne. Misslyckade plugins bör ersÀttas med alternativ (det finns mÄnga sÄdana). Till exempel kan LWC-pluginet ersÀttas med Wgfix+MachineGuard, och DynMap-pluginet kan ersÀttas med Minecraft Overviewer.
Rensa alltid dropp eller installera ett plugin för automatisk borttagning av dropp
Dropp i spel kallas de föremÄl som faller vid dödsfall av mobbar eller förstöring av vissa block. Lagret och bearbetningen av droppar krÀver mycket systemresurser.
För att servern ska fungera snabbare bör dropp tas bort. Det Ă€r bĂ€st att göra detta med hjĂ€lp av speciella plugins â till exempel NoLagg eller McClean.
AnvÀnd inte anti-fusk
PĂ„ spelservrar installeras ofta sĂ„ kallade anti-fusk â program som blockerar försök att pĂ„verka spelet pĂ„ oĂ€rligt sĂ€tt.
Det finns anti-fusk Àven för Minecraft. Varje anti-fusk innebÀr alltid en extra belastning pÄ servern. Det Àr att föredra att installera skydd för launcher (som dock inte ger absolut sÀkerhet och lÀtt kan hackas - men det Àr ett Àmne för ett separat samtal) och för klienten.
Avslutande
Alla instruktioner och rekommendationer blir mycket mer effektiva om de stöds av konkreta exempel. Baserat pÄ de ovanstÄende installationsanvisningarna har vi skapat vÄr egen MineCraft-server och lagt nÄgot intressant pÄ kartan.
HÀr Àr vad vi fÄtt fram:
- Bukkit-server â den stabila rekommenderade versionen 1.6.4;
- Plugin Statistics â för att samla statistik om spelare;
- Plugin WorldBorder â för att rita och begrĂ€nsa kartan;
- Plugin WorldGuard (+WorldEdit som beroende) â för att skydda vissa omrĂ„den.
Vi bjuder in alla som Àr intresserade att spela pÄ den: för att ansluta, lÀgg till en ny server och ange adressen mncrft.slc.tl.
Vi skulle uppskatta om ni i kommentarerna delar med er av egna erfarenheter av installation, konfiguration och optimering av MineCraft-servrar och berÀttar om vilka mods och plugins ni Àr intresserade av och varför.
Rolig nyhet: FrÄn och med den 1 augusti har installationsavgiften för dedikerade servrar med fast konfiguration sÀnkts med 50 %. Nu Àr den engÄngs installationsavgiften endast 3000 rubel.
LÀsare som inte kan lÀmna kommentarer hÀr bjuds in till oss i bloggen.
KĂ€lla: habr.com
