Tworzenie i konfiguracja serwera Minecraft

Tworzenie i konfiguracja serwera Minecraft

Minecraft to obecnie jedna z najpopularniejszych gier online. W niecałe trzy lata (pierwsza oficjalna premiera miała miejsce jesienią 2011 roku) zyskała miliony fanów na całym świecie.

Twórcy gier celowo skupiają się na najlepszych przykładach sprzed dwudziestu lat, kiedy wiele gier było, jak na dzisiejsze standardy, prymitywnych pod względem graficznym i niedoskonałych pod względem użyteczności, ale jednocześnie były naprawdę ekscytujące.

Podobnie jak wszystkie gry typu sandbox, Minecraft zapewnia użytkownikowi ogromne możliwości kreatywności - w tym właśnie tkwi główny sekret jego popularności.

Serwery do gier wieloosobowych są organizowane przez samych graczy i ich społeczności. Obecnie w Internecie działają dziesiątki tysięcy serwerów gier (zobacz na przykład listę tutaj).

Wśród naszych klientów jest wielu fanów tej gry, którzy wynajmują sprzęt z naszych centrów danych do projektów gamingowych. W tym artykule porozmawiamy o tym, na jakie kwestie techniczne należy zwrócić uwagę przy wyborze serwera
Minecraft.

Wybór platformy

Minecraft zawiera następujące elementy architektoniczne:

  1. serwer – program za pośrednictwem którego gracze komunikują się ze sobą za pośrednictwem sieci;
  2. klient – ​​program umożliwiający połączenie się z serwerem, instalowany na komputerze gracza;
  3. wtyczki - dodatki do serwera dodające nowe funkcje lub rozszerzające stare;
  4. modyfikacje to dodatki do świata gry (nowe bloki, przedmioty, funkcje).

Istnieje wiele platform serwerowych dla Minecrafta. Najpopularniejsze i najbardziej popularne to Vanilla i Bukkit.

Wanilia To jest oficjalna platforma twórców gry. Jest dystrybuowany zarówno w wersji graficznej, jak i konsolowej. Nowa wersja Vanilla zawsze pojawia się w tym samym czasie, co nowa wersja Minecrafta.

Wadą Vanilli jest nadmierne zużycie pamięci (około 50 MB na odtwarzacz). Kolejną istotną wadą jest brak wtyczek.

bukkit został stworzony przez grupę pasjonatów, którzy próbowali ulepszyć oficjalny serwer Minecraft. Próba okazała się całkiem udana: Bukkit ma znacznie szerszą funkcjonalność niż Vanilla, przede wszystkim ze względu na obsługę różnych modów i wtyczek. Jednocześnie zużywa mniej pamięci na gracza - około 5-10 MB.

Wadą Bukkita jest to, że podczas działania zajmuje on zbyt dużo pamięci RAM. Ponadto im dłużej serwer działa, tym więcej pamięci potrzebuje (nawet jeśli jest niewielu graczy). Wybierając Bukkit jako serwer, należy pamiętać, że jego nowe wersje z reguły zawierają błędy; Wersja stabilna pojawia się zwykle około 2-3 tygodnie po wydaniu oficjalnej wersji Minecrafta.

Poza tym w ostatnim czasie popularność zyskały inne platformy (np. Spout, MCPC i MCPC+), jednak mają one ograniczoną kompatybilność z Vanilla i Bukkit oraz skrajnie ograniczone wsparcie dla modów (np. dla Spout można pisać mody tylko od zera). Jeśli są używane, to tylko do eksperymentów.

Do zorganizowania serwera gier zalecamy skorzystanie z platformy Bukkit, ponieważ jest ona najbardziej elastyczna; Ponadto istnieje wiele różnych modów i wtyczek do niego. Stabilna praca serwera Minecraft w dużej mierze zależy od prawidłowego wyboru platformy sprzętowej. Rozważmy ten problem bardziej szczegółowo.

Wymagania sprzętowe

Zarówno serwer Minecraft, jak i klient są bardzo wymagające pod względem zasobów systemowych.
Wybierając platformę sprzętową, należy pamiętać, że procesor wielordzeniowy nie zapewni zbyt wielu korzyści: rdzeń serwera Minecraft może korzystać tylko z jednego wątku obliczeniowego. Drugi rdzeń jednak by się przydał: niektóre wtyczki są wykonywane w oddzielnych wątkach, a Java też zużywa mnóstwo zasobów...

Dlatego w przypadku serwera Minecraft lepiej wybrać procesor o wyższej wydajności jednordzeniowej. Bardziej wydajny procesor dwurdzeniowy będzie lepszy niż procesor wielordzeniowy, który jest mniej wydajny. Na specjalistycznych forach zaleca się stosowanie procesorów o częstotliwości taktowania co najmniej 3 GHz.

Do normalnego funkcjonowania serwera Minecraft wymagana jest duża ilość pamięci RAM. Bukkit zajmuje około 1 GB pamięci RAM; dodatkowo dla każdego gracza, jak wspomniano powyżej, przydzielane jest od 5 do 10 MB. Wtyczki i mody również zużywają sporo pamięci. Dlatego na serwer z 30 - 50 graczami będziesz potrzebować co najmniej 4 GB pamięci RAM.

W Minecrafcie wiele (na przykład ładowanie tych samych wtyczek) zależy od szybkości systemu plików. Dlatego lepiej jest wybrać serwer z dyskiem SSD. Dyski wrzecionowe raczej nie będą odpowiednie ze względu na niską prędkość odczytu losowego.

Duże znaczenie ma także szybkość Twojego łącza internetowego. Do rozgrywki na 40-50 osób wystarczy kanał 10 Mb/s. Jednakże dla tych, którzy planują większy projekt Minecraft, obejmujący stronę internetową, forum i dynamiczną mapę, wysoce pożądane jest posiadanie kanału o większej przepustowości.

Którą konkretną konfigurację najlepiej wybrać? Z konfiguracje, które oferujemy Zalecamy zwrócenie uwagi na następujące kwestie:

  • Intel Core 2 Duo E8400 3 GHz, 6 GB RAM, 2x500 GB SATA, 3000 RUR/miesiąc;
  • Intel Core 2 Quad Q8300 2.5 GHz, 6 GB RAM, 2x500 GB SATA, 3500 rubli/miesiąc. — tej konfiguracji używamy dla naszego serwera testowego MineCraft, na którym można już grać (jak to zrobić, opisano poniżej);
  • Intel Core i3-2120 3.3 GHz, 8 GB RAM, 2x500 GB SATA, 3500 RUR/miesiąc.

Te konfiguracje są całkiem odpowiednie do stworzenia serwera Minecraft dla 30-40 graczy. Pewną wadą jest brak dysków SSD, ale dajemy inną ważną zaletę: gwarantowany kanał 100 Mb/s bez żadnych ograniczeń i współczynników. Zamawiając wszystkie konfiguracje wymienione powyżej, nie pobiera się opłaty instalacyjnej.

Posiadamy również serwery wydajniejsze, ale jednocześnie oczywiście droższe (przy zamówieniu tych konfiguracji opłata instalacyjna również nie jest pobierana):

  • 2x Intel Xeon 5130, 2 GHz, 8 GB RAM, 4x160 GB SATA, 5000 rubli/miesiąc;
  • 2x IntelXeon 5504, 2GHz, 12GB RAM, 3x1TB SATA, 9000 rubli/miesiąc.

Polecamy również zwrócić uwagę na nowy budżetowy model z dyskiem SSD oparty na procesorze Intel Atom C2758: Intel Atom C2758 2.4 GHz, 16 GB RAM, 2x240 GB SSD, 4000 rubli/miesiąc, opłata instalacyjna - 3000 rubli.

Instalacja i uruchomienie serwera Bukkit na OC Ubuntu

Przed instalacją serwera utwórzmy nowego użytkownika i dodajmy go do grupy sudo:

$ sudo useradd -m -s /bin/bash <nazwa użytkownika> $ sudo adduser <nazwa użytkownika> sudo

Następnie ustalimy hasło, pod którym utworzony użytkownik będzie łączyć się z serwerem:

$ sudo passwd <nazwa użytkownika>

Połączmy się ponownie z serwerem na nowym koncie i rozpocznijmy instalację.
Minecraft jest napisany w Javie, dlatego na serwerze musi być zainstalowane środowisko Java Runtime Environment.

Zaktualizujmy listę dostępnych pakietów:

$ sudo apt-get update

Następnie uruchom następujące polecenie:

$ sudo apt-get install default-jdk

Do zainstalowania i uruchomienia Bukkita wskazane jest także zainstalowanie multipleksera terminala - na przykład screena (można też zastosować inne multipleksery terminala - zobacz nasz przegląd):

$ sudo apt-get ekran instalacyjny

Screen będzie potrzebny jeżeli będziemy łączyć się z serwerem gry poprzez ssh. Za jego pomocą możesz uruchomić serwer Minecraft w osobnym oknie terminala i nawet po zamknięciu klienta ssh serwer będzie działał.

Stwórzmy katalog w którym będą przechowywane pliki serwera:

$ mkdir bukkit $ cd bukkit

Potem przejdźmy do Oficjalna strona pobierania Bukkit. W prawej górnej części strony znajduje się link do najnowszej rekomendowanej wersji serwera. Zalecamy pobranie go:

$ wget <link do zalecanej wersji>

Teraz uruchommy screen:

Ekran $sudo

i uruchom następujące polecenie:

$ java -Xmx1024M -jar craftbukkit.jar -o fałsz

Wyjaśnijmy, co oznaczają użyte parametry:

  • Xmx1024M - maksymalna ilość pamięci RAM na serwer;
  • jar craftbukkit.jar - klucz do serwera;
  • o false - umożliwia dostęp do serwera z pirackich klientów.

Serwer zostanie uruchomiony.
Możesz zatrzymać serwer, wpisując polecenie stop w konsoli.

Zakładanie i konfiguracja serwera

Ustawienia serwera są przechowywane w pliku konfiguracyjnym server.properties. Zawiera następujące parametry:

  • generator-settings — ustawia szablon generowania superpłaskiego świata;
  • zezwolenie-nether - określa możliwość przeniesienia się do Świata Podziemi. Domyślnie to ustawienie ma wartość true. Jeśli ustawione na false, wszyscy gracze z Netheru zostaną przeniesieni do normalnego;
  • nazwa-poziomu - nazwa folderu z plikami map, które będą używane podczas gry. Folder znajduje się w tym samym katalogu, w którym znajdują się pliki serwera. Jeśli takiego katalogu nie ma, serwer automatycznie tworzy nowy świat i umieszcza go w katalogu o tej samej nazwie;
  • Enable-query - gdy ustawione na true, aktywuje protokół GameSpy4 w celu nasłuchiwania serwera;
  • zezwolenie na lot - umożliwia loty po świecie Minecrafta. Wartość domyślna to false (loty są zabronione);
  • port-serwera - wskazuje port, który będzie używany przez serwer gry. Standardowy port dla Minecrafta to 25565. Nie zaleca się zmiany wartości tego parametru;
  • poziom-typ - określa typ świata (DEFAUT/FLAT/LARGEBIOMES);
  • włącz-rcon - umożliwia zdalny dostęp do konsoli serwera. Domyślnie jest wyłączona (false);
  • Level-seed - dane wejściowe do generatora poziomów. Aby móc tworzyć losowe światy, to pole musi pozostać puste;
  • force-gamemode - ustawia standardowy tryb gry dla graczy łączących się z serwerem;
  • server-ip - wskazuje adres IP, który będzie używany przez graczy do łączenia się z serwerem;
  • max-build-height - wskazuje maksymalną wysokość budynku na serwerze. Jego wartość musi być wielokrotnością 16 (64, 96, 256 itd.);
  • spawn-npcs - pozwala (jeśli ustawione na true) lub zabrania (jeśli ustawione na false) pojawianie się NPC-ów w wioskach;
  • white-list - włącza lub wyłącza korzystanie z białej listy graczy na serwerze. Jeśli ustawione na true, administrator będzie mógł utworzyć białą listę, ręcznie dodając do niej pseudonimy graczy. Jeśli wartość jest fałszywa, dostęp do serwera może uzyskać każdy użytkownik znający jego adres IP i port;
  • spawn-animals - umożliwia automatyczne spawnowanie przyjaznych mobów, jeśli jest ustawione na true);
  • obsługa snoopera - umożliwia serwerowi wysyłanie statystyk i danych do programistów;
  • hardkor - włącza tryb Hardkor na serwerze;
  • tekstura-pac - plik tekstury, który będzie używany, gdy gracz połączy się z serwerem. Wartością tego parametru jest nazwa archiwum ZIP z teksturami, które przechowywane jest w tym samym katalogu co serwer;
  • tryb online - umożliwia sprawdzanie kont premium użytkowników łączących się z serwerem. Jeśli ten parametr jest ustawiony na true, dostęp do serwera będą mieli tylko posiadacze kont premium. Jeśli weryfikacja konta jest wyłączona (ustawiona na false), dostęp do serwera mogą uzyskać wszyscy użytkownicy (w tym na przykład gracze, którzy sfałszowali swój nick), co stwarza dodatkowe ryzyko bezpieczeństwa. Gdy sprawdzanie jest wyłączone, możesz grać w Minecrafta przez sieć lokalną, bez dostępu do Internetu;
  • pvp - pozwala lub zabrania graczom walki między sobą. Jeśli ten parametr jest prawdziwy, gracze mogą się nawzajem niszczyć. Jeśli ustawione na false, gracze nie mogą zadawać sobie nawzajem bezpośrednich obrażeń;
  • trudność - ustawia poziom trudności gry. Może przyjmować wartości od 0 (najłatwiej) do 3 (najtrudniej);
  • gamemode - wskazuje, jaki tryb gry zostanie ustawiony dla graczy wchodzących na serwer. Może przyjmować następujące wartości: 0 - Przetrwanie, 1 - Twórczość, 2 - Przygoda;
  • player-idle-timeout — czas bezczynności (w minutach), po którym gracze zostaną automatycznie rozłączeni z serwerem;
  • max-players — maksymalna dozwolona liczba graczy na serwerze (od 0 do 999);
  • spawn-monsters - pozwala (jeśli ustawione na true) na spawnowanie wrogich mobów;
  • generate-structures — włącza (true)/wyłącza (false) generowanie struktur (skarbieców, twierdz, wiosek);
  • view-distance - dostosowuje promień zaktualizowanych fragmentów wysyłanych do gracza; może przyjmować wartości od 3 do 15.

Dzienniki serwera Minecraft są zapisywane w pliku server.log. Jest przechowywany w tym samym folderze, co pliki serwera. Dziennik stale rośnie, zajmując coraz więcej miejsca na dysku. Pracę mechanizmu logującego możesz usprawnić stosując tzw. rotację logów. Do rotacji używane jest specjalne narzędzie - logrotate. Ogranicza ilość wpisów w logu do pewnego limitu.

Możesz skonfigurować rotację dziennika tak, aby wszystkie wpisy były usuwane, gdy tylko plik dziennika osiągnie określony rozmiar. Możesz także ustawić okres, po którym wszystkie stare wpisy zostaną uznane za nieistotne i usunięte.

Podstawowe ustawienia rotacji znajdują się w pliku /etc/logrotate.conf; Ponadto możesz stworzyć indywidualne ustawienia dla każdej aplikacji. Pliki z indywidualnymi ustawieniami przechowywane są w katalogu /etc/logrotate.d.

Stwórzmy plik tekstowy /etc/logrotate.d/craftbukkit i wprowadźmy do niego następujące parametry:

/home/craftbukkit/server.log {obróć 2 razy w tygodniu kompresuj powiadomienie o braku ok. puste }

Przyjrzyjmy się ich znaczeniu bardziej szczegółowo:

  • parametr obróć określa liczbę obrotów przed usunięciem pliku;
  • tygodniowo wskazuje, że rotacja będzie wykonywana co tydzień (można ustawić także inne parametry: miesięczny - miesięczny i dzienny - codziennie);
  • compress określa, że ​​zarchiwizowane logi powinny być kompresowane (opcją odwrotną jest nocompress);
  • brakującyok wskazuje, że jeśli nie ma pliku dziennika, należy kontynuować pracę i nie wyświetlać komunikatów o błędach;
  • notifempty określa, że ​​plik dziennika nie będzie przesuwany, jeśli jest pusty.

Możesz przeczytać więcej o ustawieniach rotacji logów tutaj.

Wskazówki dotyczące optymalizacji

Od razu zastrzegajmy, że w tej sekcji znajdą się porady związane wyłącznie z optymalizacją serwera gry. Kwestie dostrajania i optymalizacji serwera, na którym zainstalowany jest Minecraft, to osobny temat, wykraczający poza zakres tego artykułu; zainteresowani czytelnicy mogą łatwo znaleźć potrzebne informacje w Internecie.

Jednym z najczęstszych problemów pojawiających się podczas gry w Minecrafta są tzw. opóźnienia – czyli sytuacje, w których program nie reaguje w odpowiednim czasie na działania użytkownika. Mogą być spowodowane problemami zarówno po stronie klienta, jak i serwera. Poniżej podamy rekomendacje, które pomogą zmniejszyć prawdopodobieństwo wystąpienia problemów po stronie serwera.

Regularnie monitoruj zużycie pamięci serwera i wtyczek

Zużycie pamięci można monitorować za pomocą specjalistycznych wtyczek administracyjnych – np. LagMeter.

Bądź na bieżąco z aktualizacjami wtyczek

Z reguły twórcy nowych wtyczek starają się zmniejszać obciążenie z każdą nową wersją.

Staraj się nie używać wielu wtyczek o podobnej funkcjonalności

Duże wtyczki (np. Essentials, AdminCMD, CommandBook) bardzo często zawierają funkcjonalność wielu mniejszych wtyczek. Na przykład ten sam Essential zawiera funkcje wtyczek iConomy, uHome, OpenInv, VanishNoPacket, Kit. Małe wtyczki, których funkcjonalność całkowicie pokrywa się z funkcjonalnością jednej dużej, w większości przypadków można usunąć, aby nie obciążać serwera.

Ogranicz mapę i załaduj ją samodzielnie

Jeśli nie ograniczysz mapy, obciążenie serwera znacznie wzrośnie. Możesz ograniczyć mapę za pomocą wtyczki Granica Świata. Aby to zrobić należy uruchomić tę wtyczkę i wydać polecenie /wb 200, a następnie narysować mapę za pomocą polecenia /wb fill.

Rysowanie zajmie oczywiście dużo czasu, ale lepiej zrobić to raz, zamykając serwer do prac technicznych. Jeśli każdy gracz losuje mapę, serwer będzie działał wolno.

Wymień wtyczki o dużej wytrzymałości na szybsze i mniej wymagające zasobów

Nie wszystkie wtyczki do Minecrafta można nazwać udanymi: często zawierają wiele niepotrzebnych i niepotrzebnych funkcji, a czasami zużywają też dużo pamięci. Lepiej zastąpić nieudane wtyczki alternatywnymi (jest ich całkiem sporo). Na przykład wtyczkę LWC można zastąpić Wgfix+MachineGuard, a wtyczkę DynMap - Minecraft Przegląderem.

Zawsze usuwaj kroplę lub instaluj wtyczkę, aby automatycznie usunąć kroplę

Dropy w grach to przedmioty, które wypadają po śmierci moba lub zniszczeniu niektórych bloków. Przechowywanie i przetwarzanie kropli zajmuje dużo zasobów systemowych.

Aby serwer działał szybciej, wskazane jest usunięcie dropu. Najlepiej zrobić to za pomocą specjalnych wtyczek - na przykład NoLagg lub McClean.

Nie używaj anty-cheatów

Na serwerach gier często instalowane są tzw. anty-cheats – programy, które blokują próby nieuczciwego wpływania na grę.

Istnieją również zabezpieczenia przed oszustwami dla Minecrafta. Każdy anty-cheat jest zawsze dodatkowym obciążeniem serwera. Lepiej jest zainstalować ochronę dla launchera (która jednak nie daje absolutnej gwarancji bezpieczeństwa i łatwo ją złamać - ale to temat na osobną dyskusję) i dla klienta.

Zamiast zawierania

Wszelkie instrukcje i zalecenia okazują się znacznie skuteczniejsze, jeśli zostaną poparte konkretnymi przykładami. W oparciu o powyższą instrukcję instalacji stworzyliśmy własny serwer Minecraft i umieściliśmy na mapie kilka ciekawych rzeczy.

Oto co otrzymaliśmy:

  • Serwer Bukkit - stabilna zalecana wersja 1.6.4;
  • Wtyczka Statistics - służąca do zbierania statystyk o graczach;
  • Wtyczka WorldBorder - do rysowania i ograniczania mapy;
  • Wtyczka WorldGuard (+WorldEdit jako zależność) - w celu ochrony niektórych obszarów.

Zapraszamy wszystkich do zabawy na nim: aby się połączyć, dodać nowy serwer i wpisać adres mncrft.slc.tl.

Będzie nam miło, jeśli w komentarzach podzielisz się swoimi doświadczeniami związanymi z instalacją, konfiguracją i optymalizacją serwerów MineCraft oraz powiesz nam, które mody i wtyczki Cię interesują i dlaczego.

Fajne wiadomości: Od 1 sierpnia opłata instalacyjna dla serwerów dedykowanych o stałej konfiguracji została obniżona o 50%. Teraz jednorazowa opłata konfiguracyjna wynosi tylko 3000 rubli.

Czytelników, którzy nie mogą tu zostawić komentarza, zapraszamy do odwiedzenia nas pod adresem blog.

Źródło: www.habr.com

Dodaj komentarz