Megapack: Magadzirirwo akaitwa Factoro ne200-Mutambi Wevazhinji Dambudziko

Megapack: Magadzirirwo akaitwa Factoro ne200-Mutambi Wevazhinji Dambudziko
Muna May wegore rino, ndakatora chikamu semutambi mu KatherineOfSky MMO Zviitiko. Ndakaona kuti kana nhamba yevatambi ichisvika pane imwe nhamba, maminitsi mashomanana ega ega vamwe vavo "vanodonha". Neraki iwe (asi kwete kwandiri), ndaive mumwe wevatambi ivavo nguva dzesekunyangwe nekubatana kwakanaka. Ndakazvitora sedenho yomunhu oga ndokutanga kutsvaka zvikonzero zvechinetso chacho. Mushure memavhiki matatu ekugadzirisa, kuyedza, uye kugadzirisa, bug inozogadziriswa, asi rwendo rwanga rwusiri nyore.

Matambudziko mumitambo yevazhinji yakaoma kwazvo kutevera pasi. Zvinowanzoitika pasi pematanho chaiwo etiweki uye pasi pematanho chaiwo emitambo (munyaya iyi, vanopfuura 200 vatambi). Uye kunyangwe kana dambudziko richigona kuburitswa, harigone kugadziriswa nemazvo nekuti kuisa mabreakpoint kunomisa mutambo, kushatisa nguva, uye kazhinji kunokonzeresa kuti kubatana kupedze nguva nekuda kwekufamba kwenguva. Asi nekuda kwekutsungirira uye chishandiso chinoshamisa chinonzi zveufende Ndakakwanisa kuziva kuti chii chiri kuitika.

Muchidimbu, nekuda kwebug uye kusakwana kwekuita kwekunonoka kwenyika simulation, mutengi dzimwe nguva aizviwana ari mumamiriro ezvinhu apo aifanira kutumira network packet mune imwe wachi kutenderera, inosanganisira mutambi-yekupinda zviito zvekusarudza angangoita mazana mana emitambo masangano ( tinodaidza kuti "megapacket"). Mushure meizvozvo, sevha haingodi kugashira nemazvo zvese izvi zviito zvekupinza, asi zvakare tumira kune vamwe vese vatengi. Kana uine 400 vatengi, izvi zvinokurumidza kuva dambudziko. Iyo chiteshi kune server inokurumidza kuvharika, zvichikonzera kurasika mapaketi uye kuyerera kwemapaketi akakumbirwazve. Kumisa zviito zvekupinza kunoita kuti vatengi vazhinji vatange kutumira megapackets, uye avalanche yavo inowedzera kusimba. Vanobudirira vatengi vanogona kupora, vamwe vese vanodonha.

Megapack: Magadzirirwo akaitwa Factoro ne200-Mutambi Wevazhinji Dambudziko
Dambudziko raive rakakura, uye zvakanditorera mavhiki maviri kuti ndigadzirise. Iyo yakanaka tekinoroji, saka ini ndichatsanangura iyo ine muto tekinoroji ruzivo pazasi. Asi chekutanga, iwe unofanirwa kuziva kuti kubvira vhezheni 2, yakaburitswa munaJune 0.17.54, mukutarisana nezvinetso zvenguva pfupi zvekubatanidza, vatambi vakawanda vava kugadzikana, uye kunonoka kuhwanda kunenge kushoma buggy (shoma braking uye teleporting). Zvakare, ini ndachinja nzira yekunonoka kunonoka yakavanzwa, uye ndinovimba izvi zvichavaita zvishoma.

Multiplayer Mega Pack - Technical Details

Kuzvitaura zviri nyore, vatambi vakawanda mumutambo vanoshanda seizvi: vatengi vese vanoteedzera mamiriro emutambo nekugamuchira uye kutumira chete mutambi wekupinda (unonzi "input zviito" Input Actions) Basa guru revhavha ndere kuendesa Input Actions uye nekuona kuti vatengi vese vanoita zviito zvakafanana mukutenderera kumwechete. Iwe unogona kuverenga zvakawanda pamusoro peizvi mune positi. FFF-149.

Sezvo sevha ichifanira kuita sarudzo nezve zviito zvekutora, zviito zvemutambi zvinofamba nenzira inotevera: mutambi chiito -> mutambo mutengi -> network -> server -> network -> mutambo mutengi. Izvi zvinoreva kuti chiito chega chega chemutambi chinoitwa chete mushure mekunge aita nzira yekudzoka nekudzoka kuburikidza netiweki. Nekuda kweizvi, mutambo ungadai wakaita seunononoka, saka nekukurumidza mushure mekuonekwa kwevatambi vakawanda mumutambo, nzira yekuhwanda kunonoka yakaunzwa. Latency kuvanza inotevedzera kupinza kwevatambi pasina kufunga nezve zviito zvevamwe vatambi uye server sarudzo.

Megapack: Magadzirirwo akaitwa Factoro ne200-Mutambi Wevazhinji Dambudziko
Factoro ine nyika yemutambo game state ndiyo mamiriro akazara emepu, mutambi, masangano, nezvimwe zvese. Iyo inotemerwa inoteedzerwa muvatengi vese zvichienderana nezviito zvakagamuchirwa kubva kuseva. Iyo mutambo mamiriro anoyera, uye kana ikatanga kusiyana kubva kune server kana chero mumwe mutengi, ipapo desynchronization inoitika.

kusiya game state tine mamiriro ekunonoka Latency State. Iine chikamu chiduku chehurumende huru. Latency State haisi tsvene uye inongomiririra mufananidzo wezvichaita mamiriro emutambo mune ramangwana zvichienderana nezvakaiswa kubva kumutambi. Input Actions.

Kuti tiite izvi, tinochengeta kopi yezvakagadzirwa Input Actions mumutsara wokunonoka.

Megapack: Magadzirirwo akaitwa Factoro ne200-Mutambi Wevazhinji Dambudziko
Ndokunge, pakupera kwemaitiro kudivi remutengi, mufananidzo unotaridzika seizvi:

  1. Shandisa Input Actions vatambi vese kuti game state nzira iyo zviito zvekupinza izvi zvakagamuchirwa kubva kuseva.
  2. Bvisa zvese kubva pakunonoka mutsara Input Actions, iyo, maererano nevhavha, yakatoshandiswa kune game state.
  3. Delete Latency State uye igadzirise zvakare kuti iite seyakafanana game state.
  4. Isa zviito zvese kubva pamutsetse wekunonoka kusvika Latency State.
  5. Kubva pane data game state ΠΈ Latency State ipa mutambo kumutambi.

Zvose izvi zvinodzokororwa mubhiti imwe neimwe.

Zvakaoma here? Usazorora, handizvo zvoga. Kuripira kusavimbika kwekubatana kweInternet, takagadzira nzira mbiri:

  • Skipped ticks: kana sevha yafunga izvozvo Input Actions achaitwa muungwaru hwemutambo, zvino kana asina kugamuchira Input Actions mumwe mutambi (semuenzaniso, nekuda kwekuwedzera kunonoka), haazomirira, asi achazivisa mutengi uyu "Handina kufunga nezve Input Actions, ndichaedza kuvawedzera mubhawa rinotevera. Izvi zvinoitirwa kuti nekuda kwematambudziko nekubatana (kana nekombuta) yemumwe mutambi, iyo mepu yekuvandudza hainonoke kune wese wese. Zvakakosha kucherechedza izvozvo Input Actions hazvina kufuratirwa, asi zvinongomiswa.
  • Yakazara rwendo-rwendo latency: Sevha inoedza kufungidzira kuti nguva yekudzokera-kudzoka pakati pemutengi neseva ndeipi yemutengi wega wega. Masekonzi mashanu ega ega, inotaurirana kunonoka kutsva nemutengi sezvinodiwa (zvichienderana nemafambiro akaita kubatana kwave kuita munguva yakapfuura), uye inowedzera kana kuderedza kunonoka rwendo rwekudzoka.

Naivo pachavo, nzira idzi dzakareruka, asi kana dzichishandiswa pamwe chete (izvo zvinowanzoitika nematambudziko ekubatanidza), iyo kodhi logic inova yakaoma kubata uye ine akawanda emucheto makesi. Uye zvakare, kana aya maitiro atanga kutamba, sevha uye mutsara wekunonoka unofanirwa kuita chaiyo yakakosha kuisa chiito pasi pezita StopMovementInTheNextTick. Nekuda kweizvi, kana paine matambudziko ekubatanidza, chimiro hachizomhanyi ari ega (somuenzaniso, pasi pechitima).

Zvino ini ndoda kukutsanangurira kuti kusarudzwa kwesangano kunoshanda sei. Imwe yemhando dzakapfuura kuisa chiito ishanduko yesarudzo yechinhu. Inoudza munhu wese kuti mutambi akatenderedzwa negonzo ndeipi. Sezvauri kuona, iyi ndeimwe yeanowanzo kupinza zviito zvinotumirwa nevatengi, saka kuchengetedza bandwidth, isu takaigonesa kuti itore nzvimbo diki sezvinobvira. Izvi zvinoitwa seizvi: kana sangano rega rega rasarudzwa, pachinzvimbo chekuchengetedza mhedziso, yepamusoro-chaiyo mepu kurongeka, mutambo unochengeta yakaderera-chaiyo hama yekubvisa kubva kune yakapfuura sarudzo. Izvi zvinoshanda nemazvo nekuti kusarudzwa kwembeva kunowanzoitika padhuze nesarudzo yapfuura. Izvi zvinoita kuti pave nezvinodiwa zviviri zvakakosha: Input Actions haifanirwe kusikwa uye inofanira kuitwa muhurongwa hwakarurama. Izvi zvinodiwa zvinozadzikiswa game state. Asi kubva basa latency state mu "kutaridzika zvakanaka" kune mutambi, ivo havagutsikane mukunonoka mamiriro. Latency State hazvirangariri nyaya dzakawanda dzemuganhuzvine chekuita nekusvetuka wachi uye kuchinja kunonotsa kutapurirana rwendo rwekudzoka.

Iwe unogona kutofungidzira kuti izvi zviri kuenda kupi. Pakupedzisira, tiri kutanga kuona zvikonzero zvedambudziko re megapackage. Mudzi wedambudziko nderekuti iyo entity yekusarudza logic inotsamira pa Latency State, uye nyika iyi haigare iine ruzivo rwechokwadi. Saka iyo megapacket inogadzirwa seizvi:

  1. Mutambi ari kusangana nematambudziko ekubatanidza.
  2. Nzira dzekusvetuka mavhiri uye kugadzirisa kunonoka kutapurirana rwendo rwekudzoka dzinotanga kushanda.
  3. Mutsara wemamiriro ekunonoka hauverengeri maitiro aya. Izvi zvinokonzeresa kuti zvimwe zviito zvibviswe nguva isati yakwana kana kuti zviitwe nenzira isiri iyo, zvichikonzera kuti pane zvisiri izvo Latency State.
  4. Mutambi wacho haana dambudziko rekubatanidza uye anotevedzera anosvika mazana mana ekutenderera kubata neserver.
  5. Mukutenderera kwega kwega, chiitiko chitsva chinogadzirwa uye chakagadzirirwa kutumirwa kune sevha, ichichinja kusarudzwa kwesangano.
  6. Mutengi anotumira megapacket ye400+ entity sarudzo shanduko kune sevha (uye nezvimwe zviito: nyika yekupfura, nyika yekufamba, nezvimwe zvakare akatambura nedambudziko iri).
  7. Sevha inogamuchira 400 maitiro ekuisa. Sezvo isingabvumirwe kusvetuka chiito chimwe chete chekuisa, inorayira vatengi vese kuti vaite izvi zviito uye vanovatumira kune network.

Chinosekesa ndechekuti chigadziriso chakagadzirirwa kuchengetedza bandwidth chakakonzera hombe network mapaketi.

Isu takagadzirisa nyaya iyi nekugadzirisa zvese zvekuvandudza machesi uye kunonoka kutsigirwa kwemutsara. Kunyangwe zvakatora nguva yakati rebei, zvaive zvakakodzera kuti uzvigadzirise pakupedzisira pane kuvimba nekukasira hacks.

Source: www.habr.com

Voeg