Megapack: Ahoana no namaha ny olan'ny Mpilalao Multiplayer 200 i Factorio

Megapack: Ahoana no namaha ny olan'ny Mpilalao Multiplayer 200 i Factorio
Tamin'ny volana Mey tamin'ity taona ity dia nandray anjara ho mpilalao aho Hetsika MMO KatherineOfSky. Tsikaritro fa rehefa mahatratra isa iray ny isan'ny mpilalao dia isaky ny minitra vitsy dia "miala" ny sasany amin'izy ireo. Soa ihany ho anao (fa tsy ho ahy), anisan'ireo mpilalao nanapaka ny fifandraisana aho isak'izao mihetsika izao, na dia misy fifandraisana tsara aza. Noraisiko ho fanamby manokana izany ary nanomboka nitady ny anton'ilay olana aho. Taorian'ny telo herinandro nanaovana ny debugging, ny fitiliana ary ny fanamboarana, dia raikitra ihany ilay bug, saingy tsy dia mora loatra ny dia.

Ny olana amin'ny lalao Multiplayer dia sarotra ny manara-maso. Matetika izy ireo dia miseho eo ambanin'ny mason-tambajotra voafaritra manokana sy ny fepetran'ny lalao manokana (amin'ity tranga ity, manana mpilalao mihoatra ny 200). Ary na dia azo averina averina aza ilay olana, dia tsy azo amboarina araka ny tokony ho izy izany satria manakana ny lalao ny fampidirana teboka fiatoana, mampisafotofoto ny fameram-potoana ary matetika mahatonga ny fifandraisana ho tapitra. Fa noho ny fikirizana sy ny fitaovana mahafinaritra antsoina hoe votsavotsa Nahita ny zava-nitranga aho.

Raha fintinina, noho ny tsy fahampiana sy ny fampiharana tsy feno ny simulation state latency, ny mpanjifa indraindray dia mahita ny tenany amin'ny toe-javatra izay tsy maintsy mandefa fonosana tambajotra misy ny hetsika fifantenana ny mpilalao amin'ny sampana lalao 400 eo ho eo ao anatin'ny tsingerin'ny famantaranandro iray ( antsoina hoe "fonosana mega" izany). Ny mpizara dia tsy maintsy mandray tsara ireo hetsika fampidirana rehetra ireo, fa koa mandefa azy ireo amin'ny mpanjifa hafa rehetra. Raha manana mpanjifa 200 ianao dia lasa olana haingana izany. Lasa tsentsina haingana ny rohy mankany amin'ny mpizara, ka mitarika ho amin'ny fahaverezan'ny fonosana sy ny cascade ny fonosana nangatahana indray. Ny fanemorana ny hetsika fampidirana dia miteraka mpanjifa bebe kokoa handefasana megapacket, ka vao mainka mihamitombo ny avalanche. Ny mpanjifa tsara vintana dia mahavita sitrana; ny hafa rehetra dia lavo.

Megapack: Ahoana no namaha ny olan'ny Mpilalao Multiplayer 200 i Factorio
Tena ifotony ilay olana ary 2 herinandro aho vao nanamboatra azy. Tena ara-teknika izany, ka hazavaiko eto ambany ny antsipirihan'ny teknika be ranony. Saingy aloha, mila mahafantatra ianao fa hatramin'ny dikan-teny 0.17.54, navoaka tamin'ny 4 Jona, manoloana ny olana amin'ny fifandraisana vonjimaika, dia lasa marin-toerana kokoa ny Multiplayer, ary nanjary tsy dia misy buggy loatra ny fanafenana ny fahatarana (tsy dia miadana loatra sy teleporting). Nanova ny fomba nanafenana ny fahatarana amin'ny ady koa aho ary manantena aho fa hampilamina kely izany.

Multiplayer Mega Pack - Fanazavana ara-teknika

Raha tsorina dia, ny Multiplayer amin'ny lalao dia miasa toy izao: ny mpanjifa rehetra dia manao simulate ny toetry ny lalao, mandray sy mandefa ny fidirana amin'ny mpilalao ihany (antsoina hoe "hetsika fampidirana", Input Actions). Ny tena asa ny mpizara dia ny famindrana Input Actions ary manara-maso fa ny mpanjifa rehetra dia manao hetsika mitovy amin'ny tsingerin'ny famantaranandro mitovy. Afaka mamaky bebe kokoa momba izany ianao ao amin'ny lahatsoratra FFF-149.

Satria ny mpizara dia tsy maintsy mandray fanapahan-kevitra momba ny hetsika hatao, ny fihetsiky ny mpilalao dia mizotra manodidina ity lalana ity: hetsika mpilalao -> mpanjifa lalao -> tambajotra -> mpizara -> tambajotra -> mpanjifa lalao. Midika izany fa ny hetsika ataon'ny mpilalao tsirairay dia aorian'ny fanaovana dia mandroso manerana ny tambajotra. Noho izany dia toa miadana be ny lalao, ka saika avy hatrany taorian'ny fampidirana Multiplayer amin'ny lalao, dia nisy mekanika nampidirina hanafina ny fahatarana. Ny fanafenana ny fahatarana dia manao simulate ny fidiran'ny mpilalao nefa tsy miraharaha ny fihetsiky ny mpilalao hafa sy ny fanapahan-kevitry ny mpizara.

Megapack: Ahoana no namaha ny olan'ny Mpilalao Multiplayer 200 i Factorio
Factorio dia manana fanjakana lalao Lalao Fanjakana dia ny toetry ny karatra, mpilalao, sampana ary ny zavatra hafa rehetra. Izy io dia atao simulate amin'ny mpanjifa rehetra mifototra amin'ny hetsika azo avy amin'ny mpizara. Masina ny fanjakan'ny lalao, ary raha toa ka manomboka tsy mitovy amin'ny mpizara na mpanjifa hafa, dia mitranga ny desync.

afa-tsy Lalao Fanjakana manana toetry ny fahatarana isika Toetran'ny Latency. Ahitana ampahany kely amin'ny fanjakana tany izy io. Toetran'ny Latency tsy masina ary maneho fotsiny ny sarin'ny toetry ny lalao amin'ny ho avy mifototra amin'ny fampidirana mpilalao Input Actions.

Ho an'ity tanjona ity dia mitahiry dika mitovy amin'ny noforonina izahay Input Actions amin'ny filaharana fahatarana.

Megapack: Ahoana no namaha ny olan'ny Mpilalao Multiplayer 200 i Factorio
Izany hoe, amin'ny faran'ny dingana eo amin'ny lafiny mpanjifa ny sary dia toa izao:

  1. Mihatra izahay Input Actions ny mpilalao rehetra Lalao Fanjakana ny fomba nandraisana ireo hetsika fampidirana ireo avy amin'ny mpizara.
  2. Esorinay amin'ny filaharana fahatarana ny zava-drehetra Input Actions, izay, araka ny filazan'ny mpizara, dia efa nampiharina Lalao Fanjakana.
  3. esory Toetran'ny Latency ary avereno izany mba hitovy tanteraka amin'ny Lalao Fanjakana.
  4. Mampihatra ny hetsika rehetra manomboka amin'ny filaharana fahatarana ka hatramin'ny Toetran'ny Latency.
  5. Miorina amin'ny angona Lalao Fanjakana ΠΈ Toetran'ny Latency Manolotra ny lalao amin'ny mpilalao izahay.

Izany rehetra izany dia miverimberina amin'ny fepetra rehetra.

Sarotra loatra? Aza miala sasatra fa tsy izany ihany. Mba hanonerana ny fifandraisana Internet tsy azo ianteherana dia namorona rafitra roa izahay:

  • Tsipika tsy hita: rehefa manapa-kevitra izany ny mpizara Input Actions hovonoina amin'ny fikapohana ny lalao, dia raha tsy nahazo Input Actions mpilalao sasany (ohatra, noho ny fitomboan'ny fahatarana), dia tsy hiandry izy, fa hampahafantatra an'ity mpanjifa ity hoe "Tsy niraharaha ny anao aho. Input Actions, Hiezaka aho hanampy azy ireo ao amin’ny bara manaraka.” Izany dia natao mba noho ny olana amin'ny fifandraisana (na solosaina) ny mpilalao iray, ny fanavaozana sarintany dia tsy miadana ho an'ny olon-kafa rehetra. Tsara homarihina izany Input Actions tsy odian-tsy hita, fa apetraka fotsiny.
  • Faharetan'ny fitsangatsanganana feno: Ny mpizara dia manandrana maminavina hoe inona ny fahatarana mandeha miverina eo amin'ny mpanjifa sy ny mpizara ho an'ny mpanjifa tsirairay. Isaky ny 5 segaondra, dia mifampiraharaha ny fahatarana vaovao miaraka amin'ny mpanjifa izy raha ilaina (mifototra amin'ny fitondran-tenan'ny fifandraisana taloha), ary mampitombo na mampihena ny faharetan'ny dia mandrosoa mifanaraka amin'izany.

Amin'ny azy manokana, ireo mekanika ireo dia tena tsotra, fa rehefa ampiasaina miaraka (izay matetika mitranga amin'ny olana mifandray), ny lojikan'ny ny kaody dia lasa sarotra ny mitantana sy be dia be ny sisiny. Fanampin'izany, rehefa miditra an-tsehatra ireo mekanika ireo, ny mpizara sy ny filaharana fanemorana dia tsy maintsy mampihatra tsara ny manokana Hetsika fampidirana eo ambanin'ny anarana StopMovementInTheNextTick. Noho izany, raha misy olana amin'ny fifandraisana, ny toetra dia tsy mandeha irery (ohatra, eo anoloan'ny fiaran-dalamby).

Ankehitriny dia mila manazava aminao ny fomba fiasan'ny fifantenana enti-manana. Iray amin'ireo karazana ampitaina Hetsika fampidirana dia fiovana amin'ny toetry ny fifantenana enti-manana. Lazainy amin'ny olona rehetra hoe iza no sampan-draharahan'ny mpilalao. Araka ny azonao alaina sary an-tsaina, ity no iray amin'ireo hetsika fampidirana mahazatra indrindra alefan'ny mpanjifa, ka mba hitsitsiana ny bandwidth, dia nohatsarainay izany mba haka toerana kely araka izay tratra. Ny fomba fiasa dia rehefa voafantina ny singa tsirairay, fa tsy mitahiry fandrindrana sari-tany marim-pototra sy avo lenta, ny lalao dia mitahiry fifandimbiasana havanana ambany amin'ny fifantenana teo aloha. Mandeha tsara izany satria ny fifantenana totozy dia matetika mifanakaiky amin'ny safidy teo aloha. Izany dia miteraka fepetra roa lehibe: Input Actions Tsy tokony hatsipy mihitsy izy ireo ary tsy maintsy vitaina araka ny filaharany marina. Feno ireo fepetra ireo Lalao Fanjakana. Fa hatramin'ny asa Toetran'ny latency amin'ny "looking good enough" ho an'ny mpilalao dia tsy afa-po amin'ny toetry ny fahatarana izy ireo. Toetran'ny Latency tsy miraharaha tranga edge maro, mifandray amin'ny fandalovana tsingerin'ny famantaranandro sy ny fiovan'ny fahatarana amin'ny fivezivezena.

Efa azonao fantarina hoe ho aiza io. Manomboka mahita ny antony mahatonga ny olan'ny megapack izahay. Ny fototry ny olana dia miankina amin'ny lojika fifantenana entity Toetran'ny Latency, ary io fanjakana io dia tsy ahitana ny vaovao marina foana. Noho izany, ny megapacket dia miteraka zavatra toy izao:

  1. Manana olana amin'ny fifandraisana ny mpilalao.
  2. Ny mekanika amin'ny fandalovana ny tsingerin'ny famantaranandro sy ny fanaraha-maso ny fahataran'ny fifindran'ny zotra mandroso dia miditra.
  3. Ny filaharana momba ny fahatarana dia tsy mandray ireo mekanika ireo. Izany no mahatonga ny hetsika sasany esorina aloha loatra na atao amin'ny filaharana diso, ka miteraka tsy mety Toetran'ny Latency.
  4. Ny mpilalao dia manana olana amin'ny fifandraisana ary, mba hahatratrarana ny mpizara, dia manao simulate hatramin'ny 400 cycles.
  5. Isaky ny tsikombakomba dia misy hetsika vaovao, manova ny fifantenana enti-manana, ary voaomana ho alefa any amin'ny mpizara.
  6. Ny mpanjifa dia mandefa fanovΓ na fifantenana singa 400+ ho an'ny mpizara (ary miaraka amin'ny hetsika hafa: fanjakana fitifirana, fanjakana mandeha an-tongotra, sns. Niharan'ity olana ity ihany koa).
  7. Mahazo hetsika fampidirana 400 ny mpizara. Koa satria tsy azo atao ny mandingana ny hetsika fampidirana, dia mandidy ny mpanjifa rehetra izy mba hanao ireo hetsika ireo ary handefa azy ireo manerana ny tambajotra.

Ny mahatsikaiky dia ny mekanika natao hamonjena ny bandwidth dia niafara tamin'ny famoronana fonosana tambajotra goavana.

Namaha ity olana ity izahay tamin'ny alΓ lan'ny famahana ny tranga rehetra momba ny fanavaozana sy ny fanohanana filaharana backlog. Na dia naka fotoana kely aza izany, tamin'ny farany dia mendrika ny hahazo izany tsara fa tsy miantehitra amin'ny hacks haingana.

Source: www.habr.com

Add a comment