Megapackage: conas a réitigh forbróirí Factorio an fhadhb le il-imreoir do 200 imreoir

Megapackage: conas a réitigh forbróirí Factorio an fhadhb le il-imreoir do 200 imreoir
I mBealtaine na bliana seo ghlac mé páirt mar imreoir i Imeachtaí MMO KatherineOfSky. Thug mé faoi deara nuair a shroicheann líon na n-imreoirí líon áirithe, gach cúpla nóiméad go bhfuil cuid acu “titim as”. Ar an dea-ádh duitse (ach ní domsa), bhí mé ar cheann de na himreoirí sin a dhícheangail gach uair, fiú le nasc maith. Ghlac mé seo mar dhúshlán pearsanta agus thosaigh mé ag lorg cúiseanna na faidhbe. Tar éis trí seachtaine dífhabhtaithe, tástála, agus deisiúcháin, socraíodh an fabht ar deireadh, ach ní raibh an turas chomh héasca sin ar fad.

Tá sé an-deacair fadhbanna le cluichí il-imreora a rianú. Tarlaíonn siad de ghnáth faoi pharaiméadair líonra an-sonrach agus faoi choinníollacha cluiche an-sonrach (sa chás seo, tá níos mó ná 200 imreoir acu). Agus fiú nuair is féidir an fhadhb a atáirgeadh, ní féidir í a dhífhabhtú i gceart mar go gcuirtear stop leis an gcluiche trí bhriseadhphointí a chur isteach, cuireann sé mearbhall ar amadóirí, agus go hiondúil go mbíonn an nasc in am saor. Ach a bhuíochas sin do marthanachta agus uirlis iontach ar a dtugtar clumsy D’éirigh liom a fháil amach cad a bhí ar siúl.

I mbeagán focal, mar gheall ar fhabht agus cur i bhfeidhm neamhiomlán an ionsamhlúcháin staid fhola, uaireanta bheadh ​​an cliant i gcás ina mbeadh air paicéad líonra a sheoladh ina mbeadh gníomhaíochtaí roghnaithe ionchuir an imreora de thart ar 400 eintiteas cluiche i dtimthriall clog amháin ( tugaimid "mega-paicéad") air seo. Ní mór don fhreastalaí ansin ní hamháin na gníomhartha ionchuir seo go léir a fháil i gceart, ach freisin iad a sheoladh chuig gach cliant eile. Má tá 200 cliant agat, éiríonn sé seo ina fhadhb go tapa. Éiríonn an nasc leis an bhfreastalaí clogged go tapa, rud a fhágann caillteanas paicéad agus easghluaiseachta paicéid ath-iarrtha. Má chuirtear moill ar an ngníomh ionchuir is cúis le níos mó cliant fós meigephaicéid a sheoladh, rud a fhágann go n-éireoidh an sleamhnán níos mó fós. Éiríonn le cliaint ádh teacht chucu féin; titeann na cinn eile ar fad as.

Megapackage: conas a réitigh forbróirí Factorio an fhadhb le il-imreoir do 200 imreoir
Bhí an fhadhb bunúsach go leor agus thóg sé 2 sheachtain dom é a réiteach. Tá sé go leor teicniúil, mar sin míneoidh mé na sonraí teicniúla juicy thíos. Ach ar dtús, ní mór duit fios a bheith agat, ós rud é leagan 0.17.54, a scaoileadh ar 4 Meitheamh, i bhfianaise fadhbanna nasc sealadach, tá il-imreora tar éis éirí níos cobhsaí, agus tá moilleanna folaithe tar éis éirí i bhfad níos lú bugaí (níos lú moilliú agus teleporting). D'athraigh mé freisin an bealach a bhfuil aga moille comhraic i bhfolach agus tá súil agam go n-éireoidh sé seo beagán níos míne.

Multiplayer Mega Pack - Sonraí Teicniúla

Chun é a chur go simplí, oibríonn il-imreora i gcluiche mar seo: insamhail gach cliant staid an chluiche, ag fáil agus ag seoladh ionchur imreora amháin (ar a dtugtar “gníomhartha ionchuir”, Gníomhartha Ionchuir). Is é príomhchúram an fhreastalaí aistriú Gníomhartha Ionchuir agus a rialú go ndéanann gach cliant na gníomhartha céanna sa timthriall clog céanna. Is féidir leat tuilleadh a léamh faoi seo sa phost FFF-149.

Ós rud é go gcaithfidh an freastalaí cinntí a dhéanamh faoi na gníomhartha atá le déanamh, bogann gníomhartha an imreora thart ar an gcosán seo: gníomh imreora -> cliant cluiche -> líonra -> freastalaí -> líonra -> cliant cluiche. Ciallaíonn sé seo nach ndéantar gníomh gach imreora ach amháin tar éis turas cruinn a dhéanamh ar fud an líonra. Mar gheall air seo, bheadh ​​an chuma ar an gcluiche thar a bheith mall, mar sin beagnach díreach tar éis tabhairt isteach il-imreora sa chluiche, tugadh isteach meicníocht chun moill a cheilt. Samhlaíonn moill fholaigh ionchur imreoir gan gníomhartha imreoirí eile agus cinntí an fhreastalaí a chur san áireamh.

Megapackage: conas a réitigh forbróirí Factorio an fhadhb le il-imreoir do 200 imreoir
Tá staid cluiche ag factorio Stáit cluiche staid iomlán an chárta, imreoir, aonáin agus gach rud eile. Déantar é a insamhladh go cinntitheach i ngach cliant bunaithe ar na gníomhartha a fuarthas ón bhfreastalaí. Tá staid an chluiche naofa, agus má thosaíonn sé ag difríocht idir an freastalaí nó cliant ar bith eile, tarlaíonn díshioncronú.

Ach Stáit cluiche tá staid moille againn Stáit Laiteachta. Tá fo-thacar beag den bhunstaid ann. Stáit Laiteachta nach bhfuil naofa agus go simplí léiríonn sé pictiúr de cad a bheidh ar an staid cluiche cuma mhaith sa todhchaí bunaithe ar ionchuir imreoir Gníomhartha Ionchuir.

Chun na críche sin, stóráilimid cóip den chruthaithe Gníomhartha Ionchuir sa scuaine moille.

Megapackage: conas a réitigh forbróirí Factorio an fhadhb le il-imreoir do 200 imreoir
Is é sin, ag deireadh an phróisis ar thaobh an chliaint breathnaíonn an pictiúr rud éigin mar seo:

  1. Cuir iarratas isteach Gníomhartha Ionchuir imreoirí go léir chun Stáit cluiche an bealach a fuarthas na gníomhartha ionchuir seo ón bhfreastalaí.
  2. Bainimid gach rud as an scuaine moille Gníomhartha Ionchuir, a bhfuil, de réir an fhreastalaí, curtha i bhfeidhm cheana féin Stáit cluiche.
  3. Scrios Stáit Laiteachta agus é a athshocrú ionas go bhfeiceann sé díreach mar an gcéanna Stáit cluiche.
  4. Cuirimid gach gníomh i bhfeidhm ón scuaine moille go dtí Stáit Laiteachta.
  5. Bunaithe ar shonraí Stáit cluiche и Stáit Laiteachta Cuirimid an cluiche ar fáil don imreoir.

Déantar é seo go léir arís agus arís eile i ngach beart.

Ró-dheacair? Ná lig do scíth, ní hé seo go léir. Mar chúiteamh ar naisc Idirlín neamhiontaofa, tá dhá mheicníocht cruthaithe againn:

  • Tocanna caillte: nuair a chinneann an freastalaí é sin Gníomhartha Ionchuir a fhorghníomhú ag an buille an chluiche, ansin más rud é nach raibh sé a fháil Gníomhartha Ionchuir imreoir éigin (mar shampla, mar gheall ar mhoill mhéadaithe), ní fhanfaidh sé, ach cuirfidh sé an cliant seo ar an eolas “Níor chuir mé do chuid san áireamh Gníomhartha Ionchuir, déanfaidh mé iarracht iad a chur leis an gcéad bharra eile.” Déantar é seo ionas nach mhoillíonn nuashonrú na léarscáile do gach duine eile mar gheall ar fhadhbanna le nasc (nó ríomhaire) imreoir amháin. Is fiú a nótáil go Gníomhartha Ionchuir nach dtugtar neamhaird orthu, ach go simplí a chur ar leataobh.
  • Fanacht iomlán an turais bhabhta: Déanann an freastalaí iarracht buille faoi thuairim a dhéanamh ar cad é an latency turas cruinn idir an cliant agus an freastalaí do gach cliant. Gach 5 soicind, déanann sé latency nua a chaibidil leis an gcliant más gá (bunaithe ar an gcaoi ar éirigh leis an nasc san am a chuaigh thart), agus méadaíonn nó laghdaítear an latency turas cruinn dá réir.

Ar a gcuid féin, tá na meicníochtaí seo simplí go leor, ach nuair a úsáidtear iad le chéile (a tharlaíonn go minic le fadhbanna ceangail), bíonn sé deacair loighic an chóid a bhainistiú agus le go leor cásanna imeall. Ina theannta sin, nuair a thagann na meicníochtaí seo i bhfeidhm, caithfidh an freastalaí agus an scuaine mhoill an speisialta a chur i bhfeidhm i gceart Gníomh Ionchuir ar a dtugtar StopMovementInTheNextTick. Buíochas leis seo, má tá fadhbanna leis an nasc, ní bheidh an carachtar ag rith ar a chuid féin (mar shampla, os comhair an traein).

Anois ní mór dúinn a mhíniú duit conas a oibríonn roghnú eintiteas. Ceann de na cineálacha tarchurtha Gníomh Ionchuir is athrú é ar staid roghnúcháin an eintitis. Insíonn sé do gach duine cén t-aonán a bhfuil an t-imreoir ag foluain os a chionn. Mar is féidir leat a shamhlú, tá sé seo ar cheann de na gníomhartha ionchuir is coitianta a sheolann cliaint, mar sin chun bandaleithead a shábháil, táimid tar éis é a bharrfheabhsú chun chomh beag spáis agus is féidir a ghlacadh. Is é an bealach a oibríonn sé ná mar a roghnaítear gach aonán, in ionad comhordanáidí léarscáile ardchruinneas a stóráil, go stórálann an cluiche fritháireamh coibhneasta íseal-chruinneas ón rogha roimhe seo. Oibríonn sé seo go maith mar is gnách go mbíonn roghanna luiche an-ghar don rogha roimhe seo. Ardaíonn sé seo dhá riachtanas thábhachtacha: Gníomhartha Ionchuir Níor cheart riamh iad a scipeáil agus ní mór iad a chomhlánú san ord ceart. Comhlíontar na ceanglais seo le haghaidh Stáit cluiche. Ach ós rud é an tasc Staid latency i “lorg maith go leor” don imreoir, níl siad sásta leis an staid moille. Stáit Laiteachta ní chuireann san áireamh go leor cásanna imeall, a bhaineann le timthriallta cloig gan bacadh le agus le moilleanna tarchurtha turas cruinn a athrú.

Is féidir leat buille faoi thuairim cheana féin cá bhfuil sé seo ag dul. Táimid ag tosú ar deireadh a fheiceáil na cúiseanna atá leis an bhfadhb megapack. Is é bun na faidhbe go mbraitheann an loighic roghnúcháin eintiteas Stáit Laiteachta, agus ní bhíonn an fhaisnéis cheart sa stát seo i gcónaí. Dá bhrí sin, gintear megapacket rud éigin mar seo:

  1. Tá fadhbanna ceangail ag an imreoir.
  2. Tagann meicníochtaí chun gan bacadh le timthriallta cloig agus chun an mhoill ar tharchur cuairte bhabhta a rialú.
  3. Ní chuireann scuaine an stáit moille na meicníochtaí seo san áireamh. Fágann sé seo go mbaintear roinnt gníomhartha roimh am nó go ndéantar iad san ord mícheart, rud a fhágann go bhfuil siad mícheart Stáit Laiteachta.
  4. Tá fadhb ceangail ag an imreoir agus, chun teacht suas leis an bhfreastalaí, insamhail sé suas le 400 timthriallta.
  5. Ag gach tic, gintear gníomh nua, a athraíonn an roghnú eintiteas, agus ullmhaítear é lena sheoladh chuig an bhfreastalaí.
  6. Cuireann an cliant mega-bhaisc de 400+ athruithe roghnúcháin eintiteas chuig an bhfreastalaí (agus le gníomhartha eile: stáit lámhach, stáit siúlóide, etc. d'fhulaing freisin as an bhfadhb seo).
  7. Faigheann an freastalaí 400 gníomh ionchuir. Ós rud é nach bhfuil sé ceadaithe aon ghníomhartha ionchuir a scipeáil, ordaíonn sé do gach cliant na gníomhartha sin a dhéanamh agus cuireann sé ar fud an líonra iad.

Is í an íoróin ná gur chruthaigh meicníocht a ceapadh chun bandaleithead a shábháil paicéid líonra ollmhóra.

Thugamar aghaidh ar an tsaincheist seo trí gach cás ciumhais a shocrú maidir le nuashonrú agus tacaíocht scuaine riaráiste. Cé gur thóg sé go leor ama, sa deireadh b'fhiú é a fháil i gceart seachas a bheith ag brath ar hacks tapaidh.

Foinse: will.com

Add a comment