Оптимизатсияи сервери Minecraft

Оптимизатсияи сервери Minecraft
Дар блоги мо мо аллакай гуфт, чӣ гуна сервери Minecraft-и худро эҷод кардан мумкин аст, аммо аз он вақт 5 сол гузашт ва бисёр чиз тағир ёфт. Мо бо шумо роҳҳои кунунии эҷод ва оптимизатсияи қисми сервери чунин бозии маъмулро мубодила мекунем.

Дар тӯли таърихи 9-солаи худ (бо назардошти санаи баромад), Майнкрафт шумораи аҷиби мухлисон ва нафратоваронро дар байни бозигарони оддӣ ва гекҳо ба даст овард. Консепсияи оддии ҷаҳони аз блокҳо сохташуда аз як шакли оддии фароғат ба як воситаи универсалӣ барои муошират ва эҷоди ашёҳои гуногун аз ҷаҳони воқеӣ табдил ёфт.

Илова ба сохтмон, бозӣ қобилияти эҷод кардан дорад мантиқ, ки ба шумо имкон медиҳад алгоритмҳои мукаммалро дар дохили Minecraft амалӣ кунед. YouTube пур аз видеоҳои хеле таъсирбахш аст, ки одамон бо сарфи кӯшишҳои зиёд ва вақти зиёд нусхаи ин ё он дастгоҳи электрониро сохтаанд ё нусхаи муфассалро сохтаанд. мавҷуд аст и афсонавӣ иншоотхои меъморй. Ҳама чиз танҳо бо тасаввуроти бозигар ва имкониятҳои олами бозӣ маҳдуд аст.


Аммо биёед минбаъд дар бораи он чизе ки бозингарон эҷод мекунанд, сӯҳбат накунем, аммо биёед ба қисми серверии барнома назар андозем ва мушкилотро (баъзан хеле мураккаб), ки ҳангоми кор дар зери сарборӣ пайдо мешаванд, таъкид кунем. Биёед фавран фармоиш диҳем, ки мо танҳо дар бораи нашри Java сӯҳбат хоҳем кард.

Намудҳои серверҳо

Варианти соддатарин серверест, ки дар муштарии бозӣ сохта шудааст. Мо як ҷаҳон сохтем, як тугмаро пахш кардем ва сервер тавассути шабакаи маҳаллӣ дастрас шуд. Ин вариант ба ягон бори ҷиддӣ тоб оварда наметавонад ва аз ин рӯ, мо ҳатто онро баррасӣ намекунем.

Бахром

Mojang Studios қисми сервери бозиро ҳамчун барномаи Java ройгон паҳн мекунад дар сомонаи расмӣ. Ин ба шумо имкон медиҳад, ки худатонро эҷод кунед сервери бахшидашуда ва ҷаҳони шахсӣ, ки онро барои пайвастшавӣ аз ҳар ҷои сайёра дастрас месозад. Барои онҳое, ки бори аввал ин корро мекунанд, як чизи бузург вуҷуд дорад дастур, дар Wiki бозикунии мувофиқ дастрас аст.

Ин равиш як нуқсони ҷиддӣ дорад, яъне набудани имкониятҳои берун аз қуттӣ барои пайваст кардани плагинҳо, ки функсияҳои серверро васеъ мекунанд ва на танҳо барои автоматикунонии бисёр равандҳо, балки инчунин беҳтар кардани корҳоро имкон медиҳанд. Илова бар ин, сервери расмӣ барои ҳар як плеери пайвастшуда миқдори зиёди RAM дорад.

Буккит

Барномаи серверӣ, ки аз ҷониби мухлисон дар асоси версияи Vanilla сохта шудааст Буккит имкониятҳои бозиро тавассути дастгирии плагинҳо ва модулҳо (тағиротҳо) ба таври назаррас васеъ кард. Он имкон дод, ки на танҳо блокҳои нав ба бозӣ илова карда шаванд, балки инчунин амалҳои гуногунеро, ки барои нармафзори ванилӣ дастнорас буданд, иҷро кунанд. Ҷолиб он аст, ки ин барнома хотираи камро талаб мекард.

Насб кардани Bukkit душвор нест, дастурҳои мувофиқ дар манбаъ мавҷуданд GamePedia. Аммо ин маъно надорад, зеро аз соли 2014 дастаи Буккит пароканда шуд, таҳиягарони лоиҳа кормандони Студияи Mojang шуданд ва анбор партофташуда. Ҳамин тариқ, Буккит ба таври муассир мурдааст ва ба ду лоиҳаи оянда диққат додан маъно дорад.

SpigotMC

Барои осон кардани ҳаёт барои таҳиягарони плагин, зарурати API барои муошират бо ҷаҳони бозӣ вуҷуд дошт. Махз хамин масъаларо эчодкорон хал карданд. spigot, гирифтани асосии Bukkit ва аз нав коркарди он барои ба даст овардани эътимоднокӣ ва иҷрои беҳтар. Бо вуҷуди ин, Анбори Git лоиҳа бо сабаби Санади рақамии Ҳазорсолаи муаллифӣ баста шуд (DMCA), ва аз он ҷо зеркашӣ кардани коди сарчашма ғайриимкон аст.

Дар айни замон, SpigotMC фаъолона таҳия ва истифода мешавад. Он ҳама плагинҳои барои Bukkit сохташударо дастгирӣ мекунад, аммо бо он ба ақиб мувофиқат намекунад. Барои аз байн рафтани DMCA Takedown, як усули шево бо номи BuildTools ихтироъ карда шуд. Ин восита зарурати паҳн кардани замимаи тартибдодашударо аз байн мебарад ва ба корбарон имкон медиҳад, ки Spigot, CraftBukkit ва Bukkit-ро аз коди манбаъ тартиб диҳанд. Ҳамаи ин манъи DMCA-ро бефоида месозад.

PaperMC

Ҳама чиз хуб менамуд, ва Spigot як варианти олӣ шуд. Аммо ин барои баъзе мухлисон кифоя набуд ва онҳо штангаи шахсии Spigot-ро "дар стероидҳо" сохтанд. Дар бораи саҳифаи лоиҳа бартарии асосӣ ин аст, ки "Ин зуд беақл аст". Тахия карда шудааст ҷомеа ба шумо имкон медиҳад, ки мушкилоти пайдошударо зуд ҳал кунед ва API-и васеъ ба шумо имкон медиҳад, ки плагинҳои ҷолиб эҷод кунед. Шумо метавонед PaperMC-ро бо як фармони оддии дар додашуда оғоз кунед хуччатхо.

PaperMC мутобиқати аъло дорад, аз ин рӯ плагинҳои барои SpigotMC навишташуда метавонанд дар PaperMC ба осонӣ кор кунанд, аммо бе дастгирии расмӣ. Мутобиқати ақиб бо SpigotMC низ мавҷуд аст. Акнун, ки мо вариантҳои гуногуни эҷоди серверро номбар кардем, биёед ба масъалаҳои иҷроиш, ки метавонанд ба миён оянд, гузарем.

Мушкилот ва роҳҳои ҳалли

Чизи асосие, ки шумо бояд фаҳмед, ин аст, ки ҳама чизҳои марбут ба коркарди ҷаҳони бозӣ танҳо дар як ядрои компютерии сервери физикӣ коркард карда мешаванд. Пас, агар ногаҳон шумо сервери аъло бо даҳҳо ядрои компютерӣ дошта бошед, пас танҳо як бор карда мешавад. Ҳамаи дигарон амалан бекор хоҳанд буд. Ин меъмории барнома аст ва шумо дар ин бора коре карда наметавонед. Ҳамин тавр, ҳангоми интихоби сервер, шумо бояд на ба шумораи ядроҳо, балки ба басомади соат диққат диҳед. Чӣ қадаре ки он баланд бошад, ҳамон қадар иҷроиш беҳтар мешавад.

Дар мавриди иқтидори RAM, мо бояд аз нишондиҳандаҳои зерин баромад кунем:

  • шумораи пешбинишудаи бозигарон;
  • шумораи банақшагирифташудаи ҷаҳониён дар сервер;
  • андозаи ҳар як ҷаҳон.

Дар хотир бояд дошт, ки барномаи Java ҳамеша ба захираи RAM ниёз дорад. Агар шумо истеъмоли хотираи 8 гигабайтро интизор бошед, пас шумо воқеан бояд 12 дошта бошед. Рақамҳо нисбӣ мебошанд, аммо моҳият тағир намеёбад.

Барои оғоз кардани қисми сервер, мо тавсия медиҳем, ки парчамҳои дар мақола зикршударо истифода барем Танзими JVM - G1GC Парчамҳои ҷамъоварии партов барои Minecraft. Ин "ҷодугари сиёҳ" ба сервер имкон медиҳад, ки "ҷамъкунандаи ахлот" -ро дуруст танзим кунад ва истифодаи RAM-ро оптимизатсия кунад. Шумо набояд хотираи бештареро ҷудо кунед, ки сервер воқеан ҳангоми вуруди авҷи бозингарон истеъмол мекунад.

Эҷоди харитаи блок

"Оё шумо дар ҳақиқат фикр мекунед, ки моҳ танҳо вақте ки шумо ба он нигоҳ мекунед, вуҷуд дорад?" (Алберт Эйнштейн)

Сервери комилан нав. Ҳамин ки плеер бори аввал бомуваффақият пайваст мешавад, аломати бозӣ дар нуқтаи ҷамъшавии умумӣ пайдо мешавад (туша). Ин ягона ҷойест, ки ҷаҳони бозӣ аз ҷониби сервер пешакӣ тавлид мешавад. Дар айни замон, қисми муштарӣ ба танзимот назар мекунад ва параметри асосӣ масофаи кашидан аст. Он бо порчаҳо чен карда мешавад (майдони харита 16×16 ва 256 блок баланд аст) Дар он ҷо чанд порча нишон дода шудааст, маҳз чанд дона аз сервер дархост карда мешавад.

Сервер харитаи ҷаҳонии ҷаҳонро нигоҳ медорад ва агар дар он ҳанӯз дар нуқтаи пайдоиши аломати бозӣ блокҳои тавлидшуда вуҷуд надошта бошанд, сервер онҳоро ба таври динамикӣ тавлид мекунад ва нигоҳ медорад. Ин на танхо захирахои калони хисоббарорро талаб мекунад, балки хачми харитаи чахонро мунтазам зиёд мекунад. Дар яке аз қадимтарин серверҳои анархистӣ 2б2т (2builders2tools) Андозаи харита аллакай аз 8 Тб гузаштааст ва сарҳади ҷаҳон тақрибан 30 миллион блокро ташкил медиҳад. Ҳазорҳо ҳикояҳои марбут ба ин сервер мавҷуданд ва он сазовори мақолаи худ дар силсила аст.

Эҷоди ҷаҳон дар атрофи як бозигар мушкил нест. Эҷоди ҷаҳон дар атрофи садҳо бозигарон боиси сустшавии ночизи сервер дар муддати кӯтоҳ мегардад, ки пас аз он сарборӣ кам мешавад. Эҷоди ҷаҳон дар мизоҷ, ки масофаи тақрибан ҳазор бозигарро пешкаш мекунад, аллакай қодир аст, ки серверро "партофт" ва ҳама муштариёнро аз он берун партофт.

Дар нармафзори сервер арзише ба монанди TPS (Тикс дар як сервер - нишонаҳо дар як сония). Одатан, 1 сикли соат ба 50 мс баробар аст. (1 сонияи ҷаҳони воқеӣ ба 20 тикаи ҷаҳони бозӣ баробар аст). Агар коркарди як нишона то 60 сония зиёд шавад, барномаи сервер баста мешавад ва ҳамаи бозигаронро хориҷ мекунад.

Ҳалли он аст, ки ҷаҳонро бо координатаҳои муайян маҳдуд созед ва тавлиди пешакии блокҳоро анҷом диҳед. Ҳамин тариқ, мо зарурати тавлиди динамикиро дар давоми бозӣ бартараф мекунем ва сервер танҳо бояд харитаи мавҷударо хонд. Ҳарду масъаларо бо як плагин ҳал кардан мумкин аст WorldBorder.

Роҳи осонтарин ин гузоштани сарҳади ҷаҳониро дар шакли доира нисбат ба нуқтаи пайдоиш (ҳарчанд шумо метавонед онро бо ҳама гуна шакл созед) бо як фармон:

/wb set <радиус в блоках> spawn

Агар қаҳрамони бозигар кӯшиш кунад, ки сарҳадро убур кунад, вай якчанд блокро ба ақиб тела медиҳад. Агар ин дар давоми як муддати маҳдуд чанд маротиба анҷом дода шавад, ҷинояткор маҷбуран ба нуқтаи тавлид телепорт карда мешавад. Пеш аз насли ҷаҳон боз ҳам соддатар бо фармони зерин анҷом дода мешавад:

/wb fill

Азбаски ин амал метавонад ба бозигарони сервер таъсир расонад, боварӣ ҳосил кунед:

/wb confirm

Дар маҷмӯъ, барои тавлиди ҷаҳон бо радиусаш 5000 блок (~40 миллиард блок) дар протсессори Intel® Xeon® Gold 2 тақрибан 6240 соат лозим шуд. Аз ин рӯ, агар шумо хоҳед, ки харитаи калонтарро пешакӣ эҷод кунед, бидонед, ки ин раванд вақти муносибро мегирад ва сервери TPS ба таври ҷиддӣ коҳиш хоҳад ёфт. Инчунин, дар хотир доред, ки ҳатто радиуси 5000 блок тақрибан 2 ГБ фазои дискро талаб мекунад.

Сарфи назар аз он, ки версияи охирини плагин барои версияи Minecraft 1.14 таҳия шудааст, ба таври таҷрибавӣ маълум шуд, ки он дар версияҳои минбаъда хуб кор мекунад. Рӯйхати пурраи фармонҳо бо тавзеҳот дастрас аст дар форуми плагин.

Блокҳои мушкилот

Дар Minecraft як қатор блокҳо мавҷуданд. Бо вучуди ин мо диккати хонандагонро ба чунин блок чалб карданием, монанди ТНТ. Тавре ки аз ном бармеояд, ин блок маводи тарканда аст (Эзоҳ аз муҳаррир - ин ашёи бозии ҷаҳони виртуалӣ аст ва ин ашё бо маводи таркандаи воқеӣ ҳеҷ чиз надорад). Хусусияти он дар он аст, ки дар лаҳзаи фаъолшавӣ қувваи ҷозиба ба он таъсир мекунад. Ин серверро маҷбур мекунад, ки ҳамаи координатҳоро ҳисоб кунад, агар дар айни замон блок ба афтодан шурӯъ кунад.

Агар якчанд блокҳои тротил мавҷуд бошанд, пас таркиши як блок боиси таркиш ва фаъол шудани қувваи ҷозиба дар блокҳои ҳамсоя мегардад ва онҳоро ба ҳама самтҳо пароканда мекунад. Ҳамаи ин механикаи зебо дар тарафи сервер ба амалҳои зиёде барои ҳисоб кардани траекторияи ҳар як блок ва инчунин ҳамкорӣ бо блокҳои ҳамсоя монанд аст. Вазифа бениҳоят ресурсталаб аст, ки ҳар кас метавонад онро ба осонӣ тафтиш кунад. Аз блокҳои TNT як куберо тавлид ва тарконед, ки андозаи ҳадди аққал 30x30x30 аст. Ва агар шумо фикр мекардед, ки шумо як компютери хуби бозӣ доред, шумо хеле хато кардаед 😉

/fill ~ ~ ~ ~30 ~30 ~30 minecraft:tnt

Оптимизатсияи сервери Minecraft
Чунин "таҷриба" дар сервер бо Intel® Xeon® Gold 6240 боиси коҳиши ҷиддии TPS ва 80% сарбории CPU дар тӯли тамоми вақти таркиши блок гардид. Аз ин рӯ, агар ягон бозигар ин корро карда тавонад, пас мушкилоти иҷроиш ба ҳамаи бозигарони сервер таъсир мерасонад.

Варианти боз ҳам сахттар - Кристаллҳои канорӣ. Агар TNT ба ҳар ҳол пай дар пай таркад, он гоҳ Crystals Edge ҳама дар як вақт таркиш мекунанд, ки дар назария метавонад кори барномаи серверро комилан қатъ кунад.

Ин сенарияро танҳо тавассути комилан манъ кардани истифодаи ин блокҳо дар ҷаҳони бозӣ пешгирӣ кардан мумкин аст. Масалан, бо истифода аз плагин WorldGuard. Лутфан қайд кунед, ки ин плагин худ аз худ бе плагини дигар кор намекунад Ҷаҳоннамо. Пас, аввал WorldEdit ва сипас WorldGuard-ро насб кунед.

хулоса

Идоракунии дурусти сервери бозӣ кори осон нест. Мушкилотҳо ва пастравии кор шуморо дар ҳар қадам интизор мешаванд, хусусан агар шумо худи механикаи бозиро ба назар нагиред. Ҳама чизро пешгӯӣ кардан ғайриимкон аст, зеро бозигарон баъзан метавонанд хеле эҷодкор бошанд, то серверро маҷбур кунанд, ки кореро иҷро кунанд, ки барои он пешбинӣ нашуда буд. Танҳо тавозуни оқилона байни хатарҳо ва маҳдудиятҳои муқарраршуда ба сервер имкон медиҳад, ки пайваста кор кунад ва иҷрои онро то арзишҳои муҳим кам накунад.

Дар вақти карантин баъзе аз кормандони мо офисҳои дӯстдоштаи худро пазмон шуданд ва тасмим гирифтанд, ки онҳоро дар дохили Minecraft дубора эҷод кунанд. Шумо инчунин имкон доред, ки саломатии худро зери хатар нагузоред ва вақтро дар роҳ сарф накунед.

Барои ин мо ҳамаро ба сервери худ даъват мекунем minecraft.selectel.ru (версияи мизоҷ 1.15.2), ки дар он марказҳои маълумотҳои Цветочная-1 ва Цветочная-2 аз нав сохта шудаанд. Фаромӯш накунед, ки барои зеркашии захираҳои иловагӣ розӣ шавед, онҳо барои намоиши дурусти баъзе ҷойҳо заруранд.

Шуморо квестҳо, рамзҳои таблиғотӣ, тухмҳои Пасха ва муоширати гуворо интизоранд.

Манбаъ: will.com

Илова Эзоҳ