Megapack: Factorio የ200-ተጫዋች ባለብዙ ተጫዋች ችግርን እንዴት እንደፈታው።

Megapack: Factorio የ200-ተጫዋች ባለብዙ ተጫዋች ችግርን እንዴት እንደፈታው።
በዚህ አመት ግንቦት ላይ በተጫዋችነት ተሳትፌያለሁ KatherineOfSky MMO ክስተቶች. የተጫዋቾች ቁጥር የተወሰነ ቁጥር ላይ ሲደርስ በየደቂቃው የተወሰኑት "እንደወደቁ" አስተውያለሁ። እንደ እድል ሆኖ ለእናንተ (ግን ለኔ አይደለም) እኔ ከነዚህ ተጫዋቾች አንዱ ነበርኩ። ሁል ጊዜበጥሩ ግንኙነት እንኳን. እንደ የግል ፈተና ወስጄ የችግሩን መንስኤዎች መፈለግ ጀመርኩ. ከሶስት ሳምንታት ማረም፣ሙከራ እና መጠገን በኋላ ስህተቱ በመጨረሻ ተስተካክሏል፣ነገር ግን ጉዞው ያን ያህል ቀላል አልነበረም።

በባለብዙ-ተጫዋች ጨዋታዎች ውስጥ ያሉ ችግሮች ለመከታተል በጣም አስቸጋሪ ናቸው. ብዙውን ጊዜ የሚከሰቱት በጣም በተወሰኑ የአውታረ መረብ መለኪያዎች እና በጣም በተወሰኑ የጨዋታ ሁኔታዎች (በዚህ ሁኔታ ከ 200 በላይ ተጫዋቾች) ነው. እና ችግር እንደገና ሊባዛ በሚችልበት ጊዜ እንኳን በትክክል ማረም አይቻልም ምክንያቱም መግቻ ነጥቦችን ማስገባት ጨዋታውን ያቆማል ፣ የሰዓት ቆጣሪዎችን ያበላሻል እና ብዙውን ጊዜ ግንኙነቱ በጊዜ ማብቂያ ምክንያት ይጠፋል። ግን ለፅናት እና ለተጠራ ድንቅ መሳሪያ ምስጋና ይግባው እንከንየለሽ ምን እየሆነ እንዳለ ለማወቅ ችያለሁ።

በአጭር አነጋገር፣ በመዘግየቱ ሁኔታ ማስመሰል ስህተት እና ያልተሟላ ትግበራ ደንበኛው አንዳንድ ጊዜ በግምት 400 የሚሆኑ የጨዋታ አካላትን ለመምረጥ የተጫዋች ግቤት እርምጃዎችን ያካተተ በአንድ የሰዓት ዑደት ውስጥ የአውታረ መረብ ፓኬት መላክ ነበረበት ባለበት ሁኔታ ውስጥ እራሱን አገኘ። "ሜጋፓኬት" ብለን እንጠራዋለን. ከዚያ በኋላ አገልጋዩ እነዚህን ሁሉ የግቤት ድርጊቶች በትክክል መቀበል ብቻ ሳይሆን ወደ ሌሎች ደንበኞችም መላክ አለበት። 200 ደንበኞች ካሉዎት, ይህ በፍጥነት ችግር ይሆናል. ወደ ሰርቨሩ የሚወስደው ቻናል በፍጥነት ይዘጋጋል፣ይህም የፓኬት መጥፋት እና እንደገና የተጠየቁ እሽጎች መጥፋት ያስከትላል። የግቤት እርምጃዎችን ለሌላ ጊዜ ማስተላለፍ ብዙ ደንበኞች ሜጋፓኬቶችን መላክ እንዲጀምሩ ያደርጋቸዋል፣ እና የእነሱ መጥፋት የበለጠ እየጠነከረ ይሄዳል። ስኬታማ ደንበኞች ማገገም ችለዋል ፣ የተቀሩት ሁሉ ይወድቃሉ።

Megapack: Factorio የ200-ተጫዋች ባለብዙ ተጫዋች ችግርን እንዴት እንደፈታው።
ችግሩ በጣም መሠረታዊ ነበር፣ እና እሱን ለማስተካከል 2 ሳምንታት ፈጅቶብኛል። በጣም ቆንጆ ቴክኒካል ነው፣ ስለዚህ ከዚህ በታች ያለውን ጭማቂ ቴክኒካዊ ዝርዝሮችን እገልጻለሁ። በመጀመሪያ ግን ሰኔ 0.17.54 ቀን ከተለቀቀው ስሪት 4 ጀምሮ በጊዜያዊ የግንኙነት ችግሮች ፊት ለፊት ብዙ ተጫዋቾች የበለጠ የተረጋጋ እና የዘገየ መደበቅ አስቸጋሪ መሆኑን ማወቅ አለቦት (ብሬኪንግ እና ቴሌፖርት ማድረግ ያነሰ)። በተጨማሪም፣ የውጊያ መዘግየቶች የሚደበቁበትን መንገድ ቀይሬያለሁ፣ እና ይሄ ትንሽ ለስላሳ እንደሚያደርጋቸው ተስፋ እናደርጋለን።

ባለብዙ ተጫዋች ሜጋ ጥቅል - ቴክኒካዊ ዝርዝሮች

በቀላሉ ለማስቀመጥ በጨዋታ ውስጥ ብዙ ተጫዋች እንደዚህ ይሰራል፡ ሁሉም ደንበኞች የተጫዋች ግብአት ብቻ በመቀበል እና በመላክ የጨዋታውን ሁኔታ ያመሳስላሉ ("የግቤት ድርጊቶች" ይባላል) የግቤት ድርጊቶች). የአገልጋዩ ዋና ተግባር ማስተላለፍ ነው። የግቤት ድርጊቶች እና ሁሉም ደንበኞች በተመሳሳይ ዑደት ውስጥ ተመሳሳይ ድርጊቶችን እንዲፈጽሙ ማረጋገጥ. በጽሁፉ ውስጥ ስለዚህ ጉዳይ የበለጠ ማንበብ ይችላሉ. ኤፍኤፍኤፍ-149.

አገልጋዩ ምን አይነት እርምጃዎችን መውሰድ እንዳለበት ውሳኔ መስጠት ስላለበት የተጫዋቹ ድርጊት በሚከተለው መንገድ ይንቀሳቀሳል፡ የተጫዋች እርምጃ ->የጨዋታ ደንበኛ ->አውታረ መረብ -> አገልጋይ -> አውታረ መረብ -> የጨዋታ ደንበኛ። ይህ ማለት እያንዳንዱ የተጫዋቹ ድርጊት የሚከናወነው በአውታረ መረቡ ውስጥ የክብ ጉዞ መንገድን ካደረገ በኋላ ብቻ ነው. በዚህ ምክንያት ጨዋታው በጣም ቀርፋፋ ስለሚመስል ወዲያውኑ በጨዋታው ውስጥ ብዙ ተጫዋች ከታየ በኋላ መዘግየቶችን ለመደበቅ የሚያስችል ዘዴ ተጀመረ። የድብቅነት መደበቅ የሌሎች ተጫዋቾችን ተግባር እና የአገልጋይ ውሳኔ አሰጣጥን ከግምት ውስጥ ሳያስገባ የተጫዋች ግብአትን ያስመስላል።

Megapack: Factorio የ200-ተጫዋች ባለብዙ ተጫዋች ችግርን እንዴት እንደፈታው።
ፋብሪካ የጨዋታ ሁኔታ አለው። የጨዋታ ሁኔታ የካርታው፣ የተጫዋች፣ የአካል ክፍሎች እና የሁሉም ነገር ሙሉ ሁኔታ ነው። ከአገልጋዩ በተቀበሉት ድርጊቶች ላይ በመመስረት በሁሉም ደንበኞች ውስጥ በቆራጥነት ተመስሏል. የጨዋታው ሁኔታ የተቀደሰ ነው፣ እና ከአገልጋዩ ወይም ከሌላ ደንበኛ መለየት ከጀመረ፣ አለመመሳሰል ይከሰታል።

በስተቀር የጨዋታ ሁኔታ የመዘግየት ሁኔታ አለን። Latency State. የዋናው ግዛት ትንሽ ክፍል ይዟል. Latency State የተቀደሰ አይደለም እና ከተጫዋቹ በሚመጡት ግብአቶች ላይ በመመስረት የጨዋታው ሁኔታ ወደፊት ምን እንደሚመስል የሚያሳይ ምስል ብቻ ይወክላል የግቤት ድርጊቶች.

ይህንን ለማድረግ, የተፈጠረውን ቅጂ እንይዛለን የግቤት ድርጊቶች በመዘግየቱ ወረፋ ውስጥ.

Megapack: Factorio የ200-ተጫዋች ባለብዙ ተጫዋች ችግርን እንዴት እንደፈታው።
ማለትም በደንበኛው በኩል በሂደቱ መጨረሻ ላይ ምስሉ እንደዚህ ያለ ነገር ይመስላል-

  1. ያመልክቱ የግቤት ድርጊቶች ሁሉም ተጫዋቾች ወደ የጨዋታ ሁኔታ እነዚህ የግቤት ድርጊቶች ከአገልጋዩ የተቀበሉበት መንገድ.
  2. ሁሉንም ነገር ከመዘግየቱ ወረፋ ያስወግዱ የግቤት ድርጊቶች, እሱም, በአገልጋዩ መሰረት, አስቀድሞ ተተግብሯል የጨዋታ ሁኔታ.
  3. ሰርዝ Latency State እና በትክክል ተመሳሳይ እንዲመስል ዳግም ያስጀምሩት። የጨዋታ ሁኔታ.
  4. ሁሉንም እርምጃዎች ከመዘግየቱ ወረፋ ወደ ላይ ይተግብሩ Latency State.
  5. በመረጃ ላይ የተመሰረተ የጨዋታ ሁኔታ и Latency State ጨዋታውን ለተጫዋቹ ይስጡት ።

ይህ ሁሉ በእያንዳንዱ መለኪያ ይደጋገማል.

በጣም ከባድ? አትዝናና፣ ያ ብቻ አይደለም። አስተማማኝ ያልሆኑ የበይነመረብ ግንኙነቶችን ለማካካስ ሁለት ዘዴዎችን ፈጥረናል-

  • የተዘለሉ መዥገሮች፡ አገልጋዩ ያንን ሲወስን። የግቤት ድርጊቶች በጨዋታው ዘዴ ይገደላል, ከዚያም ካልተቀበለ የግቤት ድርጊቶች አንዳንድ ተጫዋች (ለምሳሌ ፣ በመዘግየቱ ምክንያት) አይጠብቅም ፣ ግን ለዚህ ደንበኛ ያሳውቃል “ያንተን ግምት ውስጥ አላስገባሁም የግቤት ድርጊቶች, በሚቀጥለው ባር ውስጥ ለመጨመር እሞክራለሁ. ይህ የሚደረገው የአንድ ተጫዋች ግንኙነት (ወይም ከኮምፒዩተር) ጋር በተያያዙ ችግሮች ምክንያት የካርታ ማሻሻያ ለሁሉም ሰው አይዘገይም። መሆኑን ልብ ሊባል የሚገባው ጉዳይ ነው። የግቤት ድርጊቶች ችላ አይባሉም ፣ ግን በቀላሉ ለሌላ ጊዜ ተላልፈዋል ።
  • ሙሉ የጉዞ መዘግየት፡ አገልጋዩ በደንበኛ እና በአገልጋዩ መካከል ያለው የዙር ጉዞ መዘግየት ለእያንዳንዱ ደንበኛ ምን እንደሆነ ለመገመት ይሞክራል። በየ 5 ሰከንድ፣ እንደ አስፈላጊነቱ ከደንበኛው ጋር አዲስ መዘግየትን ይደራደራል (ግንኙነቱ ከዚህ በፊት በነበረው ሁኔታ ላይ በመመስረት) እና የዙር ጉዞ መዘግየትን ይጨምራል ወይም ይቀንሳል።

በእራሳቸው እነዚህ ዘዴዎች በጣም ቀላል ናቸው, ነገር ግን አንድ ላይ ጥቅም ላይ ሲውሉ (ብዙውን ጊዜ በግንኙነት ችግሮች ውስጥ የሚከሰቱ), የኮድ አመክንዮ ለማስተዳደር አስቸጋሪ እና ብዙ የጠርዝ ጉዳዮችን ይይዛል. በተጨማሪም, እነዚህ ስልቶች ወደ ጨዋታ ሲገቡ, አገልጋዩ እና የመዘግየቱ ወረፋ ልዩ በትክክል መተግበር አለባቸው የግቤት እርምጃ በዚህ ስም ቀጣይ እንቅስቃሴን አቁም. ለዚህም ምስጋና ይግባውና የግንኙነት ችግሮች በሚፈጠሩበት ጊዜ ገጸ ባህሪው በራሱ (ለምሳሌ በባቡር ስር) አይሰራም.

አሁን የህጋዊ አካል ምርጫ እንዴት እንደሚሰራ ላብራራላችሁ እፈልጋለሁ። ካለፉ ዓይነቶች አንዱ የግቤት እርምጃ የአንድ አካል ምርጫ ሁኔታ ለውጥ ነው። ተጫዋቹ የትኛው አካል በመዳፊት ማንዣበብ እንደሆነ ለሁሉም ሰው ይነግራል። እንደሚመለከቱት ፣ ይህ በደንበኞች ከሚላኩ በጣም ተደጋጋሚ የግቤት ድርጊቶች አንዱ ነው ፣ ስለሆነም የመተላለፊያ ይዘትን ለመቆጠብ በተቻለ መጠን ትንሽ ቦታ እንዲይዝ አመቻችተናል። ይህ እንደሚከተለው ነው የሚተገበረው፡ እያንዳንዱ አካል ሲመረጥ፣ ፍፁም የሆነ ከፍተኛ ትክክለኛ የካርታ መጋጠሚያዎችን ከማጠራቀም ይልቅ ጨዋታው ከቀዳሚው ምርጫ ዝቅተኛ ትክክለኛ አንጻራዊ ማካካሻ ያከማቻል። ይህ በጥሩ ሁኔታ ይሰራል ምክንያቱም የመዳፊት ምርጫ ብዙውን ጊዜ ከቀዳሚው ምርጫ ጋር በጣም ቅርብ ነው. ይህ ሁለት አስፈላጊ መስፈርቶችን ያመጣል. የግቤት ድርጊቶች በፍፁም መዝለል የለበትም እና በትክክለኛው ቅደም ተከተል መደረግ አለበት. እነዚህ መስፈርቶች ተሟልተዋል የጨዋታ ሁኔታ. ግን ከተግባሩ ጀምሮ የመዘግየት ሁኔታ ለተጫዋቹ "በቂ በመመልከት" በመዘግየቱ ሁኔታ አልረኩም። Latency State ግምት ውስጥ አያስገባም ብዙ የድንበር ጉዳዮችሰዓቶችን ከመዝለል እና ከዙር-ጉዞ ማስተላለፊያ መዘግየቶችን መቀየር ጋር የተያያዘ።

ይህ የት እንደሚሄድ አስቀድመው መገመት ይችላሉ. በመጨረሻም, የሜጋፓኬጅ ችግር መንስኤዎችን ማየት እንጀምራለን. የችግሩ መነሻ የአካላት ምርጫ አመክንዮ የተመሰረተው ነው። Latency State, እና ይህ ግዛት ሁልጊዜ ትክክለኛውን መረጃ አልያዘም. ስለዚህ ሜጋፓኬት የሚፈጠረው በሚከተለው መንገድ ነው።

  1. ተጫዋቹ የግንኙነት ችግሮች እያጋጠመው ነው።
  2. ዑደቶችን ለመዝለል እና የዙር ጉዞን የማስተላለፊያ መዘግየትን የመቆጣጠር ዘዴዎች ወደ ሥራ ይመጣሉ።
  3. የመዘግየቱ ሁኔታ ወረፋ ለእነዚህ ስልቶች አይቆጠርም። ይህ አንዳንድ ድርጊቶች ያለጊዜው እንዲወገዱ ወይም በተሳሳተ ቅደም ተከተል እንዲሄዱ ያደርጋል፣ በዚህም ምክንያት የተሳሳተ ይሆናል። Latency State.
  4. ተጫዋቹ ምንም የግንኙነት ችግር የለበትም እና ከአገልጋዩ ጋር ለመገናኘት እስከ 400 ዑደቶችን ያስመስላል።
  5. በእያንዳንዱ ዑደት ውስጥ አዲስ ድርጊት ይፈጠራል እና ወደ አገልጋዩ ለመላክ ይዘጋጃል, የህጋዊ አካል ምርጫን ይለውጣል.
  6. ደንበኛው ከ400 በላይ የሚሆኑ የህጋዊ አካላት ምርጫ ለውጦችን ወደ አገልጋዩ ይልካል (እና ከሌሎች ድርጊቶች ጋር፡ የተኩስ ሁኔታ፣ የእግር ጉዞ ሁኔታ፣ ወዘተ. በተጨማሪም በዚህ ችግር ተሠቃይተዋል)።
  7. አገልጋዩ 400 የግቤት ድርጊቶችን ይቀበላል። አንድ ነጠላ የግብአት እርምጃን መዝለል ስለማይፈቀድ ሁሉም ደንበኞች እነዚህን ድርጊቶች እንዲፈጽሙ መመሪያ ይሰጣል እና በአውታረ መረቡ ላይ ይልካል.

የሚገርመው የመተላለፊያ ይዘትን ለመቆጠብ የተነደፈው ዘዴ ግዙፍ የኔትወርክ ፓኬጆችን ማስገኘቱ ነው።

ሁሉንም የዝማኔ ጠርዝ ጉዳዮችን በማስተካከል እና የወረፋ ድጋፍን በማዘግየት ይህንን ችግር ፈትተናል። ምንም እንኳን ብዙ ጊዜ ቢወስድም በፈጣን ጠለፋዎች ላይ ከመታመን ይልቅ በመጨረሻ በትክክል ማግኘት ተገቢ ነበር።

ምንጭ: hab.com

አስተያየት ያክሉ