Стварэнне і настройка сервера Minecraft

Стварэнне і настройка сервера Minecraft

Minecraft сёння належыць да самых папулярных сеткавых гульняў. За няпоўныя тры гады (першы афіцыйны рэліз адбыўся восенню 2011 года) у яго з'явіліся мільёны прыхільнікаў па ўсім свеце.

Распрацоўнікі гульні свядома арыентуюцца на лепшыя ўзоры дваццацігадовай даўнасці, калі шматлікія гульні былі па сённяшніх мерках прымітыўнымі з пункта гледжання графікі і недасканалымі з пункта гледжання юзабіліці, але пры гэтым - па-сапраўднаму захоплівалі.

Як і ўсе гульні-пясочніцы, Minecraft падае карыстачу велізарныя магчымасці для творчасці – у гэтым, уласна, і складаецца галоўны сакрэт яго папулярнасці.

Арганізацыяй сервераў для гульні ў шматкарыстальніцкім рэжыме займаюцца самі гульцы і іх супольнасці. Сёння ў Інтэрнеце функцыянуюць дзясяткі тысяч гульнявых сервераў (гл., напрыклад, спіс тут).

Нямала прыхільнікаў гэтай гульні ёсць і сярод нашых кліентаў, і яны арандуюць у нашых дата-цэнтрах абсталяванне пад гульнявыя праекты. У гэтым артыкуле мы раскажам пра тое, на якія тэхнічныя моманты трэба звярнуць увагу пры выбары сервера для
Minecraft.

Выбіраемы платформу

У склад гульні Minecraft уваходзяць наступныя архітэктурныя элементы:

  1. сервер - праграма, з дапамогай якой гульцы ўзаемадзейнічаюць адзін з адным па сетцы;
  2. кліент - праграма для падлучэння да сервера, якая ўсталёўваецца на кампутары гульца;
  3. убудовы - дадаткі да сервера, якія дадаюць новыя функцыі або якія пашыраюць старыя;
  4. моды - дапаўненні да гульнявога свету (новыя блокі, прадметы, магчымасці).

Для Minecraft існуе шмат серверных платформ. Самымі распаўсюджанымі і папулярнымі з'яўляюцца Vanilla і Bukkit.

ваніль гэта афіцыйная платформа ад распрацоўшчыкаў гульні. Распаўсюджваецца як у графічным, так і ў кансольным варыянце. Новая версія Vanilla заўсёды выходзіць адначасова з новай версіяй Minecraft.

Недахопам Vanilla з'яўляецца празмернае спажыванне памяці (прыкладна 50 МБ на аднаго гульца). Яшчэ адзін істотны недахоп - адсутнасць плагінаў.

Bukkit быў створаны групай энтузіястаў, якія паспрабавалі ўдасканаліць афіцыйны сервер Minecraft. Спроба апынулася суцэль удалай: па функцыянальнасці Bukkit нашмат шырэй, чым Vanilla у першую чаргу дзякуючы падтрымцы разнастайных модаў і плагінаў. Пры гэтым ён спажывае менш памяці на кожнага гульца - прыкладна 5-10 МБ.

Мінусы Bukkit складаюцца ў тым, што пры запуску ён забірае зашмат аператыўнай памяці. Акрамя таго, чым даўжэй сервер працуе, тым больш яму патрабуецца памяці (нават калі гульцоў мала). Выбіраючы ў якасці сервера Bukkit, варта ўлічваць, што яго новыя версіі, як правіла, утрымоўваюць памылкі; стабільная версія звычайна з'яўляецца прыкладна праз 2-3 тыдні пасля выйсця афіцыйнай версіі Minecraft.

Акрамя таго, у апошні час набіраюць папулярнасць і іншыя платформы (напрыклад, Spout, MCPC і MCPC+), але яны адрозніваюцца абмежаванай сумяшчальнасцю з Vanilla і Bukkit і вельмі абмежаванай падтрымкай модаў (напрыклад, для Spout наогул можна толькі пісаць моды з нуля). Калі іх і выкарыстоўваць - то толькі для эксперыментаў.

Для арганізацыі гульнявога сервера мы рэкамендуем выкарыстоўваць платформу Bukkit, бо яна адрозніваецца найвялікай гнуткасцю; акрамя таго, пад яе існуе мноства разнастайных модаў і плагінаў. Стабільная праца сервера Minecraft шмат у чым залежыць ад пісьменнага выбару апаратнай платформы. Разгледзім гэтае пытанне больш падрабязна.

апаратныя патрабаванні

І сервер, і кліент Mineсraft вельмі патрабавальныя да сістэмных рэсурсаў.
Пры выбары апаратнай платформы варта ўлічваць, што шмат'ядравы працэсар вялікіх пераваг не дасць: ядро ​​сервера Minecraft можа выкарыстоўваць толькі адзін струмень вылічэнні. Другое ядро, зрэшты, будзе нялішнім: некаторыя плагіны выконваюцца ў асобных патоках, ды і Java таксама спажывае нямала рэсурсаў…

Таму для Minecraft-сервера лепш выбіраць працэсар, у якога вышэй прадукцыйнасць аднаго ядра. Больш магутны двухядзерны працэсар будзе больш пераважным, чым шмат'ядравы, але менш магутны. На спецыялізаваных форумах рэкамендуецца выкарыстоўвацца працэсары з тактавай частатой не ніжэй за 3Ггц.

Для звычайнага функцыянавання сервера Minecraft патрабуецца вялікая колькасць аператыўнай памяці. Bukkit займае прыкладна 1ГБ аператыўнай памяці; акрамя таго, пад кожнага гульца, як ужо было сказанае вышэй, адводзіцца ад 5 да 10 МБ. Убудовы і моды таксама спажываюць даволі шмат памяці. Для сервера на 30 - 50 гульцоў, такім чынам, спатрэбіцца не менш за 4 ГБ аператыўнай памяці.

У Minecraft вельмі шматлікае (напрыклад, загрузка тых жа плагінаў) залежыць ад хуткасці працы файлавай сістэмы. Таму пераважна выбіраць сервер з SSD-дыскам. Шпіндзельныя дыскі наўрад ці падыдуць з прычыны нізкай хуткасці выпадковага чытання.

Вялікае значэнне мае і хуткасць інтэрнэт-падлучэння. Для гульні 40-50 чалавек суцэль годзе канала 10 Мб/c. Аднак тым, хто плануе больш маштабны minecraft-праект, які ўключае сайт, форум і дынамічную карту, вельмі пажадана мець канал з большай прапускной здольнасцю.

Якую канкрэтную канфігурацыю лепш за ўсё абраць? З прапанаваных канфігурацый рэкамендуем звярнуць увагу на наступныя:

  • Intel Core 2 Duo E8400 3Ггц, 6ГБ RAM, 2×500ГБ SATA, 3000 руб / мес.;
  • Intel Core 2 Quad Q8300 2.5Ггц, 6ГБ RAM, 2×500ГБ SATA, 3500 руб/мес. - дадзеную канфігурацыю мы выкарыстоўваем для нашага тэставага сервера MineCraft, на якім вы прама цяпер можаце пагуляць (як гэта зрабіць - напісана ніжэй);
  • Intel Core i3-2120 3.3Ггц, 8ГБ RAM, 2×500ГБ SATA, 3500 руб/мес.

Гэтыя канфігурацыі суцэль падыдуць для стварэння сервера Minecraft на 30-40 гульцоў. Некаторым мінусам з'яўляецца адсутнасць SSD-дыскаў, але мы даем іншую немалаважную перавагу: гарантаваны канал 100 Мб/с без якіх-небудзь абмежаванняў і суадносін. Пры замове ўсіх пералічаных вышэй канфігурацый ўсталявальны плацёж не спаганяецца.

Ёсць у нас і больш прадукцыйныя, але пры гэтым, натуральна, даражэйшыя серверы (пры замове гэтых канфігурацый усталявальны плацёж таксама не спаганяецца):

  • 2х Intel Xeon 5130, 2Ггц, 8ГБ RAM, 4×160ГБ SATA, 5000 руб/мес;
  • 2х IntelXeon 5504, 2Ггц, 12ГБ RAM, 3×1ТБ SATA, 9000 руб/мес.

Рэкамендуемы таксама звярнуць увагу на новую бюджэтную мадэль з SSD-дыскам на базе працэсара Intel Atom C2758: Intel Atom C2758 2.4Ггц, 16 ГБ RAM, 2×240ГБ SSD, 4000 руб/мес., установачны плацёж – 3000 руб.

Усталяванне і запуск сервера Bukkit у OC Ubuntu

Перш чым усталёўваць сервер, створым новага карыстача і дадамо яго ў групу sudo:

$ sudo useradd -m -s /bin/bash <імя карыстальніка> $ sudo adduser <імя карыстальніка> sudo

Далей зададзім пароль, пад якім створаны карыстач будзе падлучацца да сервера:

$ sudo passwd <імя карыстальніка>

Перападлучымся да сервера пад новым уліковым запісам і прыступім да ўсталёўкі.
Minecraft напісаны на Java, таму на сэрвэры абавязкова трэба ўсталяваць Java Runtime Environment.

Абновім спіс даступных пакетаў:

$ Суды абнаўленне APT-атрымаць

Затым выканаем наступную каманду:

$ sudo apt-get install default-jdk

Для ўсталёўкі і запуску Bukkit пажадана таксама ўсталяваць тэрмінальны мультыплексар - напрыклад, screen (можна выкарыстоўваць і іншыя тэрмінальныя мультыплексары - гл. наш агляд):

$ sudo apt-get install screen

Screen спатрэбіцца, калі мы будзем падлучацца да гульнявога сервера па ssh. З яго дапамогай можна будзе запускаць сервер Minecraft у асобным акне тэрмінала, і нават пасля зачынення кліента ssh сервер будзе працаваць.

Створым дырэкторыю, у якой будуць захоўвацца файлы сервера:

$ mkdir bukkit $ cd bukkit

Пасля гэтага зойдзем на старонку загрузак афіцыйнага сайта Bukkit. У правай верхняй частцы старонкі можна ўбачыць спасылку на апошнюю рэкамендаваную да выкарыстання зборку сервера (recommended build). Раім спампоўваць менавіта яе:

$wget <спасылка на рэкамендаваную версію>

Цяпер запусцім screen:

$ sudo screen

і выканаем наступную каманду:

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

Растлумачым, што азначаюць параметры, якія выкарыстоўваюцца:

  • Xmx1024M – максімальная колькасць аператыўнай памяці на сервер;
  • jar craftbukkit.jar - ключ да сервера;
  • o false - дазваляе доступ да сервера з пірацкіх кліентаў.

Сервер будзе запушчаны.
Спыніць сервер можна, набраўшы ў кансолі каманду stop.

Настройка і канфігураванне сервера

Налады сервера захоўваюцца ў канфігурацыйным файле server.properties. Ён змяшчае наступныя параметры:

  • generator-settings - задае шаблон генерацыі суперплоскага свету;
  • allow-nether - вызначае магчымасць пераходу ў Ніжні свет. Па змаўчанні для гэтага параметра ўсталявана значэнне true. Калі ўсталявана значэнне false, то ўсе гульцы з Ніжняга свету будуць перамешчаныя ў звычайны;
  • level-name - імя тэчкі з файламі карты, якая будзе выкарыстоўвацца падчас гульні. Тэчка размяшчаецца ў той жа дырэкторыі, дзе знаходзяцца файлы сервера. Калі такой дырэкторыі няма, сервер аўтаматычна стварае новы свет і змяшчае яго ў дырэкторыю з такім жа імем;
  • enable-query - пры ўсталяваным значэнні true актывуе пратакол GameSpy4 для праслухоўвання сервера;
  • allow-flight - дазваляе палёты па свеце Minecraft. Па змаўчанні мае значэнне false (палеты забаронены);
  • server-port - паказвае порт, які будзе выкарыстоўвацца серверам гульні. Стандартны порт для Minecraft – 25565. Значэнне гэтага параметру змяняць не рэкамендуецца;
  • level-type - вызначае тып свету (DEFAUT / FLAT / LARGEBIOMES);
  • enable-rcon - адчыняе выдалены доступ да кансолі сервера. Па змаўчанні ён адключаны (false);
  • level-seed - уваходныя дадзеныя для генератара узроўняў. Каб мець магчымасць ствараць выпадковыя светы, гэтае поле трэба пакінуць пустым;
  • force-gamemode - устаўляе для гульцоў, якія падключаюцца да сервера, стандартны рэжым гульні;
  • server-ip - паказвае IP-адрас, які будзе выкарыстоўвацца гульцамі для падлучэння да сервера;
  • max-build-height - паказвае максімальную вышыню пабудовы на серверы. Яго значэнне павінна ўяўляць сабой лік, кратны 16 (64, 96, 256 і да т.п.);
  • spawn-npcs - дазваляе (калі ўсталявана значэнне true) або забараняе (калі ўсталявана значэнне false) з'яўленне NPС у вёсках;
  • white-list - уключае і адключае выкарыстанне белага спісу гульцоў на серверы. Калі ўсталявана значэнне true, то адміністратар зможа фармаваць белы спіс, дадаючы ў яго нікі гульцоў уручную. Калі ж усталявана значэнне false, то на сервер можа заходзіць любы карыстач, дасведчаны яго IP-адрас і порт;
  • spawn-animals - дазваляе аўтаматычнае з'яўленне прыязных мобаў, калі ўсталявана значэнне true);
  • snooper-enabled – дазваляе серверу адпраўляць статыстыку і дадзеныя распрацоўнікам;
  • hardcore - уключае на серверы рэжым Хардкор;
  • texture-pac - файл тэкстур, які будзе выкарыстоўвацца пры падлучэнні гульца да сервера. У якасці значэння гэтага параметра паказваецца імя zip-архіва з тэкстурамі, які захоўваецца ў той жа дырэкторыі, што і сервер;
  • online-mode - уключае праверку прэміум-акаўнтаў карыстальнікаў, якія падключаюцца да сервера. Калі для гэтага параметра ўсталявана значэнне true, але на сервер змогуць заходзіць толькі ўладальнікі прэміум-акаўнтаў. Калі праверка акаўнтаў адключаная (усталяванае значэнне false), то на сервер могуць заходзіць любыя карыстачы (у тым ліку, напрыклад, і гульцы, якія падрабілі нік), што стварае дадатковыя рызыкі бяспекі. Пры адключанай праверцы можна гуляць у Minecraft па лакальнай сетцы, без доступу да Інтэрнэту;
  • pvp - дазваляе ці забараняе гульцам ваяваць адзін з адным. Калі гэты параметр мае значэнне true, гульцы могуць знішчаць адзін аднаго. Калі ўсталявана значэнне false, то гульцы не могуць наносіць адзін аднаму прамыя страты;
  • difficulty - задае ўзровень складанасці гульні. Можа прымаць значэнні ад 0 (самы лёгкі) да 3 (самы складаны);
  • gamemode - паказвае, які гульнявы ​​рэжым будзе ўсталяваны для гульцоў, якія заходзяць на сервер. Можа прымаць наступныя значэнні: 0 - Survival, 1-Creative, 2-Adventure;
  • player-idle-timeout - час бяздзейнасці (у хвілінах), па заканчэнні якога гульцы аўтаматычна адключаюцца ад сервера;
  • max-players - максімальная дапушчальная колькасць гульцоў на серверы (ад 0 да 999);
  • spawn-monsters - дазваляе (калі ўсталявана значэнне true) спараджэнне варожых мобаў;
  • generate-structures - уключае (true)/адключае (false) генерацыю структур (скарбніцы, крэпасці, вёскі);
  • view-distance - рэгулюе радыус абнаўляюцца чанкаў для дасылкі гульцу; можа прымаць значэння ад 3 да 15.

Логі сервера minecraft запісваюцца ў файл server.log. Ён захоўваецца ў той жа тэчцы, што і файлы сервера. Лог увесь час павялічваецца ў памеры, забіраючы ўсё больш і больш дыскавай прасторы. Упарадкаваць працу механізму лагавання можна з дапамогай так званай ратацыі логаў. Для ратацыі выкарыстоўваецца спецыяльная ўтыліта - logrotate. Яна абмяжоўвае колькасць запісаў у логу вызначанай мяжой.

Можна наладзіць ратацыю логаў так, што ўсе запісы будуць выдаляцца, як толькі файл лога дасягне вызначанага памеру. Можна таксама ўсталяваць тэрмін, па заканчэнні якога ўсе старыя запісы будуць прызнаныя неактуальнымі і выдаленыя.

Асноўныя наладкі ратацыі знаходзяцца ў файле /etc/logrotate.conf; акрамя таго, для кожнага прыкладання можна ствараць індывідуальныя наладкі. Файлы з індывідуальнымі настройкамі захоўваюцца ў дырэкторыі /etc/logrotate.d.

Створым тэкставы файл /etc/logrotate.d/craftbukkit і ўпішам у яго наступныя параметры:

/home/craftbukkit/server.log { rotate 2 weekly compress missingok notifempty }

Разгледзім іх значэння больш падрабязна:

  • параметр rotate паказвае лік ратацый да выдалення файла;
  • weekly паказвае, што ратацыя будзе рабіцца штотыдзень (можна ўсталяваць і іншыя параметры: monthly - штомесяц і daily - штодня);
  • compress паказвае, што архіўныя логі трэба сціскаць (зваротная опцыя - nocompress);
  • missingok паказвае, што пры адсутнасці файла лога трэба працягваць працу і не выводзіць паведамленні аб памылцы;
  • notifempty паказвае не зрушваць файл лога, калі ён пусты.

Больш падрабязна аб наладах ратацыі логаў можна прачытаць тут.

Саветы па аптымізацыі

Адразу ж абмовімся, што ў гэтым раздзеле будуць прыведзены парады, якія тычацца толькі аптымізацыі гульнявога сервера. Пытанні тонкай налады і аптымізацыі сервера, на якім усталяваны Mineсraft, уяўляюць сабой асобную тэму, якая выходзіць за рамкі гэтага артыкула; зацікаўленыя чытачы без цяжкасці змогуць знайсці патрэбную інфармацыю ў Інтэрнеце.

Адной з самых распаўсюджаных праблем, якія ўзнікаюць пры гульні ў Minecraft, з'яўляюцца так званыя лагі – сітуацыі, калі праграма своечасова не рэагуе на карыстацкі ўвод. Яны могуць быць абумоўлены праблемамі як на баку кліента, так і на баку сервера. Ніжэй мы дамо рэкамендацыі, якія дапамогуць зменшыць верагоднасць узнікнення праблем на серверным боку.

Рэгулярна кантралюйце выдатак памяці серверам і плягінамі

Спажыванне памяці можна адсочваць пры дапамозе спецыялізаваных адміністрацыйных убудоў - напрыклад, LagMeter.

Сачыце за абнаўленнямі плагінаў

Як правіла, распрацоўшчыкі новых плагінаў з кожнай новай версіяй імкнуцца знізіць нагрузку.

Старайцеся не карыстацца мноствам плагінаў з падобнай функцыянальнасцю

Вялікія плагіны (напрыклад, Essentials, AdminCMD, CommandBook) вельмі часта ўключаюць у сябе функцыянальнасць многіх дробных плагінаў. Напрыклад, той жа Essential змяшчае функцыі плагінаў iConomy, uHome, OpenInv, VanishNoPacket, Kit. Дробныя плагіны, функцыянальнасць якіх цалкам пакрываецца функцыянальнасцю аднаго вялікага, у большасці выпадкаў можна выдаліць, каб не перагружаць сервер.

Абмяжоўвайце карту і прагружайце яе самастойна

Калі не абмяжоўваць карту, то нагрузка на сервер істотна павялічыцца. Абмежаваць карту можна пры дапамозе плагіна WorldBorder. Для гэтага трэба запусціць гэтую ўбудову і выканаць каманду /wb 200, а затым прамаляваць карту пры дапамозе каманды /wb fill.

Прамалёўка, вядома, зойме нямала часу, але лепш гэта зрабіць адзін раз, зачыніўшы сервер на тэхнічныя працы. Калі карту будзе прамалёўваць кожны гулец - сервер будзе працаваць павольна.

Заменіце цяжкавагавыя плагіны на больш хуткія і менш рэсурсаёмістыя

Далёка не ўсе плагіны для Minecraft можна назваць удалымі: часта яны ўтрымоўваюць шмат лішніх і непатрэбных функцый, а часам яшчэ і спажываюць шмат памяці. Няўдалыя плагіны лепш замяняць на альтэрнатыўныя (іх існуе даволі шмат). Напрыклад, убудова LWC можна замяніць на Wgfix + MachineGuard, а ўбудова DynMap – на Minecraft Overviewer.

Заўсёды чысціце дроп або ўсталюеце плягін для аўтаматычнага выдалення дропа

Дропам у гульнях называюцца прадметы, якія выпадаюць пры смерці мобу або разбурэнні некаторых блокаў. Захоўванне і апрацоўка дропаў займаюць вельмі шмат сістэмных рэсурсаў.

Каб сервер працаваў хутчэй, дроп пажадана выдаляць. Гэта лепш рабіць пры дапамозе спецыяльных плагінаў - напрыклад, NoLagg або McClean.

Не выкарыстоўвайце антычыты

На гульнявых серверах часта ўсталёўваюцца так званыя антычыты - праграмы, якія блакуюць спробы ўздзейнічаць на гульню несумленнымі спосабамі.

Існуюць антычыты і для Minecraft. Любы антычыт - гэта заўсёды дадатковая нагрузка на сервер. Пераважней усталёўваць абароны для лаўнчара (якія, зрэшты, абсалютнай гарантыі бяспекі не даюць і лёгка ламаюцца - але гэтай ужо тэма для асобнай гутаркі) і для кліента.

замест заключэння

Любыя інструкцыі і рэкамендацыі аказваюцца значна больш эфектыўнымі, калі яны падмацаваны канкрэтнымі прыкладамі. Грунтуючыся на прыведзеных вышэй інструкцыях па ўстаноўцы, мы стварылі свой сервер MineCrаft і змясцілі на карту сёе-тое цікавае.

Вось што ў нас атрымалася:

  • Сервер Bukkit – стабільная рэкамендаваная версія 1.6.4;
  • Убудова Statistics - каб збіраць статыстыку аб гульцах;
  • Убудова WorldBorder - каб прамаляваць і абмежаваць карту;
  • Убудова WorldGuard (+WorldEdit як залежнасць) - каб абараніць некаторыя вобласці.

Запрашаем усіх жадаючых пагуляць на ім: каб падключыцца, дадайце новы сервер і запішыце адрас mncrft.slc.tl.

Будзем рады, калі ў каментарах вы падзеліцеся ўласным досведам усталёўкі, налады і аптымізацыі сервераў MineCraft і распавядзеце, якія моды і плагіны вам цікавыя і чаму.

Класная навіна: З 1 жніўня ўсталявальны плацёж на вылучаныя серверы фіксаванай канфігурацыі паніжаны на 50%. Цяпер разавы ўсталявальны плацёж складае ўсяго 3000 руб.

Чытачоў, якія не могуць пакідаць каментары тут, запрашаем да нас у блог.

Крыніца: habr.com

Дадаць каментар