Megapack: yuav ua li cas Factorio cov neeg tsim khoom tau tswj hwm los daws qhov teeb meem nrog ntau tus neeg ua si rau 200 tus neeg ua si

Megapack: yuav ua li cas Factorio cov neeg tsim khoom tau tswj hwm los daws qhov teeb meem nrog ntau tus neeg ua si rau 200 tus neeg ua si
Thaum lub Tsib Hlis ntawm lub xyoo no kuv tau koom ua ib tus neeg ua si hauv MMO Events KatherineOfSky. Kuv pom tias thaum tus naj npawb ntawm cov neeg ua si nce mus txog qee tus lej, txhua ob peb feeb qee tus ntawm lawv "poob". Luckily rau koj (tab sis tsis yog rau kuv), Kuv yog ib tug ntawm cov players uas disconnected txhua txhua lub sijhawm, txawm tias muaj kev sib txuas zoo. Kuv coj qhov no los ua ib qho kev sib tw ntawm tus kheej thiab pib nrhiav qhov laj thawj ntawm qhov teeb meem. Tom qab peb lub lis piam ntawm kev debugging, kuaj, thiab kho, kab laum thaum kawg kho, tab sis txoj kev taug tsis yog txhua yam yooj yim.

Teeb meem nrog ntau tus neeg ua si yog qhov nyuaj heev los taug qab. Lawv feem ntau tshwm sim nyob rau hauv qhov tshwj xeeb network tsis thiab cov kev ua si tshwj xeeb (qhov no, muaj ntau dua 200 tus neeg ua si). Thiab txawm tias thaum qhov teeb meem tuaj yeem rov tsim dua, nws tsis tuaj yeem raug kho kom zoo vim tias kev ntxig cov ntsiab lus nres nres qhov kev ua si, tsis meej pem timers, thiab feem ntau ua rau kev sib txuas rau lub sijhawm. Tab sis ua tsaug rau persistence thiab ib tug zoo kawg nkaus cuab tam hu ua clumsy Kuv tswj xyuas seb muaj dab tsi tshwm sim.

Hauv luv luv, vim muaj kab laum thiab ua tsis tiav ntawm lub xeev latency simulation, tus neeg siv yuav qee zaum pom nws tus kheej nyob rau hauv qhov xwm txheej uas nws yuav tsum tau xa cov pob ntawv hauv lub network uas muaj cov neeg uas ua ntawv xaiv cov kev xaiv ntawm kwv yees li 400 qhov kev ua si hauv ib lub voj voog moos ( peb hu qhov no "mega-packet"). Cov neeg rau zaub mov yuav tsum tsis yog tsuas yog tau txais tag nrho cov tswv yim no kom raug, tab sis kuj xa mus rau tag nrho lwm cov neeg siv khoom. Yog tias koj muaj 200 tus neeg siv khoom, qhov no sai sai ua teeb meem. Qhov txuas mus rau tus neeg rau zaub mov sai sai ua rau txhaws, ua rau pob ntawv poob thiab ib qho cascade ntawm cov ntawv thov rov qab. Kev ncua sij hawm nkag mus ua haujlwm ces ua rau cov neeg siv ntau xa megapackets, ua rau lub avalanche loj dua. Cov neeg muaj hmoo tswj kom rov zoo; tag nrho lwm tus poob.

Megapack: yuav ua li cas Factorio cov neeg tsim khoom tau tswj hwm los daws qhov teeb meem nrog ntau tus neeg ua si rau 200 tus neeg ua si
Qhov teeb meem yog qhov tseem ceeb heev thiab nws siv kuv 2 lub lis piam los kho nws. Nws yog cov txuj ci zoo nkauj, yog li kuv yuav piav qhia cov kua dej hauv qab no. Tab sis ua ntej, koj yuav tsum paub tias txij li version 0.17.54, tso tawm rau lub Rau Hli 4, nyob rau hauv lub ntsej muag ntawm cov teeb meem kev sib txuas ib ntus, ntau tus neeg ua si tau ua kom ruaj khov dua, thiab zais kev ncua tau dhau los ua buggy tsawg (tsawg qeeb thiab teleporting). Kuv kuj tau hloov txoj kev sib ntaus sib tua lag luam zais thiab kuv vam tias qhov no yuav ua rau nws yooj yim dua.

Multiplayer Mega Pob - Cov Lus Qhia Tshwj Xeeb

Txhawm rau muab nws yooj yim, multiplayer hauv kev ua si ua haujlwm zoo li no: txhua tus neeg siv simulate lub xeev ntawm qhov kev ua si, tau txais thiab xa tsuas yog cov neeg siv tswv yim (hu ua "kev nqis tes ua", Input Actions). Lub luag haujlwm tseem ceeb ntawm lub server yog hloov mus Input Actions thiab tswj kom txhua tus neeg siv khoom ua tib yam nkaus hauv tib lub voj voog. Koj tuaj yeem nyeem ntxiv txog qhov no hauv kev tshaj tawm TXF-149.

Txij li thaum tus neeg rau zaub mov yuav tsum txiav txim siab txog qhov yuav ua li cas, tus neeg ua si qhov kev ua tau txav mus los ntawm txoj hauv kev no: player action -> game client -> network -> server -> network -> game client. Qhov no txhais tau hais tias txhua tus neeg ua si qhov kev nqis tes ua tsuas yog tom qab ua kev ncig mus ncig thoob plaws lub network. Vim tias qhov no, qhov kev ua si yuav zoo li qeeb qeeb, yog li yuav luag tam sim ntawd tom qab kev taw qhia ntawm ntau tus neeg ua si hauv qhov kev ua si, lub tshuab tau qhia los nkaum qhov qeeb. Nkaum ncua simulates player cov tswv yim yam tsis xav txog kev ua ntawm lwm tus players thiab cov neeg rau zaub mov kev txiav txim siab.

Megapack: yuav ua li cas Factorio cov neeg tsim khoom tau tswj hwm los daws qhov teeb meem nrog ntau tus neeg ua si rau 200 tus neeg ua si
Factorio muaj lub xeev kev ua si Game State yog lub xeev tag nrho ntawm daim npav, cov neeg ua si, cov koom haum thiab txhua yam. Nws yog txiav txim siab simulated nyob rau hauv tag nrho cov neeg siv khoom raws li qhov ua tau txais los ntawm lub server. Lub xeev kev ua si yog dawb huv, thiab yog tias nws puas tau pib txawv ntawm tus neeg rau zaub mov lossis lwm tus neeg siv, ces desync tshwm sim.

tsuas yog Game State peb muaj lub xeev ntawm kev ncua Lub Xeev Latency. Nws muaj ib qho me me ntawm lub xeev hauv av. Lub Xeev Latency tsis dawb huv thiab tsuas yog sawv cev rau daim duab ntawm lub xeev qhov kev ua si yuav zoo li yav tom ntej raws li cov neeg siv khoom nkag Input Actions.

Rau lub hom phiaj no, peb khaws ib daim qauv ntawm cov tsim Input Actions hauv qhov ncua sij hawm.

Megapack: yuav ua li cas Factorio cov neeg tsim khoom tau tswj hwm los daws qhov teeb meem nrog ntau tus neeg ua si rau 200 tus neeg ua si
Ntawd yog, thaum kawg ntawm cov txheej txheem ntawm tus neeg siv khoom sab daim duab zoo li no:

  1. Peb thov Input Actions tag nrho cov players Game State txoj kev cov kev tawm tswv yim no tau txais los ntawm lub server.
  2. Peb tshem tawm txhua yam ntawm qhov ncua sij hawm Input Actions, uas, raws li lub server, twb tau thov rau Game State.
  3. Rho tawm Lub Xeev Latency thiab rov pib dua nws kom nws zoo nkaus li zoo ib yam li Game State.
  4. Peb siv tag nrho cov kev nqis tes ua los ntawm ncua sij hawm rau Lub Xeev Latency.
  5. Raws li cov ntaub ntawv Game State ΠΈ Lub Xeev Latency Peb muab qhov kev ua si rau tus neeg ua si.

Tag nrho cov no tau rov ua dua hauv txhua qhov kev ntsuas.

nyuaj dhau lawm? Tsis txhob so, qhov no tsis yog tag nrho. Txhawm rau them nyiaj rau kev sib txuas hauv Is Taws Nem tsis muaj kev ntseeg siab, peb tau tsim ob lub tswv yim:

  • Tsis nco zuam: thaum lub server txiav txim siab qhov ntawd Input Actions yuav raug tua ntawm qhov kev sib tw ntawm qhov kev ua si, yog tias nws tsis tau txais Input Actions qee tus neeg uas ua ntawv (piv txwv li, vim qhov qeeb qeeb), nws yuav tsis tos, tab sis yuav qhia rau tus neeg siv khoom no "Kuv tsis tau coj mus rau hauv tus account koj Input Actions, Kuv mam li sim ntxiv lawv hauv qhov bar tom ntej. " Qhov no yog ua tiav vim muaj teeb meem nrog kev sib txuas (lossis khoos phis tawj) ntawm ib tus neeg ua si, daim ntawv qhia hloov tshiab tsis qeeb rau txhua tus. Nws tsim nyog sau cia tias Input Actions tsis ignored, tab sis tsuas yog tso tseg.
  • Tag nrho cov kev ncig mus ncig latency: Tus neeg rau zaub mov sim twv seb qhov kev ncig mus ncig latency ntawm tus neeg siv khoom thiab tus neeg rau zaub mov yog dab tsi rau txhua tus neeg siv khoom. Txhua 5 vib nas this, nws sib tham txog qhov latency tshiab nrog tus neeg siv khoom yog tias tsim nyog (raws li qhov kev sib txuas tau coj zoo li cas yav dhau los), thiab nce lossis txo qhov kev mus ncig latency raws li.

Ntawm lawv tus kheej, cov txheej txheem no yooj yim heev, tab sis thaum lawv siv ua ke (uas feem ntau tshwm sim nrog cov teeb meem kev sib txuas), cov logic ntawm txoj cai dhau los ua nyuaj rau kev tswj hwm thiab nrog ntau cov ntaub ntawv ntug. Tsis tas li ntawd, thaum cov txheej txheem no tuaj rau hauv kev ua si, tus neeg rau zaub mov thiab ncua sijhawm yuav tsum ua kom zoo siv qhov tshwj xeeb Input Action hu ua StopMovementInTheNextTick. Ua tsaug rau qhov no, yog tias muaj teeb meem nrog kev sib txuas, tus cwj pwm yuav tsis khiav ntawm nws tus kheej (piv txwv li, pem hauv ntej ntawm lub tsheb ciav hlau).

Tam sim no peb yuav tsum tau piav qhia rau koj tias kev xaiv chaw ua haujlwm li cas. Ib yam ntawm cov kis tau tus mob Input Action yog ib qho kev hloov hauv lub xeev xaiv chaw. Nws qhia txhua tus neeg uas lub koom haum tus neeg ua si hovering dhau. Raws li koj tuaj yeem xav, qhov no yog ib qho ntawm cov kev tawm tswv yim tshaj plaws uas xa los ntawm cov neeg siv khoom, yog li txhawm rau txuag bandwidth, peb tau ua kom nws siv qhov chaw me me li sai tau. Txoj kev nws ua haujlwm yog tias txhua qhov chaw raug xaiv, es tsis txhob khaws qhov tseeb, siab-precision map coordinates, qhov kev ua si khaws cov txheeb ze qis qis los ntawm kev xaiv yav dhau los. Qhov no ua haujlwm zoo vim tias kev xaiv nas nyiam nyob ze rau qhov kev xaiv yav dhau los. Qhov no tsa ob qho kev xav tau tseem ceeb: Input Actions Lawv yuav tsum tsis txhob hla dhau thiab yuav tsum ua kom tiav hauv qhov kev txiav txim kom raug. Cov kev cai no tau ntsib rau Game State. Tab sis txij li txoj haujlwm Lub xeev latency nyob rau hauv "zoo txaus" rau cov neeg uas ua ntawv, lawv tsis txaus siab nyob rau hauv lub xeev ncua. Lub Xeev Latency tsis coj mus rau hauv tus account ntau yam ntawm ntug, cuam tshuam nrog kev hla lub voj voog lub voj voog thiab hloov pauv hloov pauv hloov qeeb.

Koj twb twv tau qhov twg qhov no mus. Thaum kawg peb tab tom pib pom cov laj thawj rau qhov teeb meem megapack. Lub hauv paus ntawm qhov teeb meem yog qhov chaw xaiv logic tso siab rau Lub Xeev Latency, thiab lub xeev no tsis ib txwm muaj cov ntaub ntawv raug. Yog li ntawd, ib tug megapacket yog generated ib yam dab tsi zoo li no:

  1. Cov neeg uas ua ntawv muaj teeb meem kev sib txuas.
  2. Mechanisms rau hla lub moos cycles thiab tswj qhov ncua sij hawm ntawm round-trip kis tau tus mob tuaj rau hauv kev ua si.
  3. Lub xeev ncua sij hawm tsis suav cov txheej txheem no rau hauv tus account. Qhov no ua rau qee qhov kev txiav txim raug tshem tawm ntxov lossis ua tsis raug, ua rau tsis raug Lub Xeev Latency.
  4. Tus neeg uas ua ntawv muaj qhov teeb meem kev sib txuas thiab, txhawm rau txhawm rau ntes cov neeg rau zaub mov, simulates txog 400 lub voj voog.
  5. Ntawm txhua zuam, ib qho kev ua tshiab, hloov qhov chaw xaiv, yog tsim thiab npaj xa mus rau lub server.
  6. Tus neeg siv xa tawm mega-batch ntawm 400+ qhov chaw xaiv kev hloov pauv rau lub server (thiab nrog rau lwm yam kev ua: tua xeev, taug kev xeev, thiab lwm yam. kuj raug kev txom nyem los ntawm qhov teeb meem no).
  7. Tus neeg rau zaub mov tau txais 400 input ua. Txij li nws tsis raug tso cai hla ib qho kev tawm tswv yim, nws hais kom txhua tus neeg siv khoom ua cov haujlwm ntawd thiab xa lawv hla lub network.

Qhov tsis txaus ntseeg yog tias lub tshuab tsim los txuag bandwidth tau tsim cov pob ntawv loj loj.

Peb tau hais txog qhov teeb meem no los ntawm kev kho txhua qhov xwm txheej ntawm kev hloov tshiab thiab kev txhawb nqa backlog. Txawm hais tias nws siv sijhawm me ntsis, thaum kawg nws tsim nyog tau txais nws txoj cai es tsis txhob cia siab rau kev ceev hacks.

Tau qhov twg los: www.hab.com

Ntxiv ib saib