
Minecraft este astăzi una dintre cele mai populare jocuri online. În mai puțin de trei ani (primul release oficial a avut loc în toamna anului 2011) a câștigat milioane de fani în întreaga lume.
Dezvoltatorii jocului țintesc conștient cele mai bune exemple de acum două decenii, când multe jocuri erau, pentru standardele de azi, primitiv din punct de vedere grafic și imperfecte din punct de vedere al utilizabilității, dar reușeau să fie cu adevărat captivante.
Ca toate jocurile sandbox, Minecraft oferă utilizatorilor o mulțime de oportunități creative – în esență, aceasta este secretul principal al popularității sale.
Organizarea serverelor pentru joc în mod multiplayer este realizată de jucători și comunitățile lor. Astăzi, pe internet funcționează zeci de mii de servere de jocuri (vezi, de exemplu, lista aici).
Există mulți fani ai acestui joc și printre clienții noștri, care închiriază echipamente pentru proiecte de joc în centrele noastre de date. În acest articol, vă vom explica la ce aspecte tehnice trebuie să prestați atenție atunci când alegeți un server pentru
Minecraft.
Alegerea platformei
Jocul Minecraft include următoarele elemente arhitecturale:
- server – un program prin care jucătorii interacționează între ei prin rețea;
- client – un program pentru conectarea la server, instalat pe computerul jucătorului;
- pluginuri – extensii pentru server care adaugă funcții noi sau extind cele existente;
- moduri – extensii pentru lumea jocului (blocuri noi, obiecte, posibilități).
Pentru Minecraft există multe platforme de servere. Cele mai răspândite și populare sunt Vanilla și Bukkit.
Vanilla aceasta este platforma oficială de la dezvoltatorii jocului. Este disponibilă atât în varianta grafică, cât și în cea de consolă. Noua versiune Vanilla este lansată simultan cu noua versiune Minecraft.
Dezavantajul Vanilla este consumul excesiv de memorie (aproximativ 50 MB pe jucător). Un alt dezavantaj semnificativ este absența pluginurilor.
Bukkit a fost creat de un grup de entuziaști care au încercat să îmbunătățească serverul oficial Minecraft. Încercarea a avut succes: funcționalitățile Bukkit sunt mult mai extinse decât cele ale Vanilla — în primul rând datorită suportului pentru diverse moduri și pluginuri. În același timp, consumul de memorie pe fiecare jucător este mai mic — aproximativ 5–10 MB.
Dezavantajele Bukkit sunt că la pornire consumă prea multă memorie RAM. În plus, cu cât serverul funcționează mai mult timp, cu atât mai multă memorie este necesară (chiar și când sunt puțini jucători). Atunci când alegi Bukkit ca server, trebuie să ții cont că versiunile noi conțin, de obicei, erori; versiunea stabilă apare, de obicei, la aproximativ 2-3 săptămâni după lansarea oficială a versiunii Minecraft.
În plus, în ultima vreme au câștigat popularitate și alte platforme (de exemplu, Spout, MCPC și MCPC+), dar acestea se caracterizează printr-o compatibilitate limitată cu Vanilla și Bukkit și un suport extrem de limitat pentru moduri (de exemplu, pentru Spout se pot scrie moduri doar de la zero). Dacă le folosești, este doar pentru experimente.
Pentru organizarea unui server de jocuri, recomandăm utilizarea platformei Bukkit, deoarece aceasta oferă cea mai mare flexibilitate; în plus, există multe moduri și pluginuri diverse pentru aceasta. Funcționarea stabilă a serverului Minecraft depinde mult de alegerea corectă a platformei hardware. Vom analiza această problemă mai în detaliu.
Cerințe hardware
Atât serverul, cât și clientul Minecraft sunt foarte exigente în ceea ce privește resursele sistemului.
Când alegi platforma hardware, trebuie să ții cont că un procesor multicores nu va oferi avantaje semnificative: nucleul serverului Minecraft poate utiliza doar un singur fir de calcul. Totuși, un al doilea nucleu va fi binevenit: unele pluginuri rulează pe fire separate, iar Java consumă de asemenea multe resurse…
De aceea, pentru Minecraft-server este mai bine să alegi un procesor care are o performanță mai bună pe un singur nucleu. Un procesor dual-core mai puternic va fi mai preferabil decât unul multicores, dar mai slab. Pe forumurile specializate, se recomandă utilizarea procesorului cu o frecvență de ceas nu mai mică de 3 GHz.
Pentru o funcționare normală a serverului Minecraft este necesară o cantitate mare de memorie RAM. Bukkit folosește aproximativ 1GB de RAM; în plus, pentru fiecare jucător, așa cum s-a menționat anterior, se alocă între 5 și 10MB. Pluginurile și modelele consumă, de asemenea, destul de multă memorie. Pentru un server cu 30 - 50 de jucători, pe scurt, este necesară o memorie RAM de minimum 4GB.
În Minecraft, multe aspecte (de exemplu, încărcarea acelorași pluginuri) depind de viteza de funcționare a sistemului de fișiere. De aceea, este de preferat să alegi un server cu disc SSD. Discurile convenționale au șanse să nu fie adecvate din cauza vitezei reduse de citire aleatorie.
De asemenea, viteza de conexiune la internet joacă un rol extrem de important. Pentru un joc cu 40-50 de persoane, un canal de 10Mb/s este suficient. Totuși, pentru cei care plănuiesc un proiect Minecraft mai mare, care include un site, un forum și o hartă dinamică, este de dorit să aibă un canal cu o capacitate de bandă mai mare.
Ce configurație specifică este cea mai bine aleasă? Din configurațiile pe care le oferim recomandăm să acordați atenție următoarelor:
- Intel Core 2 Duo E8400 3GHz, 6GB RAM, 2×500GB SATA, 3000 ruble/lună;
- Intel Core 2 Quad Q8300 2.5GHz, 6GB RAM, 2×500GB SATA, 3500 ruble/lună — această configurație este folosită pentru serverul nostru de test MineCraft, pe care puteți juca chiar acum (cum să faceți acest lucru este explicat mai jos);
- Intel Core i3-2120 3.3GHz, 8GB RAM, 2×500GB SATA, 3500 ruble/lună.
Aceste configurații sunt potrivite pentru a crea un server Minecraft pentru 30-40 de jucători. Un dezavantaj poate fi absența discurilor SSD, dar oferim un alt avantaj semnificativ: un canal garantat de 100Mb/s fără restricții și relații. La comandarea tuturor configurațiilor menționate mai sus, nu se percepe o taxă de instalare.
Avem și servere mai performante, dar, evident, mai scumpe (pentru aceste configurații, de asemenea, nu se percepe o taxă de instalare):
- 2× Intel Xeon 5130, 2GHz, 8GB RAM, 4×160GB SATA, 5000 ruble/lună;
- 2× Intel Xeon 5504, 2GHz, 12GB RAM, 3×1TB SATA, 9000 ruble/lună.
Recomandăm de asemenea să luați în considerare un nou model bugetar cu disc SSD pe bază de procesor Intel Atom C2758: Intel Atom C2758 2.4GHz, 16GB RAM, 2×240GB SSD, 4000 ruble/lună, taxa de instalare — 3000 ruble.
Instalarea și lansarea serverului Bukkit în sistemul de operare Ubuntu
Înainte de a instala serverul, vom crea un nou utilizator și îl vom adăuga în grupul sudo:
$ sudo useradd -m -s /bin/bash $ sudo adduser sudo
Apoi, vom seta parola pe care utilizatorul creat o va folosi pentru a se conecta la server:
$ sudo passwd
Ne vom reconecta la server cu noul cont și vom începe instalarea.
Minecraft este scris în Java, așa că pe server trebuie să instalăm neapărat Java Runtime Environment.
Să actualizăm lista pachetelor disponibile:
$ sudo apt-get update
Apoi, vom executa comanda următoare:
$ sudo apt-get install default-jdk
Pentru a instala și lansa Bukkit, este de preferat să instalăm un multiplexer de terminal, cum ar fi screen (se pot folosi și alte multiplexoare de terminal - consultați recenzie):
$ sudo apt-get install screen
Screen va fi necesar dacă ne vom conecta la serverul de joc prin ssh. Cu ajutorul său, vom putea rula serverul Minecraft într-o fereastră separată de terminal, iar chiar și după închiderea clientului ssh, serverul va continua să funcționeze.
Vom crea un director în care vor fi stocate fișierele serverului:
$ mkdir bukkit $ cd bukkit
După aceasta, vom accesa pagina de descărcări a site-ului oficial Bukkit. În colțul din dreapta sus al paginii, putem vedea un link către cea mai recentă versiune recomandată a serverului (recommended build). Recomandăm să descărcați exact aceasta:
$ wget
Acum să lansăm screen:
$ sudo screen
și vom executa comanda următoare:
$ java -Xmx1024M -jar craftbukkit.jar -o false
Să explicăm ce înseamnă parametrii utilizați:
- Xmx1024M - cantitatea maximă de memorie RAM alocată serverului;
- jar craftbukkit.jar - calea către server;
- o false - permite accesul la server din clienți piratați.
Serverul va fi pornit.
Pentru a opri serverul, se poate introduce în consolă comanda stop.
Configurarea și configurarea serverului
Setările serverului sunt stocate în fișierul de configurare server.properties. Acesta conține următoarele parametre:
- generator-settings - stabilește modelul de generare a lumii superplate;
- allow-nether - determină posibilitatea de a trece în Lumea Inferioară. În mod implicit, pentru acest parametru este setat valoarea true. Dacă se setează valoarea false, toți jucătorii din Lumea Inferioară vor fi mutați în lume obișnuită;
- level-name — numele folderului care conține fișierele hărții, care va fi utilizat în timpul jocului. Folderul este plasat în aceeași directory în care se află fișierele serverului. Dacă nu există o astfel de directory, serverul va crea automat o lume nouă și o va plasa în directory cu același nume;
- enable-query — când este setat pe true activează protocolul GameSpy4 pentru a asculta serverul;
- allow-flight — permite zborul în lumea Minecraft. Implicit este setat pe false (zborurile sunt interzise);
- server-port — indică portul care va fi utilizat de serverul de joc. Portul standard pentru Minecraft este 25565. Modificarea acestei valori nu este recomandată;
- level-type — determină tipul lumii (DEFAULT/FLAT/LARGEBIOMES);
- enable-rcon — deschide accesul la distanță la consola serverului. Implicit este dezactivat (false);
- level-seed — datele de intrare pentru generatorul de niveluri. Pentru a putea crea lumi întâmplătoare, acest câmp trebuie lăsat gol;
- force-gamemode — stabilește pentru jucătorii care se conectează la server modul de joc standard;
- server-ip — indică adresa IP care va fi utilizată de jucători pentru a se conecta la server;
- max-build-height — indică înălțimea maximă a construcțiilor pe server. Valoarea sa trebuie să fie un număr care este multiplu de 16 (64, 96, 256 etc.);
- spawn-npcs — permite (dacă este setat pe true) sau interzice (dacă este setat pe false) apariția NPC-urilor în sate;
- white-list — activează și dezactivează utilizarea listei albe de jucători pe server. Dacă este setat pe true, administratorul va putea crea o listă albă adăugând manual nickname-uri ale jucătorilor. Dacă este setat pe false, orice utilizator care știe adresa IP și portul serverului poate accesa serverul;
- spawn-animals — permite apariția automată a creaturilor prietenoase, dacă este setat pe true;
- snooper-enabled — permite serverului să trimită statistici și date dezvoltatorilor;
- hardcore — activează modul Hardcore pe server;
- texture-pack — fișierul de texturi care va fi utilizat când un jucător se conectează la server. Ca valoare a acestui parametru se indică numele arhivei zip cu texturi, care se află în aceeași directory ca și serverul;
- modul-online — activează verificarea conturilor premium ale utilizatorilor care se conectează la server. Dacă acest parametru este setat pe true, atunci doar deținătorii conturilor premium pot accesa serverul. Dacă verificarea conturilor este dezactivată (setat pe false), atunci pot accesa serverul orice utilizatori (inclusiv, de exemplu, jucători care își falsifică numele), ceea ce generează riscuri suplimentare de securitate. Când verificarea este dezactivată, se poate juca Minecraft prin rețea locală, fără acces la Internet;
- pvp — permite sau interzice jucătorilor să se atace între ei. Dacă acest parametru este setat pe true, jucătorii pot să se distrugă unul pe altul. Dacă este setat pe false, jucătorii nu pot provoca daune directe unul altuia;
- dificultate — stabilește nivelul de dificultate al jocului. Poate lua valori de la 0 (cea mai ușoară) la 3 (cea mai dificilă);
- modul-joc — indică ce mod de joc va fi stabilit pentru jucătorii care intră pe server. Poate lua următoarele valori: 0 — Supraviețuire, 1 — Creativ, 2 — Aventură;
- timp-de-inactivitate-jucători — timpul de inactivitate (în minute) după care jucătorii sunt deconectați automat de la server;
- max-jucători — numărul maxim permis de jucători pe server (între 0 și 999);
- spawn-monștri — permite (dacă este setat pe true) apariția monștrilor ostili;
- generează-structuri — activează (true)/dezactivează (false) generarea structurilor (caverne, fortărețe, sate);
- distanță-vizionare — reglează raza de încărcare a chunk-urilor pentru a fi trimis jucătorului; poate lua valori între 3 și 15.
Logurile serverului Minecraft sunt scrise într-un fișier server.log. Acesta se află în aceeași folder ca fișierele serverului. Logul crește constant în dimensiune, ocupând din ce în ce mai mult spațiu pe disc. Funcționarea mecanismului de logare poate fi organizată prin așa-numita rotație a logurilor. Pentru rotație este folosită o unealtă specială — logrotate. Aceasta limitează numărul de înregistrări din loguri la o anumită limită.
Rotația logurilor poate fi configurată astfel încât toate înregistrările să fie șterse imediat ce fișierul log atinge o dimensiune specifică. De asemenea, se poate stabili un termen, după care toate vechile înregistrări să fie considerate nevalide și șterse.
Setările principale ale rotației se află în fișierul /etc/logrotate.conf; de asemenea, pentru fiecare aplicație se pot crea setări individuale. Fișierele cu setări individuale sunt stocate în directorul /etc/logrotate.d.
Vom crea un fișier text /etc/logrotate.d/craftbukkit și vom scrie în el următoarele parametere:
/home/craftbukkit/server.log {
rotate 2
weekly
compress
missingok
notifempty
}
Să analizăm valorile acestora mai detaliat:
- parametrul rotate indică numărul de rotații înainte de ștergerea fișierului;
- weekly indică că rotația va avea loc săptămânal (se pot stabili și alte parametere: monthly - lunar și daily - zilnic);
- compress indică că jurnalele arhivate trebuie comprimate (opțiunea inversă este nocompress);
- missingok indică că în absența fișierului de jurnal se poate continua funcționarea fără a afișa mesaje de eroare;
- notifempty indică să nu se mute fișierul de jurnal dacă acesta este gol.
Pentru detalii suplimentare despre setările rotației jurnalelor, puteți citi aici.
Sfaturi pentru optimizare
Menționăm din start că în această secțiune vor fi prezentate doar sfaturi referitoare la optimizarea serverului de joc. Problemele fine de configurare și optimizare a serverului pe care este instalat Minecraft reprezintă o temă separată, ce depășește cadrul acestui articol; cititorii interesați vor putea găsi cu ușurință informațiile necesare pe internet.
Una dintre cele mai frecvente probleme întâmpinate în timpul jocului în Minecraft este așa-numitul lag - situații în care programul nu reacționează la timp la inputul utilizatorului. Acestea pot fi cauzate de probleme atât pe partea clientului, cât și pe partea serverului. Mai jos, vom oferi recomandări care să ajute la reducerea probabilității apariției problemelor de partea serverului.
Monitorizați regulat consumul de memorie de către server și plugin-uri
Consum de memorie poate fi urmărit cu ajutorul plugin-urilor administrative specializate, cum ar fi LagMeter.
Urmați actualizările plugin-urilor
De obicei, dezvoltatorii de noi plugin-uri încearcă să reducă sarcina cu fiecare nouă versiune.
Încercați să nu folosiți multe plugin-uri cu funcționalitate similară
Pluginurile mari (de exemplu, Essentials, AdminCMD, CommandBook) includ adesea în sine funcționalitatea multor pluginuri mici. De exemplu, același Essentials conține funcții de la pluginurile iConomy, uHome, OpenInv, VanishNoPacket, Kit. Pluginurile mici, a căror funcționalitate este complet acoperită de cea a unui plugin mare, pot fi eliminate în cele mai multe cazuri pentru a nu suprasolicita serverul.
Limitați harta și încărcați-o manual
Dacă nu limitați harta, atunci încărcarea serverului va crește semnificativ. Harta poate fi limitată cu ajutorul unui plugin. WorldBorder. Pentru aceasta, trebuie să rulați acest plugin și să executați comanda /wb 200, apoi să generați harta folosind comanda /wb fill.
Generarea va dura, desigur, ceva timp, dar este mai bine să o faceți o singură dată, închizând serverul pentru lucrări tehnice. Dacă harta va fi generată de fiecare jucător, serverul va funcționa lent.
Înlocuiți pluginurile greoaie cu unele mai rapide și mai puțin consumatoare de resurse.
Nu toate pluginurile pentru Minecraft sunt reușite: adesea ele conțin multe funcții inutile și, uneori, consumă și multă memorie. Pluginurile nereușite ar trebui înlocuite cu alternative (există destule). De exemplu, pluginul LWC poate fi înlocuit cu Wgfix+MachineGuard, iar pluginul DynMap - cu Minecraft Overviewer.
Întotdeauna curățați dropurile sau instalați un plugin pentru eliminarea automată a acestora.
În jocuri, dropurile sunt obiectele care cad la moartea unui mob sau la distrugerea anumitor blocuri. Stocarea și procesarea dropurilor consumă foarte multe resurse sistem.
Pentru a face serverul să funcționeze mai repede, este de dorit să se elimine dropurile. Acest lucru se face cel mai bine cu ajutorul pluginurilor speciale - de exemplu, NoLagg sau McClean.
Nu folosiți anti-cheat-uri.
Pe serverele de joc, de obicei, sunt instalate așa-numitele anti-cheat-uri - programe care blochează încercările de a modifica jocul prin metode necorecte.
Există anti-cheat-uri și pentru Minecraft. Orice anti-cheat reprezintă întotdeauna o sarcină suplimentară pentru server. Este preferabil să se instaleze protecții pentru launcher (care, totuși, nu oferă o garanție absolută de siguranță și pot fi ușor sparte - dar aceasta este o temă de discuție separată) și pentru client.
În concluzie
Orice instrucțiuni și recomandări devin mult mai eficiente atunci când sunt susținute de exemple concrete. Bazându-ne pe instrucțiunile de instalare prezentate mai sus, am creat propriul nostru server MineCraft și am inclus ceva interesant pe hartă.
Iată ce am realizat:
- Serverul Bukkit - versiunea stabilă recomandată 1.6.4;
- Pluginul Statistics - pentru a colecta statistici despre jucători;
- Pluginul WorldBorder - pentru a delimita și restricționa harta;
- Pluginul WorldGuard (+WorldEdit ca dependență) - pentru a proteja anumite zone.
Invităm pe toți doritorii să se joace pe el: pentru a vă conecta, adăugați un nou server și specificați adresa mncrft.slc.tl.
Ne-ar face plăcere dacă ați împărtăși experiențele voastre legate de instalarea, configurarea și optimizarea serverelor MineCraft în comentarii și ne-ați spune ce moduri și pluginuri vă interesează și de ce.
Știre grozavă: Din 1 august, taxa de instalare pentru servere dedicate de configurație fixă a fost redusă cu 50%. Acum, taxa unică de instalare este de doar 3000 de ruble.
Cititorii care nu pot lăsa comentarii aici sunt invitați să ni se alăture în blog.
Sursa: habr.com
