Megapack: Ta yaya Factorio Ya Warware Matsalolin Masu Wasa Da yawa 200

Megapack: Ta yaya Factorio Ya Warware Matsalolin Masu Wasa Da yawa 200
A watan Mayu na wannan shekara, na shiga a matsayin ɗan wasa KatherineOfSky MMO Events. Na lura cewa idan adadin 'yan wasan ya kai wani adadi, kowane minti kaɗan wasu daga cikinsu suna "fadi". Na yi sa'a a gare ku (amma ba a gare ni ba), Ina ɗaya daga cikin waɗannan 'yan wasan kowace lokacihar ma da kyakkyawar alaka. Na dauke shi a matsayin kalubale na kaina kuma na fara neman musabbabin matsalar. Bayan makonni uku na gyara kuskure, gwaji, da gyarawa, a ƙarshe an gyara kwaro, amma tafiyar ba ta kasance mai sauƙi ba.

Matsaloli a cikin wasanni masu yawa suna da matukar wahala a gano su. Yawancin lokaci suna faruwa a ƙarƙashin ƙayyadaddun sigogi na cibiyar sadarwa da kuma ƙayyadaddun jihohin wasan (a wannan yanayin, sama da ƴan wasa 200). Kuma ko da za a iya sake haifar da matsala, ba za a iya gyara ta yadda ya kamata ba saboda shigar da wuraren hutu yana dakatar da wasan, yana lalata masu ƙididdigewa, kuma yawanci yana haifar da haɗin gwiwa don ƙarewa. Amma godiya ga juriya da kayan aiki mai ban mamaki da ake kira m Na sami damar gano abin da ke faruwa.

A takaice, saboda kwaro da rashin cika aiwatar da simintin jihar jinkiri, wani lokacin abokin ciniki ya sami kansa a cikin wani yanayi inda dole ne ya aika fakitin hanyar sadarwa a cikin agogo guda ɗaya, wanda ya ƙunshi ayyukan shigar da mai kunnawa don zaɓar ƙungiyoyin wasan kusan 400 ( muna kiransa "megapacket"). Bayan haka, uwar garken ba kawai yana buƙatar karɓar duk waɗannan ayyukan shigarwa daidai ba, amma kuma aika su zuwa duk sauran abokan ciniki. Idan kana da abokan ciniki 200, wannan da sauri ya zama matsala. Tashar zuwa uwar garken yana da sauri ya toshe, yana haifar da asarar fakiti da fakitin fakitin da aka sake nema. Jinkirta ayyukan shigarwa sannan yana haifar da ƙarin abokan ciniki don fara aika megapackets, kuma dusar ƙanƙara ta ƙara ƙarfi. Abokan ciniki masu nasara suna gudanar da farfadowa, duk sauran sun fadi.

Megapack: Ta yaya Factorio Ya Warware Matsalolin Masu Wasa Da yawa 200
Matsalar tana da mahimmanci, kuma ya ɗauki makonni 2 don gyara ta. Yana da kyawawan fasaha, don haka zan bayyana cikakkun bayanan fasaha masu daɗi a ƙasa. Amma da farko, kuna buƙatar sanin cewa tun daga nau'in 0.17.54, wanda aka saki a ranar 4 ga Yuni, a cikin fuskantar matsalolin haɗin gwiwa na ɗan lokaci, multiplayer ya sami kwanciyar hankali, kuma jinkirin ɓoyewa ya ragu sosai (ƙasa birki da teleporting). Har ila yau, na canza yadda ake ɓoye jinkirin yaƙi, kuma da fatan wannan zai sa su ɗan sauƙi.

Kunshin Mega Multiplayer - Bayanin Fasaha

Don sanya shi a sauƙaƙe, multiplayer a cikin wasa yana aiki kamar haka: duk abokan ciniki suna kwaikwayi yanayin wasan ta hanyar karɓa da aikawa da shigar da ɗan wasa kawai (wanda ake kira "aikin shigar da bayanai") Ayyukan shigarwa). Babban aikin uwar garken shine don canja wurin Ayyukan shigarwa da kuma tabbatar da cewa duk abokan ciniki suna yin ayyuka iri ɗaya a cikin zagaye ɗaya. Kuna iya karanta ƙarin game da wannan a cikin gidan. Saukewa: FFF-149.

Tun da uwar garken ya yanke shawara game da ayyukan da za a ɗauka, ayyukan mai kunnawa suna tafiya tare da hanya mai zuwa: aikin mai kunnawa -> abokin ciniki na wasa -> cibiyar sadarwa -> uwar garken -> cibiyar sadarwa -> abokin ciniki na wasa. Wannan yana nufin cewa kowane aikin mai kunnawa ana yin shi ne kawai bayan ya yi hanyar zagaye ta hanyar hanyar sadarwa. Saboda wannan, wasan zai yi kamar yana jinkiri sosai, don haka kusan nan da nan bayan bayyanar ƴan wasa da yawa a wasan, an bullo da hanyar ɓoye jinkiri. Boyewar latency yana kwatanta shigar da ɗan wasa ba tare da la'akari da ayyukan wasu 'yan wasa da yanke shawarar uwar garken ba.

Megapack: Ta yaya Factorio Ya Warware Matsalolin Masu Wasa Da yawa 200
Factorio yana da yanayin wasa jihar game shine cikakken yanayin taswira, mai kunnawa, mahalli, da komai. An ƙididdige shi da ƙididdigewa a cikin duk abokan ciniki bisa ayyukan da aka karɓa daga uwar garken. Yanayin wasan yana da tsarki, kuma idan ya fara bambanta da uwar garken ko kowane abokin ciniki, to desynchronization yana faruwa.

fãce jihar game muna da yanayin jinkiri Jihar Latency. Ya ƙunshi ƙaramin yanki na babban jihar. Jihar Latency ba mai tsarki ba ne kuma yana wakiltar hoton yadda yanayin wasan zai kasance a nan gaba dangane da abubuwan da mai kunnawa ke bayarwa. Ayyukan shigarwa.

Don yin wannan, muna adana kwafin abubuwan da aka samar Ayyukan shigarwa a cikin layin jinkirta.

Megapack: Ta yaya Factorio Ya Warware Matsalolin Masu Wasa Da yawa 200
Wato, a ƙarshen tsari a gefen abokin ciniki, hoton yana kama da wani abu kamar haka:

  1. Aiwatar Ayyukan shigarwa duk 'yan wasa zuwa jihar game yadda aka karɓi waɗannan ayyukan shigarwa daga uwar garken.
  2. Cire komai daga layin jinkiri Ayyukan shigarwa, wanda, bisa ga uwar garken, an riga an yi amfani da shi jihar game.
  3. Share Jihar Latency kuma sake saita shi don haka yayi kama da daidai jihar game.
  4. Aiwatar da duk ayyuka daga layin jinkiri zuwa Jihar Latency.
  5. Dangane da bayanai jihar game и Jihar Latency mayar da wasan ga mai kunnawa.

Ana maimaita duk wannan a kowane bugun.

Da wuya? Kar a huta, ba duka ba ne. Don rama hanyoyin haɗin Intanet mara dogaro, mun ƙirƙiri hanyoyi guda biyu:

  • Tsallake ticks: lokacin da uwar garken ya yanke shawarar haka Ayyukan shigarwa za a kashe shi a cikin dabarar wasan, to idan bai samu ba Ayyukan shigarwa wani dan wasa (alal misali, saboda karuwar jinkiri), ba zai jira ba, amma zai sanar da wannan abokin ciniki "Ban yi la'akari da ku ba. Ayyukan shigarwa, Zan yi ƙoƙarin ƙara su a mashaya na gaba. Ana yin haka ne saboda matsalolin haɗin (ko tare da kwamfutar) na ɗan wasa ɗaya, sabunta taswirar ba ta raguwa ga kowa. Yana da kyau a lura da hakan Ayyukan shigarwa ba a yi watsi da su ba, amma kawai an jinkirta.
  • Cikakkun jinkirin tafiya zagaye: Sabar tana ƙoƙarin yin hasashen menene jinkirin tafiya tsakanin abokin ciniki da uwar garken ga kowane abokin ciniki. Kowane daƙiƙa 5, yana yin shawarwarin sabon jinkiri tare da abokin ciniki kamar yadda ake buƙata (dangane da yadda haɗin ya kasance a baya), kuma yana ƙaruwa ko rage jinkirin tafiya daidai.

Da kansu, waɗannan hanyoyin suna da sauƙi, amma lokacin da aka yi amfani da su tare (wanda sau da yawa yakan faru tare da matsalolin haɗin gwiwa), ƙwarewar lambar ya zama da wahala a sarrafa kuma tare da lokuta masu yawa. Bugu da kari, lokacin da waɗannan hanyoyin suka shigo cikin wasa, uwar garken da layin jinkiri dole ne su aiwatar da na musamman daidai Ayyukan shigarwa karkashin sunan Dakatar da MotsiInTheNextTick. Godiya ga wannan, idan akwai matsalolin haɗin gwiwa, halin ba zai gudana da kansa ba (alal misali, a ƙarƙashin jirgin ƙasa).

Yanzu ina buƙatar in bayyana muku yadda zaɓin mahaɗan ke aiki. Ɗaya daga cikin nau'ikan da suka wuce Ayyukan shigarwa canji ne a yanayin zaɓin mahalli. Yana gaya wa kowa ko wane mahaluƙi ne ɗan wasan ya yi shawagi da linzamin kwamfuta. Kamar yadda kuke gani, wannan shine ɗayan ayyukan shigarwa akai-akai da abokan ciniki ke aikowa, don haka don adana bandwidth, mun inganta shi ta yadda zai ɗauki ɗan sarari sosai. Ana aiwatar da wannan kamar haka: lokacin da aka zaɓi kowane mahaluƙi, maimakon adana cikakkiyar madaidaicin taswirar taswira, wasan yana adana ƙarancin ƙarancin dangi daga zaɓi na baya. Wannan yana aiki da kyau saboda zaɓin linzamin kwamfuta yawanci yana faruwa kusa da zaɓin da ya gabata. Wannan yana haifar da buƙatu masu mahimmanci guda biyu: Ayyukan shigarwa Kada a taɓa tsallakewa kuma dole ne a yi shi cikin tsari daidai. An cika waɗannan buƙatun don jihar game. Amma tun da aikin yanayin latency a cikin "kallo mai kyau" ga mai kunnawa, ba su gamsu da yanayin jinkiri ba. Jihar Latency baya la'akari lokuta da yawa kan iyakahade da tsalle-tsalle na agogo da canza jinkirin watsa shirye-shiryen tafiya.

Kuna iya rigaya tunanin inda wannan ke tafiya. A ƙarshe, mun fara ganin abubuwan da ke haifar da matsalar megapackage. Tushen matsalar ita ce dabarar zaɓin mahalli ta dogara da ita Jihar Latency, kuma wannan jihar ba koyaushe tana ɗauke da ingantattun bayanai ba. Don haka ana samar da megapacket kamar haka:

  1. Mai kunnawa yana fuskantar matsalolin haɗi.
  2. Hanyoyin tsallake keken keke da tsara jinkirin watsa tafiye-tafiye suna shiga cikin wasa.
  3. Jinkirin layin jaha baya lissafin waɗannan hanyoyin. Wannan yana haifar da cire wasu ayyuka da wuri ko gudanar da su cikin tsari mara kyau, yana haifar da kuskure Jihar Latency.
  4. Mai kunnawa ba shi da matsalar haɗin kai kuma yana siminti har zuwa hawan keke 400 don cim ma sabar.
  5. A cikin kowane zagayowar, ana haifar da sabon aiki kuma an shirya don aika zuwa sabar, canza zaɓin mahaɗan.
  6. Abokin ciniki ya aika da megapacket na 400+ zaɓuɓɓukan zaɓin mahaɗan zuwa uwar garken (kuma tare da wasu ayyuka: jihar harbe-harbe, yanayin tafiya, da sauransu kuma sun sha wahala daga wannan matsalar).
  7. Sabar tana karɓar ayyukan shigarwa 400. Tun da ba a yarda ya tsallake aikin shigarwa guda ɗaya ba, yana umurtar duk abokan ciniki da su yi waɗannan ayyukan kuma a aika su akan hanyar sadarwa.

Abin ban mamaki shine tsarin da aka ƙera don adana bandwidth ya haifar da manyan fakitin cibiyar sadarwa.

Mun warware wannan batu ta hanyar gyara duk abubuwan sabuntawa da kuma jinkirin tallafin layin. Kodayake ya ɗauki ɗan lokaci kaɗan, yana da daraja samun daidai a ƙarshe maimakon dogaro da hacks masu sauri.

source: www.habr.com

Add a comment