අපේ බ්ලොග් එකේ දැනටමත් තියෙනවා
එහි වසර 9ක ඉතිහාසය පුරා (නිදහස් දිනයේ සිට ගණන් කිරීම), Minecraft සාමාන්ය ක්රීඩකයින් සහ ගීක්වරුන් අතර පුදුමාකාර රසිකයින් සහ වෛර කරන්නන් සංඛ්යාවක් උපයා ඇත. බ්ලොක් වලින් සෑදූ ලෝකයක් පිළිබඳ සරල සංකල්පය සරල විනෝදාස්වාදයක සිට සැබෑ ලෝකයෙන් විවිධ වස්තූන් සන්නිවේදනය කිරීම සහ නිර්මාණය කිරීම සඳහා විශ්වීය මාධ්යයක් බවට පරිණාමය වී ඇත.
ඉදිකිරීම් වලට අමතරව, ක්රීඩාව නිර්මාණය කිරීමට හැකියාව ඇත
නමුත් ක්රීඩකයින් හරියටම නිර්මාණය කරන්නේ කුමක්ද යන්න ගැන තවදුරටත් කතා නොකරමු, නමුත් අපි යෙදුමේ සේවාදායක කොටස දෙස බලා බර යටතේ ක්රියාත්මක වන විට ඇතිවිය හැකි ගැටළු (සමහර විට ඉතා සංකීර්ණ) ඉස්මතු කරමු. අපි ජාවා සංස්කරණය ගැන පමණක් කතා කරන බව වහාම වෙන් කර ගනිමු.
සේවාදායක වර්ග
සරලම විකල්පය වන්නේ ක්රීඩා සේවාදායකයා තුළට ගොඩනගා ඇති සේවාදායකයකි. අපි ලෝකයක් නිර්මාණය කර, එක් බොත්තමක් එබූ අතර, සේවාදායකය දේශීය ජාලය හරහා ප්රවේශ විය. මෙම විකල්පය කිසිදු බරපතල බරකට ඔරොත්තු දිය නොහැකි අතර එබැවින් අපි එය සලකා බලන්නේ නැත.
වැනිලා
Mojang Studios විසින් ක්රීඩාවේ සේවාදායක කොටස Java යෙදුමක් ලෙස නොමිලේ බෙදා හරිනු ලබයි
මෙම ප්රවේශයට එක් බරපතල අඩුපාඩුවක් ඇත, එනම් සේවාදායකයේ ක්රියාකාරීත්වය පුළුල් කරන සහ බොහෝ ක්රියාවලීන් ස්වයංක්රීය කිරීමට පමණක් නොව, කාර්ය සාධනය ප්රශස්ත කිරීමට ඉඩ සලසන ප්ලගීන සම්බන්ධ කිරීමට කොටුවෙන් පිටත හැකියාවන් නොමැතිකම. ඊට අමතරව, සම්බන්ධිත එක් එක් ක්රීඩකයා සඳහා නිල සේවාදායකයට තරමක් විශාල RAM පරිභෝජනයක් ඇත.
බුකිට්
වැනිලා අනුවාදය මත පදනම්ව උද්යෝගිමත් අය විසින් නිර්මාණය කරන ලද සේවාදායක යෙදුමකි
බුකිට් ස්ථාපනය කිරීම අපහසු නැත; අනුරූප උපදෙස් සම්පතෙහි ඇත
SpigotMC
ප්ලගින සංවර්ධකයින් සඳහා ජීවිතය පහසු කිරීම සඳහා, ක්රීඩා ලෝකය සමඟ අන්තර් ක්රියා කිරීමට API අවශ්ය විය. නිර්මාණකරුවන් විසින් විසඳා ඇති ගැටලුව මෙයයි.
දැනට, SpigotMC ක්රියාකාරීව සංවර්ධනය කර භාවිතා වේ. එය බුකිට් සඳහා නිර්මාණය කරන ලද සියලුම ප්ලගීන සඳහා සහය දක්වයි, නමුත් එය සමඟ පසුගාමී නොගැලපේ. DMCA ඉවත් කිරීම මඟ හැරීම සඳහා, BuildTools නම් අලංකාර ක්රමයක් සොයා ගන්නා ලදී. මෙම මෙවලම සම්පාදනය කරන ලද යෙදුමක් බෙදා හැරීමේ අවශ්යතාවය ඉවත් කරන අතර ප්රභව කේතයෙන් Spigot, CraftBukkit සහ Bukkit සම්පාදනය කිරීමට පරිශීලකයින්ට ඉඩ සලසයි. මේ සියල්ලෙන් DMCA තහනම පලක් නැත.
කඩදාසි එම්.සී
සෑම දෙයක්ම සිසිල් බවක් පෙනෙන්නට තිබූ අතර, Spigot විශිෂ්ට විකල්පයක් බවට පත් විය. නමුත් සමහර උද්යෝගිමත් අයට මෙය ප්රමාණවත් නොවූ අතර, ඔවුන් විසින්ම "ස්ටෙරොයිඩ් මත" ස්පිගොට් දෙබලක් නිර්මාණය කළහ. මත
PaperMC හි විශිෂ්ට අනුකූලතාවයක් ඇත, එබැවින් SpigotMC සඳහා ලියා ඇති ප්ලගීන පහසුවෙන් PaperMC මත වැඩ කළ හැකි නමුත් නිල සහාය නොමැතිව. SpigotMC සමඟ පසුගාමී ගැළපුම ද පවතී. දැන් අපි සේවාදායකයක් නිර්මාණය කිරීම සඳහා විවිධ විකල්ප ලැයිස්තුගත කර ඇති බැවින්, මතු විය හැකි කාර්ය සාධන ගැටළු වෙත යමු.
ගැටළු සහ විසඳුම්
ඔබ තේරුම් ගත යුතු ප්රධානතම දෙය නම් ක්රීඩා ලෝකය සැකසීමට සම්බන්ධ සෑම දෙයක්ම භෞතික සේවාදායකයේ එක් පරිගණක හරයක් මත පමණක් සකසනු ඇති බවයි. එබැවින් හදිසියේම ඔබට පරිගණක හර දුසිමක් සහිත විශිෂ්ට සේවාදායකයක් තිබේ නම්, එකක් පමණක් පටවනු ලැබේ. අනෙක් සියල්ලම පාහේ නිෂ්ක්රීය වනු ඇත. මෙය යෙදුමේ ගෘහ නිර්මාණ ශිල්පය වන අතර ඔබට ඒ ගැන කළ හැකි කිසිවක් නැත. එබැවින් සේවාදායකයක් තෝරාගැනීමේදී, ඔබ අවධානය යොමු කළ යුත්තේ කෝර් ගණනට නොව ඔරලෝසු සංඛ්යාතයට ය. එය වැඩි වන තරමට කාර්ය සාධනය වඩා හොඳ වනු ඇත.
RAM ධාරිතාව පිළිබඳ ගැටළුව සම්බන්ධයෙන්, අපි පහත දර්ශක වලින් ඉදිරියට යා යුතුය:
- සැලසුම් කළ ක්රීඩකයින් සංඛ්යාව;
- සේවාදායකයේ සැලසුම් කළ ලෝක ගණන;
- එක් එක් ලෝකයේ විශාලත්වය.
ජාවා යෙදුමකට සෑම විටම RAM සංචිතයක් අවශ්ය බව මතක තබා ගත යුතුය. ඔබ ගිගාබයිට් 8 ක මතක පරිභෝජනයක් අපේක්ෂා කරන්නේ නම්, ඇත්ත වශයෙන්ම ඔබට 12 ක් තිබිය යුතුය. සංඛ්යා සාපේක්ෂ වේ, නමුත් සාරය වෙනස් නොවේ.
සේවාදායක කොටස ආරම්භ කිරීම සඳහා, ලිපියේ දක්වා ඇති කොඩි භාවිතා කිරීම අපි නිර්දේශ කරමු
බ්ලොක් සිතියමක් උත්පාදනය කිරීම
"ඔබ ඇත්තටම සිතන්නේ ඔබ සඳ එය දෙස බලන විට පමණක් පවතින බවයි?" (ඇල්බට් අයින්ස්ටයින්)
සම්පූර්ණයෙන්ම නව සේවාදායකයක්. ක්රීඩකයා ප්රථම වරට සාර්ථකව සම්බන්ධ වූ වහාම, ක්රීඩා චරිතය සාමාන්ය රැස්වන ස්ථානයේ (spawn) දිස්වේ. ක්රීඩා ලෝකය සේවාදායකය විසින් පූර්ව-ජනනය කරන එකම ස්ථානය මෙයයි. ඒ සමගම, සේවාදායක කොටස සැකසුම් දෙස බලයි, සහ ප්රධාන පරාමිතිය වන්නේ ඇඳීමේ දුරයි. එය කුට්ටි වලින් මනිනු ලැබේ (සිතියම් ප්රදේශය 16×16 සහ කුට්ටි 256 ක් උසයි) කුට්ටි කීයක් දක්වා තිබේද යන්න හරියටම සේවාදායකයෙන් කොපමණ ප්රමාණයක් ඉල්ලනු ඇත්ද යන්නයි.
සේවාදායකය ලෝකයේ ගෝලීය සිතියමක් ගබඩා කරන අතර, ක්රීඩා චරිතයේ පෙනුමේ දී තවමත් ජනනය කරන ලද කුට්ටි නොමැති නම්, සේවාදායකය ගතිකව ඒවා ජනනය කර ගබඩා කරයි. මේ සඳහා විශාල පරිගණක සම්පත් අවශ්ය පමණක් නොව, එය නිරන්තරයෙන් ලෝක සිතියමේ ප්රමාණය වැඩි කරයි. පැරණිතම අරාජකවාදී සර්වර් එකක
එක් ක්රීඩකයෙකු වටා ලෝකයක් ජනනය කිරීම ගැටළුවක් නොවේ. ක්රීඩකයින් සිය ගණනක් වටා ලෝකයක් උත්පාදනය කිරීම කෙටි කාලයක් සඳහා සුළු සේවාදායක මන්දගාමිත්වයට හේතු වනු ඇත, පසුව භාරය අඩු වනු ඇත. ක්රීඩකයින් දහසක් පමණ දුරින් සේවාදායක විදැහුම්කරණයේ ලෝකයක් උත්පාදනය කිරීම, කල් ඉකුත්වීම හේතුවෙන් සේවාදායකය “අතහැරීමට” සහ සියලු සේවාදායකයින් එයින් ඉවතට විසි කිරීමට දැනටමත් හැකියාව ඇත.
වැනි අගයක් සර්වර් මෘදුකාංගයේ ඇත TPS (සේවාදායකයට කිනිතුල්ලන් - තත්පරයට කිනිතුල්ලන්). සාමාන්යයෙන්, 1 ඔරලෝසු චක්රය 50 ms ට සමාන වේ. (සැබෑ ලෝකයේ තත්පර 1 ක් ක්රීඩා ලෝකයේ කිනිතුල්ලන් 20 ට සමාන වේ). එක් ටික් එකක් සැකසීම තත්පර 60 දක්වා වැඩි වුවහොත්, සියලුම ක්රීඩකයින් ඉවතට විසි කරමින් සේවාදායක යෙදුම වසා දමනු ඇත.
විසඳුම වන්නේ ලෝකය යම් යම් ඛණ්ඩාංකවලට සීමා කිරීම සහ මූලික වාරණ උත්පාදනය සිදු කිරීමයි. මේ අනුව, අපි ක්රීඩාව අතරතුර ගතික උත්පාදනය සඳහා අවශ්යතාවය ඉවත් කරන අතර, සේවාදායකයට පමණක් පවතින සිතියමක් කියවීමට අවශ්ය වනු ඇත. ගැටළු දෙකම එකම ප්ලගිනයකින් විසඳා ගත හැකිය
පහසුම ක්රමය නම් එක් විධානයකින් ලෝක මායිම ස්පෝන් ලක්ෂ්යයට සාපේක්ෂව (ඔබට එය ඕනෑම හැඩයකින් කළ හැකි වුවද) රවුමක ස්වරූපයෙන් සැකසීමයි:
/wb set <радиус в блоках> spawn
ක්රීඩකයාගේ චරිතය මායිම හරහා යාමට උත්සාහ කළහොත්, ඔහු කුට්ටි කිහිපයක් පසුපසට තල්ලු කරනු ලැබේ. මෙය සීමිත කාලයක් තුළ කිහිප වතාවක් සිදු කළහොත්, වැරදිකරු බලහත්කාරයෙන් ස්පෝන් පොයින්ට් වෙත ගෙන යනු ඇත. ලෝකයේ පූර්ව උත්පාදනය ඊටත් වඩා සරල ලෙස සිදු කරනු ලැබේ, විධානය සමඟ:
/wb fill
මෙම ක්රියාව සේවාදායකයේ ක්රීඩකයන්ට බලපෑම් කළ හැකි බැවින්, තහවුරු කිරීමට වග බලා ගන්න:
/wb confirm
සමස්තයක් වශයෙන්, Intel® Xeon® Gold 5000 ප්රොසෙසරයක් මත කුට්ටි 40 (~ බිලියන 2 කුට්ටි) අරයක් සහිත ලෝකයක් ජනනය කිරීමට ආසන්න වශයෙන් පැය 6240 ක් ගත විය. එබැවින්, ඔබට විශාල සිතියමක් පෙර-ජනනය කිරීමට අවශ්ය නම්, ඒ බව දැන ගන්න. මෙම ක්රියාවලියට හොඳ කාලයක් ගත වන අතර, සේවාදායක TPS බරපතල ලෙස අඩු කරනු ඇත. එසේම, බ්ලොක් 5000 ක අරය සඳහා පවා ආසන්න වශයෙන් 2 GB තැටි ඉඩක් අවශ්ය වනු ඇති බව මතක තබා ගන්න.
ප්ලගිනයේ නවතම අනුවාදය Minecraft අනුවාදය 1.14 සඳහා සංවර්ධනය කර ඇතත්, එය පසුකාලීන අනුවාදවල විශිෂ්ට ලෙස ක්රියා කරන බව පර්යේෂණාත්මකව සොයා ගන්නා ලදී. පැහැදිලි කිරීම් සහිත සම්පූර්ණ විධාන ලැයිස්තුවක් තිබේ
ගැටළු අවහිර කිරීම්
Minecraft හි විශාල විවිධ කුට්ටි තිබේ. කෙසේ වෙතත්, අපි පාඨකයන්ගේ අවධානය එවැනි අවහිරයක් වෙත යොමු කිරීමට කැමැත්තෙමු TNT. නමට අනුව, මෙම කුට්ටිය පුපුරන ද්රව්යයකි (සංස්කාරක සටහන - මෙය අතථ්ය ලෝකයේ ක්රීඩා අයිතමයක් වන අතර මෙම අයිතමයේ සැබෑ පුපුරණ ද්රව්ය කිසිවක් නොමැත). එහි විශේෂත්වය වන්නේ සක්රිය කිරීමේ මොහොතේ ගුරුත්වාකර්ෂණ බලය එය මත ක්රියා කිරීමට පටන් ගනියි. මේ මොහොතේ බ්ලොක් එක වැටීමට පටන් ගන්නේ නම්, සියලුම ඛණ්ඩාංක ගණනය කිරීමට මෙය සේවාදායකයට බල කරයි.
ටීඑන්ටී කුට්ටි කිහිපයක් තිබේ නම්, එක් බ්ලොක් එකක පිපිරීමක් පුපුරා යාම සහ අසල්වැසි කුට්ටි වල ගුරුත්වාකර්ෂණය සක්රීය කිරීම, ඒවා සෑම දිශාවකටම විසිරී යයි. සේවාදායකයේ පැත්තේ ඇති මේ සියලු අලංකාර යාන්ත්ර විද්යාව එක් එක් බ්ලොක් එකේ ගමන් පථය ගණනය කිරීමට මෙන්ම අසල්වැසි කුට්ටි සමඟ අන්තර්ක්රියා කිරීමට බොහෝ මෙහෙයුම් මෙන් පෙනේ. කාර්යය අතිශයින්ම සම්පත්-දැඩි වන අතර, ඕනෑම කෙනෙකුට පහසුවෙන් පරීක්ෂා කළ හැකිය. අවම වශයෙන් 30x30x30 ප්රමාණයේ TNT කුට්ටි වලින් ඝනකයක් ජනනය කර පුපුරවා හරින්න. ඔබ සතුව හොඳ, බලවත් සූදු පරිගණකයක් ඇතැයි ඔබ සිතුවා නම්, ඔබ බොහෝ වැරදියි 😉
/fill ~ ~ ~ ~30 ~30 ~30 minecraft:tnt
Intel® Xeon® Gold 6240 සමඟ සේවාදායකයක සමාන "අත්හදා බැලීමක්" සම්පූර්ණ බ්ලොක් පිපිරුම් කාලය තුළ බරපතල TPS පහත වැටීමක් සහ 80% CPU පැටවීමකට හේතු විය. එමනිසා, ඕනෑම ක්රීඩකයෙකුට මෙය කළ හැකි නම්, කාර්ය සාධන ගැටළුව සේවාදායකයේ සියලුම ක්රීඩකයින්ට බලපානු ඇත.
ඊටත් වඩා දැඩි විකල්පයක් - එජ් ස්ඵටික. කෙසේ වෙතත් ටීඑන්ටී අනුක්රමිකව පිපිරෙන්නේ නම්, එජ් ක්රිස්ටල් එකවරම පිපිරෙන අතර එමඟින් න්යායාත්මකව සේවාදායක යෙදුමේ ක්රියාකාරිත්වය සම්පූර්ණයෙන්ම නැවැත්විය හැකිය.
මෙම තත්ත්වය වළක්වා ගත හැක්කේ ක්රීඩා ලෝකයේ මෙම බ්ලොක් භාවිතය සම්පූර්ණයෙන්ම තහනම් කිරීමෙන් පමණි. උදාහරණයක් ලෙස, ප්ලගිනය භාවිතා කිරීම
නිගමනය
ක්රීඩා සේවාදායකයක් නිසි ලෙස කළමනාකරණය කිරීම පහසු කාර්යයක් නොවේ. දුෂ්කරතා සහ කාර්ය සාධනය අඩුවීම සෑම අවස්ථාවකදීම ඔබ බලා සිටිනු ඇත, විශේෂයෙන් ඔබ ක්රීඩා යාන්ත්ර විද්යාව සැලකිල්ලට නොගන්නේ නම්. සෑම දෙයක්ම පුරෝකථනය කිරීම කළ නොහැක්කකි, මන්ද ක්රීඩකයින් සමහර විට සේවාදායකයාට අදහස් නොකළ දෙයක් කිරීමට බල කිරීමට උත්සාහ කිරීමේදී ඉතා නිර්මාණශීලී විය හැකිය. අවදානම් සහ ස්ථාපිත සීමා කිරීම් අතර සාධාරණ සමතුලිතතාවයක් පමණක් සේවාදායකයට අඛණ්ඩව ක්රියා කිරීමට ඉඩ සලසන අතර එහි ක්රියාකාරීත්වය තීරණාත්මක අගයන් දක්වා අඩු නොකරයි.
නිරෝධායනය අතරතුර, අපගේ සමහර සේවකයින්ට ඔවුන්ගේ ප්රියතම කාර්යාල මඟ හැරුණු අතර ඒවා Minecraft තුළ ප්රතිනිර්මාණය කිරීමට තීරණය කළහ. ඔබේ සෞඛ්යය අවදානමට ලක් නොකර හෝ පාරේ කාලය නාස්ති නොකර අප හමුවීමට පැමිණීමට ඔබටත් අවස්ථාවක් තිබේ.
මෙය සිදු කිරීම සඳහා, අපි සෑම කෙනෙකුටම අපගේ සේවාදායකයට ආරාධනා කරන්නෙමු minecraft.selectel.ru (සේවාදායක අනුවාදය 1.15.2), එහිදී දත්ත මධ්යස්ථාන Tsvetochnaya-1 සහ Tsvetochnaya-2 ප්රතිනිර්මාණය කරන ලදී. අමතර සම්පත් බාගත කිරීමට එකඟ වීමට අමතක නොකරන්න, සමහර ස්ථානවල නිවැරදි ප්රදර්ශනය සඳහා ඒවා අවශ්ය වේ.
Quests, ප්රවර්ධන කේත, පාස්කු බිත්තර සහ ප්රසන්න සන්නිවේදනය ඔබ බලා සිටී.
මූලාශ්රය: www.habr.com