Minecraft serverio kūrimas ir nustatymas

Minecraft serverio kūrimas ir nustatymas

„Minecraft“ yra vienas populiariausių internetinių žaidimų šiandien. Per mažiau nei trejus metus (pirmasis oficialus išleidimas įvyko 2011 m. rudenį) jis sulaukė milijonų gerbėjų visame pasaulyje.

Žaidimų kūrėjai sąmoningai sutelkia dėmesį į geriausius dvidešimties metų senumo pavyzdžius, kai daugelis žaidimų, pagal šių dienų standartus, buvo primityvūs grafikos požiūriu, o netobuli naudojimo požiūriu, tačiau tuo pat metu jie buvo tikrai jaudinantys.

Kaip ir visi smėlio dėžės žaidimai, „Minecraft“ suteikia vartotojui didžiules galimybes kūrybiškumui – tai iš tikrųjų yra pagrindinė jo populiarumo paslaptis.

Kelių žaidėjų žaidimų serverius organizuoja patys žaidėjai ir jų bendruomenės. Šiandien internete veikia dešimtys tūkstančių žaidimų serverių (žr., pavyzdžiui, sąrašą čia).

Tarp mūsų klientų yra daug šio žaidimo gerbėjų, kurie žaidimų projektams nuomoja įrangą iš mūsų duomenų centrų. Šiame straipsnyje kalbėsime apie tai, į kokius techninius dalykus reikia atkreipti dėmesį renkantis serverį
Minecraft.

Platformos pasirinkimas

„Minecraft“ apima šiuos architektūrinius elementus:

  1. serveris – programa, per kurią žaidėjai sąveikauja tarpusavyje tinkle;
  2. klientas - programa, skirta prisijungti prie serverio, įdiegta grotuvo kompiuteryje;
  3. papildiniai – serverio papildymai, kurie prideda naujų funkcijų arba išplečia senąsias;
  4. modifikacijos yra žaidimų pasaulio papildymai (nauji blokai, elementai, funkcijos).

Yra daug „Minecraft“ serverių platformų. Labiausiai paplitę ir populiariausi yra Vanilla ir Bukkit.

vanilė Tai yra oficiali žaidimų kūrėjų platforma. Jis platinamas tiek grafine, tiek konsoline versija. Nauja „Vanilla“ versija visada pasirodo tuo pačiu metu kaip ir nauja „Minecraft“ versija.

„Vanilla“ trūkumas yra per didelis atminties suvartojimas (maždaug 50 MB vienam grotuvui). Kitas reikšmingas trūkumas yra įskiepių trūkumas.

Bukkit sukūrė entuziastų grupė, kuri bandė patobulinti oficialų Minecraft serverį. Bandymas pasirodė gana sėkmingas: „Bukkit“ yra daug platesnis nei „Vanilla“, visų pirma dėl įvairių modifikacijų ir įskiepių palaikymo. Tuo pačiu metu jis sunaudoja mažiau atminties vienam grotuvui - maždaug 5-10 MB.

Bukkit trūkumai yra tai, kad veikiant jis užima per daug RAM. Be to, kuo ilgiau serveris veikia, tuo daugiau atminties jam reikia (net jei žaidėjų mažai). Renkantis „Bukkit“ kaip serverį, turėtumėte nepamiršti, kad naujose jo versijose, kaip taisyklė, yra klaidų; Stabili versija paprastai pasirodo praėjus maždaug 2–3 savaitėms po oficialios „Minecraft“ versijos išleidimo.

Be to, pastaruoju metu išpopuliarėjo ir kitos platformos (pavyzdžiui, Spout, MCPC ir MCPC+), tačiau jos turi ribotą suderinamumą su Vanilla ir Bukkit bei itin ribotą modifikacijų palaikymą (pavyzdžiui, Spout galite rašyti modifikacijas tik nuo nulio). Jei jie naudojami, tada tik eksperimentams.

Norėdami organizuoti žaidimų serverį, rekomenduojame naudoti Bukkit platformą, nes ji yra lanksčiausia; Be to, yra daug įvairių modifikacijų ir papildinių. Stabilus „Minecraft“ serverio veikimas labai priklauso nuo tinkamo aparatinės įrangos platformos pasirinkimo. Panagrinėkime šį klausimą išsamiau.

Techninės įrangos reikalavimai

Tiek Minecraft serveris, tiek klientas reikalauja daug sistemos išteklių.
Renkantis aparatinę platformą, reikėtų nepamiršti, kad kelių branduolių procesorius didelio pranašumo nesuteiks: Minecraft serverio branduolys gali naudoti tik vieną skaičiavimo giją. Tačiau antrasis branduolys būtų naudingas: kai kurie įskiepiai vykdomi atskiromis gijomis, o Java taip pat sunaudoja daug resursų...

Todėl „Minecraft“ serveriui geriau pasirinkti procesorių, turintį didesnį vieno branduolio našumą. Galingesnis dviejų branduolių procesorius bus geresnis nei kelių branduolių procesorius, kuris yra mažiau galingas. Specializuotuose forumuose rekomenduojama naudoti procesorius, kurių taktinis dažnis yra ne mažesnis kaip 3 GHz.

Normaliam Minecraft serverio veikimui reikalingas didelis RAM kiekis. „Bukkit“ užima maždaug 1 GB RAM; be to, kiekvienam žaidėjui, kaip minėta aukščiau, skiriama nuo 5 iki 10 MB. Papildiniai ir modifikacijos taip pat sunaudoja gana daug atminties. Todėl serveriui su 30–50 žaidėjų jums reikės bent 4 GB RAM.

„Minecraft“ programoje daug kas (pavyzdžiui, tų pačių įskiepių įkėlimas) priklauso nuo failų sistemos greičio. Todėl geriau rinktis serverį su SSD disku. Mažai tikėtina, kad veleno diskai bus tinkami dėl mažo atsitiktinio skaitymo greičio.

Didelę reikšmę turi ir jūsų interneto ryšio greitis. 40-50 žmonių žaidimui užtenka 10 Mb/s kanalo. Tačiau tiems, kurie planuoja didesnį minecraft projektą, įskaitant svetainę, forumą ir dinaminį žemėlapį, labai pageidautina turėti didesnį pralaidumą turintį kanalą.

Kokią konkrečią konfigūraciją geriausia pasirinkti? Nuo mūsų siūlomos konfigūracijos Rekomenduojame atkreipti dėmesį į šiuos dalykus:

  • Intel Core 2 Duo E8400 3GHz, 6GB RAM, 2x500GB SATA, 3000 RUR/mėn;
  • Intel Core 2 Quad Q8300 2.5GHz, 6GB RAM, 2x500GB SATA, 3500 RUB/mėn. — šią konfigūraciją naudojame savo MineCraft bandomajame serveryje, kuriame galite žaisti dabar (kaip tai padaryti, parašyta žemiau);
  • Intel Core i3-2120 3.3GHz, 8GB RAM, 2x500GB SATA, 3500 RUR/mėn.

Šios konfigūracijos yra gana tinkamos sukurti Minecraft serverį 30-40 žaidėjų. Tam tikras trūkumas yra SSD diskų trūkumas, tačiau suteikiame dar vieną svarbų pranašumą: garantuotas 100 Mb/s kanalas be jokių apribojimų ar santykių. Užsakant visas aukščiau išvardytas konfigūracijas, sąrankos mokesčio nėra.

Turime ir našesnius, bet tuo pačiu, natūralu, brangesnius serverius (užsakant šias konfigūracijas, diegimo mokestis taip pat nėra imamas):

  • 2x Intel Xeon 5130, 2GHz, 8GB RAM, 4x160GB SATA, 5000 rub/mėn;
  • 2x IntelXeon 5504, 2GHz, 12GB RAM, 3x1TB SATA, 9000 RUB/mėn.

Taip pat rekomenduojame atkreipti dėmesį į naują biudžetinį modelį su SSD disku, kurio pagrindas yra Intel Atom C2758 procesorius: Intel Atom C2758 2.4 GHz, 16 GB RAM, 2x240 GB SSD, 4000 rublių / mėn., Diegimo įmoka - 3000 rublių.

Bukkit serverio įdiegimas ir paleidimas OC Ubuntu

Prieš diegdami serverį sukurkime naują vartotoją ir įtraukime jį į sudo grupę:

$ sudo useradd -m -s /bin/bash <naudotojo vardas> $ sudo adduser <naudotojo vardas> sudo

Toliau nustatysime slaptažodį, pagal kurį sukurtas vartotojas prisijungs prie serverio:

$ sudo passwd <vartotojo vardas>

Iš naujo prisijunkite prie serverio naudodami naują paskyrą ir pradėkime diegimą.
Minecraft yra parašyta Java, todėl serveryje turi būti įdiegta Java Runtime Environment.

Atnaujinkime galimų paketų sąrašą:

$ sudo apt-get update

Tada paleiskite šią komandą:

$ sudo apt-get install default-jdk

Norint įdiegti ir paleisti „Bukkit“, taip pat patartina įdiegti terminalo multiplekserį – pavyzdžiui, ekraną (taip pat galite naudoti kitus terminalų tankintuvus – žr. apžvalga):

$ sudo apt-get diegimo ekranas

Ekranas bus reikalingas, jei prie žaidimų serverio prisijungsime per ssh. Su jo pagalba galite paleisti Minecraft serverį atskirame terminalo lange ir net uždarius ssh klientą serveris veiks.

Sukurkime katalogą, kuriame bus saugomi serverio failai:

$ mkdir bukkit $ cd bukkit

Po to eikime prie Bukkit oficialios svetainės atsisiuntimo puslapis. Viršutinėje dešinėje puslapio dalyje galite pamatyti nuorodą į naujausią rekomenduojamą serverio versiją. Rekomenduojame jį atsisiųsti:

$ wget <rekomenduojamos versijos nuoroda>

Dabar paleiskite ekraną:

$sudo ekranas

ir paleiskite šią komandą:

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

Paaiškinkime, ką reiškia naudojami parametrai:

  • Xmx1024M – didžiausias RAM kiekis vienam serveriui;
  • jar craftbukkit.jar – serverio raktas;
  • o false – leidžia piratiniams klientams pasiekti serverį.

Serveris bus paleistas.
Galite sustabdyti serverį įvesdami komandą sustabdyti konsolėje.

Serverio nustatymas ir konfigūravimas

Serverio parametrai saugomi server.properties konfigūracijos faile. Jame yra šie parametrai:

  • generator-settings – nustato šabloną superplokščiam pasauliui sukurti;
  • leisti-nether – lemia galimybę persikelti į Žemutinį pasaulį. Pagal numatytuosius nustatymus šis nustatymas nustatytas kaip tiesa. Jei nustatyta į false, visi žaidėjai iš Nyderlandų bus perkelti į įprastą;
  • level-name – aplanko su žemėlapio failais, kuris bus naudojamas žaidimo metu, pavadinimas. Aplankas yra tame pačiame kataloge, kuriame yra serverio failai. Jei tokio katalogo nėra, serveris automatiškai sukuria naują pasaulį ir įdeda jį į katalogą tokiu pačiu pavadinimu;
  • Enable-query – kai nustatyta į true, suaktyvinamas GameSpy4 protokolas, kad būtų galima klausytis serverio;
  • leidimas skrydis – leidžia skraidyti po Minecraft pasaulį. Numatytoji reikšmė yra false (skrydžiai draudžiami);
  • serverio prievadas – nurodo prievadą, kurį naudos žaidimų serveris. Standartinis Minecraft prievadas yra 25565. Nerekomenduojama keisti šio parametro reikšmės;
  • level-type – nustato pasaulio tipą (DEFAUT/FLAT/LARGEBIOMES);
  • enable-rcon – leidžia nuotoliniu būdu pasiekti serverio konsolę. Pagal numatytuosius nustatymus jis išjungtas (false);
  • level-seed – įvesties duomenys lygių generatoriui. Kad būtų galima sukurti atsitiktinius pasaulius, šis laukas turi būti paliktas tuščias;
  • force-gamemode - nustato standartinį žaidimo režimą žaidėjams, prisijungiantiems prie serverio;
  • server-ip – nurodo IP adresą, kurį žaidėjai naudos prisijungdami prie serverio;
  • max-build-height – nurodo maksimalų pastato aukštį serveryje. Jo reikšmė turi būti 16 kartotinis (64, 96, 256 ir tt);
  • spawn-npcs – leidžia (jei nustatyta į true) arba draudžia (jei nustatyta į false) NPC pasirodymą kaimuose;
  • baltas sąrašas – įjungia arba išjungia baltojo žaidėjų sąrašo naudojimą serveryje. Jei nustatyta į „true“, administratorius galės sukurti baltąjį sąrašą rankiniu būdu pridėdamas prie jo žaidėjų slapyvardžius. Jei reikšmė klaidinga, bet kuris vartotojas, žinantis savo IP adresą ir prievadą, gali pasiekti serverį;
  • spawn-animals – leidžia automatiškai neršti draugiškas minias, jei nustatyta į true);
  • snooper-enabled – leidžia serveriui siųsti statistiką ir duomenis kūrėjams;
  • hardcore – įgalina hardcore režimą serveryje;
  • texture-pac – tekstūros failas, kuris bus naudojamas grotuvui prisijungus prie serverio. Šio parametro reikšmė yra zip archyvo su tekstūromis pavadinimas, kuris saugomas tame pačiame kataloge kaip ir serveris;
  • internetinis režimas – leidžia tikrinti prie serverio besijungiančių vartotojų aukščiausios kokybės paskyras. Jei šis parametras nustatytas kaip tiesa, prie serverio galės prisijungti tik aukščiausios kokybės sąskaitų turėtojai. Jei paskyros patvirtinimas išjungtas (nustatytas į false), prie serverio gali prisijungti bet kuris naudotojas (įskaitant, pavyzdžiui, žaidėjus, kurie suklastojo savo slapyvardį), o tai kelia papildomų saugumo pavojų. Kai tikrinimas išjungtas, galite žaisti „Minecraft“ vietiniame tinkle be prieigos prie interneto;
  • pvp - leidžia arba draudžia žaidėjams kovoti tarpusavyje. Jei šis parametras yra teisingas, žaidėjai gali sunaikinti vienas kitą. Jei nustatyta „false“, žaidėjai negali padaryti tiesioginės žalos vienas kitam;
  • sunkumas – nustato žaidimo sudėtingumo lygį. Gali priimti reikšmes nuo 0 (lengviausias) iki 3 (sunkiausias);
  • gamemode – nurodo, koks žaidimo režimas bus nustatytas žaidėjams, įeinantiems į serverį. Gali turėti šias reikšmes: 0 – išgyvenimas, 1 – kūrybinis, 2 – nuotykis;
  • player-idle-timeout – neveiklumo laikas (minutėmis), po kurio žaidėjai automatiškai atjungiami nuo serverio;
  • max-players — didžiausias leistinas žaidėjų skaičius serveryje (nuo 0 iki 999);
  • spawn-monsters – leidžia (jei nustatyta į true) neršti priešiškos minios;
  • generuoti-struktūros — įgalina (tiesa) / išjungia (klaidinga) statinių (iždų, tvirtovių, kaimų) generavimą;
  • peržiūros atstumas – koreguoja atnaujintų gabalų, kurie bus siunčiami į grotuvą, spindulį; gali būti nuo 3 iki 15.

Minecraft serverio žurnalai įrašomi į server.log failą. Jis saugomas tame pačiame aplanke kaip ir serverio failai. Žurnalas nuolat auga, užima vis daugiau vietos diske. Galite supaprastinti registravimo mechanizmo darbą naudodami vadinamąjį žurnalo pasukimą. Sukimui naudojama speciali programa - logrotate. Tai apriboja įrašų skaičių žurnale iki tam tikros ribos.

Galite sukonfigūruoti žurnalo pasukimą, kad visi įrašai būtų ištrinti, kai tik žurnalo failas pasiekia tam tikrą dydį. Taip pat galite nustatyti laikotarpį, po kurio visi seni įrašai bus laikomi nereikšmingais ir ištrinami.

Pagrindiniai sukimosi parametrai yra /etc/logrotate.conf faile; Be to, kiekvienai programai galite sukurti individualius nustatymus. Failai su individualiais parametrais saugomi /etc/logrotate.d kataloge.

Sukurkime tekstinį failą /etc/logrotate.d/craftbukkit ir įveskite į jį šiuos parametrus:

/home/craftbukkit/server.log { rotate 2 per savaitę suspausti trūksta notifemty }

Pažvelkime į jų reikšmes išsamiau:

  • parametras rotate nurodo pasukimų skaičių prieš ištrinant failą;
  • weekly rodo, kad rotacija bus atliekama kas savaitę (galite nustatyti ir kitus parametrus: mėnesinis - mėnesinis ir kasdienis - kasdien);
  • kompresas nurodo, kad archyvuoti žurnalai turi būti suglaudinti (atvirkštinė parinktis yra nekompresuoti);
  • Mistingok rodo, kad jei nėra žurnalo failo, turėtumėte tęsti darbą ir nerodyti klaidų pranešimų;
  • notifempty nurodo neperkelti žurnalo failo, jei jis tuščias.

Galite perskaityti daugiau apie žurnalo pasukimo nustatymus čia.

Optimizavimo patarimai

Iš karto padarykime išlygą, kad šioje skiltyje bus pateikti patarimai, susiję tik su žaidimų serverio optimizavimu. Tikslaus serverio, kuriame įdiegtas „Minecraft“, derinimo ir optimizavimo problemos yra atskira tema, kuri nepatenka į šio straipsnio taikymo sritį; susidomėję skaitytojai gali nesunkiai rasti reikiamą informaciją internete.

Viena dažniausių problemų, iškylančių žaidžiant Minecraft, yra vadinamieji lagai – situacijos, kai programa laiku nereaguoja į vartotojo įvestį. Jas gali sukelti problemos tiek kliento, tiek serverio pusėje. Žemiau pateiksime rekomendacijas, kurios padės sumažinti serverio pusėje kilusių problemų tikimybę.

Reguliariai stebėkite serverio ir priedų atminties suvartojimą

Atminties suvartojimą galima stebėti naudojant specializuotus administravimo įskiepius, pvz. LagMeter.

Stebėkite papildinių naujinius

Paprastai naujų įskiepių kūrėjai stengiasi sumažinti kiekvienos naujos versijos apkrovą.

Stenkitės nenaudoti daug panašių funkcijų papildinių

Dideli įskiepiai (pvz., Essentials, AdminCMD, CommandBook) labai dažnai apima daugelio mažesnių įskiepių funkcijas. Pavyzdžiui, tame pačiame Essential yra iConomy, uHome, OpenInv, VanishNoPacket, Kit įskiepių funkcijos. Maži įskiepiai, kurių funkcionalumą visiškai dengia vieno didelio funkcionalumas, daugeliu atvejų gali būti pašalinti, kad nebūtų perkrautas serveris.

Apribokite žemėlapį ir įkelkite jį patys

Jei žemėlapio neribosite, serverio apkrova gerokai padidės. Žemėlapį galite apriboti naudodami papildinį Pasaulio siena. Norėdami tai padaryti, turite paleisti šį papildinį ir komandą /wb 200, tada nubrėžti žemėlapį naudodami /wb užpildymo komandą.

Piešimas, žinoma, užtruks daug laiko, bet geriau tai padaryti vieną kartą, uždarant serverį techniniams darbams. Jei kiekvienas žaidėjas nubrėžia žemėlapį, serveris veiks lėtai.

Pakeiskite sunkius papildinius greitesniais ir mažiau išteklių reikalaujančiais

Ne visi „Minecraft“ įskiepiai gali būti vadinami sėkmingais: juose dažnai yra daug nereikalingų ir nereikalingų funkcijų, o kartais jie taip pat sunaudoja daug atminties. Nesėkmingus įskiepius geriau pakeisti alternatyviais (jų yra gana daug). Pavyzdžiui, LWC įskiepis gali būti pakeistas Wgfix+MachineGuard, o DynMap įskiepis – Minecraft Overviewer.

Visada išvalykite lašą arba įdiekite papildinį, kad lašas būtų automatiškai pašalintas

Žaidimų kritimai yra daiktai, kurie iškrenta, kai miršta minia arba sunaikinami kai kurie blokai. Lašų saugojimas ir apdorojimas užima daug sistemos išteklių.

Norint, kad serveris veiktų greičiau, patartina ištrinti lašą. Tai geriausia padaryti naudojant specialius papildinius, pavyzdžiui, NoLagg arba McClean.

Nenaudokite kovos su sukčiavimu priemonių

Žaidimų serveriuose dažnai diegiami vadinamieji anti-cheat’ai – programos, kurios blokuoja bandymus nesąžiningais būdais paveikti žaidimą.

„Minecraft“ taip pat yra kovos su sukčiavimu. Bet kokia apsauga nuo sukčiavimo visada yra papildoma apkrova serveriui. Pageidautina įdiegti paleidimo priemonės apsaugą (tačiau ji nesuteikia absoliučios saugumo garantijos ir yra lengvai pažeidžiama - tačiau tai atskiros diskusijos tema) ir klientui.

Vietoj išvados

Bet kokios instrukcijos ir rekomendacijos yra daug veiksmingesnės, jei jos pagrįstos konkrečiais pavyzdžiais. Remdamiesi aukščiau pateiktomis diegimo instrukcijomis, sukūrėme savo „Minecraft“ serverį ir įdėjome keletą įdomių dalykų žemėlapyje.

Štai ką gavome:

  • Bukkit serveris – stabili rekomenduojama versija 1.6.4;
  • Statistics plugin – rinkti statistiką apie žaidėjus;
  • WorldBorder įskiepis – žemėlapiui piešti ir apriboti;
  • WorldGuard įskiepis (+WorldEdit kaip priklausomybė) – tam tikroms vietoms apsaugoti.

Kviečiame visus jame žaisti: prisijungti, pridėti naują serverį ir įvesti adresą mncrft.slc.tl.

Mums bus malonu, jei komentaruose pasidalinsite savo patirtimi diegiant, konfigūruojant ir optimizuojant MineCraft serverius ir papasakosite, kurie modifikacijos ir papildiniai jus domina ir kodėl.

Šaunios naujienos: Nuo rugpjūčio 1 dienos dedikuotų fiksuotos konfigūracijos serverių diegimo mokestis sumažintas 50%. Dabar vienkartinis sąrankos mokėjimas yra tik 3000 rublių.

Skaitytojai, negalintys čia palikti komentarų, kviečiami apsilankyti adresu dienoraštis.

Šaltinis: www.habr.com

Добавить комментарий