మా బ్లాగులో ఇప్పటికే ఉన్నాయి
దాని 9-సంవత్సరాల చరిత్రలో (విడుదల తేదీ నుండి లెక్కింపు), Minecraft సాధారణ ఆటగాళ్ళు మరియు గీక్లలో అద్భుతమైన సంఖ్యలో అభిమానులను మరియు ద్వేషించేవారిని సంపాదించుకుంది. బ్లాక్లతో రూపొందించబడిన ప్రపంచం యొక్క సాధారణ భావన, వినోదం యొక్క సాధారణ రూపం నుండి వాస్తవ ప్రపంచం నుండి వివిధ వస్తువులను కమ్యూనికేట్ చేయడానికి మరియు సృష్టించడానికి సార్వత్రిక మాధ్యమంగా పరిణామం చెందింది.
నిర్మాణంతో పాటు, గేమ్ సృష్టించగల సామర్థ్యాన్ని కలిగి ఉంటుంది
కానీ ఆటగాళ్ళు సరిగ్గా ఏమి సృష్టించారనే దాని గురించి మరింత మాట్లాడనివ్వండి, కానీ అప్లికేషన్ యొక్క సర్వర్ భాగాన్ని చూద్దాం మరియు లోడ్ కింద ఆపరేషన్ సమయంలో తలెత్తే సమస్యలను (కొన్నిసార్లు చాలా క్లిష్టంగా) హైలైట్ చేద్దాం. మేము జావా ఎడిషన్ గురించి మాత్రమే మాట్లాడతామని వెంటనే రిజర్వేషన్ చేద్దాం.
సర్వర్ల రకాలు
గేమ్ క్లయింట్లో నిర్మించిన సర్వర్ సరళమైన ఎంపిక. మేము ప్రపంచాన్ని సృష్టించాము, ఒక బటన్ను నొక్కి, సర్వర్ స్థానిక నెట్వర్క్లో అందుబాటులోకి వచ్చింది. ఈ ఐచ్ఛికం ఏదైనా తీవ్రమైన భారాన్ని తట్టుకోదు మరియు అందువల్ల మేము దానిని కూడా పరిగణించము.
వెనిలా
Mojang Studios గేమ్లోని సర్వర్ భాగాన్ని జావా అప్లికేషన్గా ఉచితంగా పంపిణీ చేస్తోంది
ఈ విధానంలో ఒక తీవ్రమైన లోపం ఉంది, అవి సర్వర్ యొక్క కార్యాచరణను విస్తరించే ప్లగిన్లను కనెక్ట్ చేయడానికి మరియు అనేక ప్రక్రియలను ఆటోమేట్ చేయడానికి మాత్రమే కాకుండా, పనితీరును ఆప్టిమైజ్ చేయడానికి కూడా అనుమతించే అవుట్-ఆఫ్-బాక్స్ సామర్థ్యాలు లేకపోవడం. అదనంగా, అధికారిక సర్వర్ కనెక్ట్ చేయబడిన ప్రతి ప్లేయర్కు చాలా పెద్ద RAM వినియోగాన్ని కలిగి ఉంటుంది.
బుక్కిట్
వెనిలా వెర్షన్ ఆధారంగా ఔత్సాహికులు సృష్టించిన సర్వర్ అప్లికేషన్
బుక్కిట్ను ఇన్స్టాల్ చేయడం కష్టం కాదు; సంబంధిత సూచనలు వనరుపై ఉన్నాయి
స్పిగోట్ఎంసి
ప్లగిన్ డెవలపర్ల కోసం జీవితాన్ని సులభతరం చేయడానికి, గేమ్ ప్రపంచంతో పరస్పర చర్య చేయడానికి API అవసరం. సృష్టికర్తలు పరిష్కరించిన సమస్య ఇదే.
ప్రస్తుతం, SpigotMC చురుకుగా అభివృద్ధి చేయబడింది మరియు ఉపయోగించబడుతుంది. ఇది బుక్కిట్ కోసం సృష్టించబడిన అన్ని ప్లగిన్లకు మద్దతు ఇస్తుంది, కానీ దానితో వెనుకకు అనుకూలంగా లేదు. DMCA తొలగింపును అధిగమించడానికి, BuildTools అనే సొగసైన పద్ధతి కనుగొనబడింది. ఈ సాధనం సంకలనం చేయబడిన అప్లికేషన్ను పంపిణీ చేయవలసిన అవసరాన్ని తొలగిస్తుంది మరియు సోర్స్ కోడ్ నుండి Spigot, CraftBukkit మరియు Bukkitలను కంపైల్ చేయడానికి వినియోగదారులను అనుమతిస్తుంది. ఇదంతా డిఎంసిఎ నిషేధం పనికిరాకుండా పోతుంది.
పేపర్ MC
ప్రతిదీ చల్లగా అనిపించింది మరియు స్పిగోట్ ఒక గొప్ప ఎంపికగా మారింది. కానీ కొంతమంది ఔత్సాహికులకు ఇది సరిపోదు మరియు వారు "స్టెరాయిడ్స్పై" స్పిగోట్ యొక్క వారి స్వంత ఫోర్క్ను సృష్టించారు. పై
PaperMC అద్భుతమైన అనుకూలతను కలిగి ఉంది, కాబట్టి SpigotMC కోసం వ్రాసిన ప్లగిన్లు PaperMCలో సులభంగా పని చేయగలవు, కానీ అధికారిక మద్దతు లేకుండా. SpigotMCతో వెనుకబడిన అనుకూలత కూడా ఉంది. ఇప్పుడు మేము సర్వర్ను సృష్టించడానికి వివిధ ఎంపికలను జాబితా చేసాము, ఉత్పన్నమయ్యే పనితీరు సమస్యలకు వెళ్దాం.
సమస్యలు మరియు పరిష్కారాలు
మీరు అర్థం చేసుకోవలసిన ప్రధాన విషయం ఏమిటంటే, గేమ్ ప్రపంచాన్ని ప్రాసెస్ చేయడానికి సంబంధించిన ప్రతిదీ భౌతిక సర్వర్ యొక్క ఒక కంప్యూటింగ్ కోర్లో మాత్రమే ప్రాసెస్ చేయబడుతుంది. కాబట్టి అకస్మాత్తుగా మీరు డజను కంప్యూటింగ్ కోర్లతో అద్భుతమైన సర్వర్ను కలిగి ఉంటే, అప్పుడు ఒకటి మాత్రమే లోడ్ చేయబడుతుంది. మిగతావన్నీ వాస్తవంగా పనిలేకుండా ఉంటాయి. ఇది అప్లికేషన్ యొక్క నిర్మాణం మరియు దాని గురించి మీరు ఏమీ చేయలేరు. కాబట్టి సర్వర్ను ఎంచుకున్నప్పుడు, మీరు కోర్ల సంఖ్యకు కాకుండా క్లాక్ ఫ్రీక్వెన్సీకి శ్రద్ద ఉండాలి. అది ఎంత ఎక్కువైతే అంత మంచి పనితీరు ఉంటుంది.
RAM సామర్థ్యం సమస్యకు సంబంధించి, మేము ఈ క్రింది సూచికల నుండి కొనసాగాలి:
- ప్రణాళికాబద్ధమైన ఆటగాళ్ల సంఖ్య;
- సర్వర్లోని ప్రపంచాల ప్రణాళిక సంఖ్య;
- ప్రతి ప్రపంచం యొక్క పరిమాణం.
జావా అప్లికేషన్కు ఎల్లప్పుడూ RAM రిజర్వ్ అవసరమని గుర్తుంచుకోవాలి. మీరు 8 గిగాబైట్ల మెమరీ వినియోగాన్ని ఆశించినట్లయితే, మీరు వాస్తవానికి 12 కలిగి ఉండాలి. సంఖ్యలు సాపేక్షంగా ఉంటాయి, కానీ సారాంశం మారదు.
సర్వర్ భాగాన్ని ప్రారంభించడానికి, వ్యాసంలో పేర్కొన్న ఫ్లాగ్లను ఉపయోగించమని మేము సిఫార్సు చేస్తున్నాము
బ్లాక్ మ్యాప్ను రూపొందిస్తోంది
"మీరు చంద్రుడిని చూసినప్పుడు మాత్రమే ఉన్నారని మీరు నిజంగా అనుకుంటున్నారా?" (ఆల్బర్ట్ ఐన్స్టీన్)
పూర్తిగా కొత్త సర్వర్. ఆటగాడు మొదటి సారి విజయవంతంగా కనెక్ట్ అయిన వెంటనే, గేమ్ క్యారెక్టర్ సాధారణ సేకరణ పాయింట్ (స్పాన్) వద్ద కనిపిస్తుంది. గేమ్ ప్రపంచం సర్వర్ ద్వారా ముందుగా రూపొందించబడిన ఏకైక ప్రదేశం ఇది. అదే సమయంలో, క్లయింట్ భాగం సెట్టింగులను చూస్తుంది మరియు కీ పరామితి డ్రాయింగ్ దూరం. ఇది భాగాలుగా కొలుస్తారు (మ్యాప్ ప్రాంతం 16×16 మరియు 256 బ్లాక్ల ఎత్తు)
సర్వర్ ప్రపంచం యొక్క గ్లోబల్ మ్యాప్ను నిల్వ చేస్తుంది మరియు గేమ్ క్యారెక్టర్ కనిపించే సమయంలో ఇంకా అందులో రూపొందించబడిన బ్లాక్లు లేనట్లయితే, సర్వర్ డైనమిక్గా వాటిని ఉత్పత్తి చేస్తుంది మరియు వాటిని నిల్వ చేస్తుంది. దీనికి పెద్ద కంప్యూటింగ్ వనరులు అవసరం మాత్రమే కాకుండా, ఇది ప్రపంచ పటం యొక్క పరిమాణాన్ని నిరంతరం పెంచుతుంది. పురాతన అరాచక సర్వర్లలో ఒకటి
ఒక ఆటగాడి చుట్టూ ప్రపంచాన్ని రూపొందించడం సమస్య కాదు. వందలకొద్దీ ప్లేయర్ల చుట్టూ ప్రపంచాన్ని రూపొందించడం వలన కొద్దిసేపటికి చిన్నపాటి సర్వర్ మందగమనం ఏర్పడుతుంది, ఆ తర్వాత లోడ్ తగ్గుతుంది. క్లయింట్ రెండరింగ్ దూరం దాదాపు వెయ్యి మంది ప్లేయర్ల వద్ద ప్రపంచాన్ని రూపొందించడం ఇప్పటికే సర్వర్ను "డ్రాప్" చేయగలదు మరియు గడువు ముగిసినందున క్లయింట్లందరినీ దాని నుండి బయటకు పంపగలదు.
సర్వర్ సాఫ్ట్వేర్లో వంటి విలువ ఉంది TPS (సర్వర్కి టిక్లు - సెకనుకు టిక్లు). సాధారణంగా, 1 క్లాక్ సైకిల్ 50 ఎంఎస్లకు సమానం. (వాస్తవ ప్రపంచంలోని 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. పేరు సూచించినట్లుగా, ఈ బ్లాక్ ఒక పేలుడు పదార్థం (ఎడిటర్ యొక్క గమనిక - ఇది వర్చువల్ ప్రపంచంలోని గేమ్ అంశం మరియు ఈ అంశం నిజమైన పేలుడు పదార్థాలతో ఏమీ లేదు). దీని ప్రత్యేకత ఏమిటంటే, క్రియాశీలత సమయంలో గురుత్వాకర్షణ శక్తి దానిపై పనిచేయడం ప్రారంభిస్తుంది. ఈ సమయంలో బ్లాక్ పడిపోవడం ప్రారంభమైతే, ఇది సర్వర్ని అన్ని కోఆర్డినేట్లను లెక్కించడానికి బలవంతం చేస్తుంది.
అనేక TNT బ్లాక్లు ఉంటే, ఒక బ్లాక్ యొక్క పేలుడు విస్ఫోటనం మరియు పొరుగు బ్లాక్లలో గురుత్వాకర్షణ క్రియాశీలతను కలిగిస్తుంది, వాటిని అన్ని దిశలలో చెల్లాచెదురు చేస్తుంది. సర్వర్ వైపున ఉన్న ఈ అందమైన మెకానిక్స్ ప్రతి బ్లాక్ యొక్క పథాన్ని లెక్కించడానికి చాలా కార్యకలాపాల వలె కనిపిస్తుంది, అలాగే పొరుగు బ్లాక్లతో పరస్పర చర్య చేస్తుంది. పని చాలా వనరు-ఇంటెన్సివ్, ఎవరైనా సులభంగా తనిఖీ చేయవచ్చు. కనీసం 30x30x30 పరిమాణంలో ఉన్న TNT బ్లాక్ల నుండి ఒక క్యూబ్ను రూపొందించండి మరియు పేల్చండి. మరియు మీ వద్ద మంచి, శక్తివంతమైన గేమింగ్ కంప్యూటర్ ఉందని మీరు అనుకుంటే, మీరు చాలా తప్పుగా భావించారు 😉
/fill ~ ~ ~ ~30 ~30 ~30 minecraft:tnt
Intel® Xeon® Gold 6240తో సర్వర్లో ఇదే విధమైన "ప్రయోగం" మొత్తం బ్లాక్ డిటోనేషన్ సమయంలో తీవ్రమైన TPS తగ్గుదలకు మరియు 80% CPU లోడ్కు దారితీసింది. అందువల్ల, ఏదైనా ఆటగాడు దీన్ని చేయగలిగితే, పనితీరు సమస్య సర్వర్లోని ఆటగాళ్లందరినీ ప్రభావితం చేస్తుంది.
మరింత కఠినమైన ఎంపిక - ఎడ్జ్ స్ఫటికాలు. అయితే TNT వరుసగా పేలినట్లయితే, ఎడ్జ్ స్ఫటికాలు ఒకే సమయంలో పేలుతాయి, ఇది సిద్ధాంతపరంగా సర్వర్ అప్లికేషన్ యొక్క ఆపరేషన్ను పూర్తిగా ఆపివేస్తుంది.
గేమ్ ప్రపంచంలో ఈ బ్లాక్ల వినియోగాన్ని పూర్తిగా నిషేధించడం ద్వారా మాత్రమే ఈ దృశ్యాన్ని నివారించవచ్చు. ఉదాహరణకు, ప్లగ్ఇన్ ఉపయోగించి
తీర్మానం
గేమ్ సర్వర్ని సరిగ్గా నిర్వహించడం అంత తేలికైన పని కాదు. ప్రతి మలుపులో ఇబ్బందులు మరియు తగ్గిన పనితీరు మీకు ఎదురుచూస్తాయి, ప్రత్యేకించి మీరు గేమ్ప్లే మెకానిక్లను పరిగణనలోకి తీసుకోకపోతే. ప్రతిదీ ఊహించడం అసాధ్యం, ఎందుకంటే ఆటగాళ్ళు కొన్నిసార్లు సర్వర్ను ఉద్దేశించని పనిని చేయమని బలవంతం చేయడంలో చాలా సృజనాత్మకంగా ఉంటారు. రిస్క్లు మరియు స్థాపించబడిన పరిమితుల మధ్య సహేతుకమైన బ్యాలెన్స్ మాత్రమే సర్వర్ నిరంతరం పనిచేయడానికి అనుమతిస్తుంది మరియు దాని పనితీరును క్లిష్టమైన విలువలకు తగ్గించదు.
క్వారంటైన్ సమయంలో, మా ఉద్యోగులు కొందరు తమకు ఇష్టమైన కార్యాలయాలను కోల్పోయారు మరియు వాటిని Minecraft లోపల మళ్లీ సృష్టించాలని నిర్ణయించుకున్నారు. మీ ఆరోగ్యాన్ని పణంగా పెట్టకుండా లేదా రోడ్డుపై సమయాన్ని వృథా చేయకుండా మమ్మల్ని సందర్శించడానికి మీకు కూడా అవకాశం ఉంది.
దీన్ని చేయడానికి, మేము ప్రతి ఒక్కరినీ మా సర్వర్కు ఆహ్వానిస్తున్నాము minecraft.selectel.ru (క్లయింట్ వెర్షన్ 1.15.2), ఇక్కడ డేటా కేంద్రాలు Tsvetochnaya-1 మరియు Tsvetochnaya-2 పునఃసృష్టి చేయబడ్డాయి. అదనపు వనరులను డౌన్లోడ్ చేయడానికి అంగీకరించడం మర్చిపోవద్దు, కొన్ని స్థానాల సరైన ప్రదర్శన కోసం అవి అవసరం.
అన్వేషణలు, ప్రచార కోడ్లు, ఈస్టర్ గుడ్లు మరియు ఆహ్లాదకరమైన కమ్యూనికేషన్ మీ కోసం వేచి ఉన్నాయి.
మూలం: www.habr.com