Mu dheidhinn an lìonra model ann an geamannan airson luchd-tòiseachaidh a

Mu dheidhinn an lìonra model ann an geamannan airson luchd-tòiseachaidh a
Airson an dà sheachdain mu dheireadh tha mi air a bhith ag obair air an einnsean lìonraidh airson mo gheama. Roimhe sin, cha robh fios agam càil mu lìonrachadh ann an geamannan idir, agus mar sin leugh mi tòrr artaigilean agus rinn mi tòrr dheuchainnean gus na bun-bheachdan gu lèir a thuigsinn agus a bhith comasach air an einnsean lìonraidh agam fhìn a sgrìobhadh.

San iùl seo, bu mhath leam na diofar bhun-bheachdan a dh’ fheumas tu ionnsachadh a cho-roinn riut mus sgrìobh thu an einnsean geama agad fhèin, a bharrachd air na goireasan agus na h-artaigilean as fheàrr airson an ionnsachadh.

San fharsaingeachd, tha dà phrìomh sheòrsa de ailtireachd lìonra ann: co-aoisean gu co-aoisean agus frithealaiche teachdaiche. Ann an ailtireachd co-aoisean (p2p), tha dàta air a ghluasad eadar paidhir de chluicheadairean ceangailte, agus ann an ailtireachd frithealaiche teachdaiche, tha dàta air a ghluasad a-mhàin eadar na cluicheadairean agus an frithealaiche.

Ged a tha an ailtireachd co-aoisean fhathast air a chleachdadh ann an cuid de gheamannan, is e frithealaiche teachdaiche an ìre àbhaisteach: tha e nas fhasa a chuir an gnìomh, tha feum air leud seanail nas lugha, agus ga dhèanamh nas fhasa dìon an aghaidh meallta. Mar sin, san iùl seo, cuiridh sinn fòcas air ailtireachd teachdaiche-cliant.

Gu sònraichte, tha ùidh mhòr againn ann an frithealaichean ùghdarrasach: ann an leithid de shiostaman, tha am frithealaiche an-còmhnaidh ceart. Mar eisimpleir, ma tha an cluicheadair den bheachd gu bheil e aig (10, 5) agus gu bheil an frithealaiche ag innse dha gu bheil e aig (5, 3), bu chòir don neach-dèiligidh a shuidheachadh a chuir na àite leis an fhear a tha an frithealaiche ag aithris, chan ann air an taobh eile. Tha cleachdadh frithealaichean ùghdarrasach ga dhèanamh nas fhasa mealltairean aithneachadh.

Tha trì prìomh phàirtean ann an siostaman lìonraidh gaming:

  • Pròtacal còmhdhail: mar a thèid dàta a ghluasad eadar teachdaichean agus an frithealaiche.
  • Pròtacal tagraidh: dè a thèid a ghluasad bho luchd-dèiligidh chun an fhrithealaiche agus bhon fhrithealaiche gu teachdaichean, agus dè an cruth.
  • Loidsig tagraidh: mar a tha an dàta tar-chuir air a chleachdadh gus staid teachdaichean agus an fhrithealaiche ùrachadh.

Tha e glè chudromach tuigsinn àite gach pàirt agus na duilgheadasan co-cheangailte riutha.

Pròtacal còmhdhail

Is e a’ chiad cheum protocol a thaghadh airson dàta a ghiùlan eadar an fhrithealaiche agus teachdaichean. Tha dà phròtacal eadar-lìn ann airson seo: TCP и UDP. Ach faodaidh tu do phròtacal còmhdhail fhèin a chruthachadh stèidhichte air aon dhiubh no leabharlann a chleachdadh a bhios gan cleachdadh.

Dèan coimeas eadar TCP agus UDP

Tha an dà chuid TCP agus UDP stèidhichte air IP. Tha IP a’ leigeil le pasgan a bhith air a ghluasad bho stòr gu cuidhteas, ach chan eil e a’ toirt gealltanas gun ruig am pacaid a chaidh a chuir chun ghlacadair nas luaithe no nas fhaide air adhart, gum faigh e thuige co-dhiù aon uair, agus gun ruig an t-sreath de phasganan san òrdugh cheart. A bharrachd air an sin, chan fhaod ach meud dàta cuibhrichte a bhith ann am pacaid, air a thoirt seachad leis an luach DUINE.

Chan eil ann an UDP ach sreath tana air mullach IP. Mar sin, tha na h-aon chuingealachaidhean aige. An coimeas ri sin, tha mòran fheartan aig TCP. Tha e a’ toirt seachad ceangal òrdaichte earbsach eadar dà nod le sgrùdadh mearachd. Mar sin, tha TCP gu math goireasach agus air a chleachdadh ann am mòran phròtacalan eile, mar eisimpleir, ann an HTTP, FTP и SMTP. Ach thig na feartan sin uile aig prìs: dàil.

Gus tuigsinn carson a dh’ fhaodadh na gnìomhan sin latency adhbhrachadh, feumaidh sinn tuigsinn mar a tha TCP ag obair. Nuair a bhios an t-òstair a 'cur pasgan chun an aoigh a tha a' faighinn, tha e an dùil gum faigh e aithne (ACK). Mura faigh e e às deidh ùine sònraichte (seach gun deach am pasgan no an dearbhadh a chall, no airson adhbhar air choireigin), bidh e a ’cur a’ phacaid a-rithist. A bharrachd air an sin, tha TCP a’ gealltainn gum faighear pacaidean san òrdugh cheart, agus mar sin gus am faighear pacaid caillte, chan urrainnear a h-uile pacaid eile a phròiseasadh, eadhon ged a tha iad air fhaighinn leis an nód faighinn mu thràth.

Ach mar a thuigeas tu is dòcha, tha latency ann an geamannan ioma-chluicheadair glè chudromach, gu sònraichte ann an gnèithean gnìomhach mar FPS. Sin as coireach gu bheil mòran gheamannan a 'cleachdadh UDP leis a' phròtacal aca fhèin.

Faodaidh protocol dùthchasach stèidhichte air UDP a bhith nas èifeachdaiche na TCP airson diofar adhbharan. Mar eisimpleir, faodaidh e cuid de phasganan a chomharrachadh mar earbsa agus cuid eile mar neo-earbsach. Mar sin, chan eil dragh aige a bheil am pasgan neo-earbsach air an neach a gheibh e a ruighinn. No faodaidh e grunn shruthan dàta a phròiseasadh gus nach cuir pacaid a chaidh air chall ann an aon shruth maill air sruthan eile. Mar eisimpleir, is dòcha gu bheil snàithlean ann airson cuir a-steach cluicheadair agus snàithlean eile airson teachdaireachdan cabadaich. Ma thèid teachdaireachd cabadaich nach eil na dàta èiginneach a chall, cha chuir e maill air an cuir a-steach èiginneach. No dh’ fhaodadh protocol seilbh earbsachd a chuir an gnìomh ann an dòigh eadar-dhealaichte seach TCP gus a bhith nas èifeachdaiche ann an àrainneachd geama bhidio.

Mar sin, ma bhios TCP a’ deoghal, an uairsin tha sinn a’ dol a thogail ar protocol còmhdhail fhèin stèidhichte air UDP?

Tha a h-uile dad beagan nas iom-fhillte. Eadhon ged a tha TCP cha mhòr nach eil cho math airson siostaman lìonraidh gèam, faodaidh e obrachadh gu math airson a’ gheama sònraichte agad agus sàbhail ùine luachmhor dhut. Mar eisimpleir, is dòcha nach bi latency na chùis airson geama stèidhichte air tionndadh no geama nach gabh a chluich ach air lìonraidhean LAN, far a bheil latency agus call pacaid mòran nas lugha na air an eadar-lìn.

Bidh mòran gheamannan soirbheachail, a’ gabhail a-steach World of Warcraft, Minecraft, agus Terraria, a’ cleachdadh TCP. Ach, bidh a’ mhòr-chuid de FPSn a’ cleachdadh am protocolaidhean stèidhichte air UDP fhèin, agus mar sin bruidhnidh sinn barrachd mun deidhinn gu h-ìosal.

Ma roghnaicheas tu TCP a chleachdadh dèan cinnteach gu bheil e ciorramach Algorithm Nagle, leis gu bheil e a’ bufair pacaidean mus tèid a chuir, a tha a’ ciallachadh gu bheil e a’ meudachadh an dàil.

Gus barrachd ionnsachadh mu na h-eadar-dhealachaidhean eadar UDP agus TCP ann an co-theacsa gheamannan ioma-chluiche, faic artaigil Glenn Fiedler UDP vs. TCP.

Pròtacal seilbhe

Mar sin tha thu airson do phròtacal còmhdhail fhèin a chruthachadh ach nach eil fios agad càite an tòisich thu? Tha thu fortanach, oir sgrìobh Glenn Fiedler dà artaigil iongantach mu dheidhinn. Lorgaidh tu tòrr bheachdan snasail annta.

A’ chiad artaigil Uidheam lìonraidh airson prògramadairean geamannan 2008, nas fhasa na an dàrna Togail Pròtacal Lìonra Geamannan 2016. Tha mi a’ moladh gun tòisich thu leis an fhear as sine.

Thoir an aire gu bheil Glenn Fiedler gu mòr airson a bhith a’ cleachdadh do phròtacal fhèin stèidhichte air UDP. Agus às deidh dhut na h-artaigilean aige a leughadh, is dòcha gun gabh thu ris a bheachd gu bheil fìor eas-bhuannachdan aig TCP ann an geamannan bhidio, agus bidh thu airson do phròtacal fhèin a chuir an gnìomh.

Ach ma tha thu ùr do lìonrachadh, dèan fàbhar dhut fhèin agus cleachd TCP no leabharlann. Gus am protocol còmhdhail agad fhèin a chuir an gnìomh gu soirbheachail, feumaidh tu tòrr ionnsachadh ro-làimh.

Leabharlannan lìonraidh

Ma tha feum agad air rudeigin nas èifeachdaiche na TCP, ach nach eil thu airson dragh a chuir air do phròtacal fhèin a chuir an gnìomh agus a dhol a-steach gu tòrr mion-fhiosrachaidh, faodaidh tu an leabharlann lìon a chleachdadh. Tha tòrr dhiubh ann:

Cha do dh’ fheuch mi iad uile, ach is fheàrr leam Enet oir tha e furasta a chleachdadh agus earbsach. A bharrachd air an sin, tha sgrìobhainnean soilleir ann agus oideachadh do luchd-tòiseachaidh.

Co-dhùnadh Pròtacal Còmhdhail

Airson geàrr-chunntas, tha dà phrìomh phròtacal còmhdhail ann: TCP agus UDP. Tha mòran fheartan feumail aig TCP: earbsachd, gleidheadh ​​​​òrdugh pacaid, lorg mhearachdan. Chan eil sin uile aig UDP, ach tha TCP, a rèir a nàdar, gu math fadalach nach gabh gabhail ris airson cuid de gheamannan. Is e sin, gus dèanamh cinnteach à latency ìosal, faodaidh tu do phròtacal fhèin a chruthachadh stèidhichte air UDP no leabharlann a chleachdadh a chuireas an gnìomh protocol còmhdhail air UDP agus a tha air atharrachadh airson geamannan bhidio ioma-chluicheadair.

Tha an roghainn eadar TCP, UDP, agus an leabharlann an urra ri grunn nithean. An toiseach, bho fheumalachdan a’ gheama: a bheil feum air latency ìosal? San dàrna h-àite, bho riatanasan protocol an tagraidh: a bheil feum air protocol earbsach? Mar a chì sinn san ath phàirt, tha e comasach protocol tagraidh a chruthachadh far a bheil protocol neo-earbsach gu math freagarrach. Mu dheireadh, feumaidh tu cuideachd beachdachadh air eòlas leasaiche einnsean lìonra.

Tha dà chomhairle agam:

  • Thoir a-mach am protocol còmhdhail cho mòr ‘s as urrainn bhon chòrr den tagradh gus am bi e furasta a chuir na àite gun a bhith ag ath-sgrìobhadh a’ chòd gu lèir.
  • Na dèan cus optimization. Mura h-eil thu nad eòlaiche lìonraidh agus mura bheil thu cinnteach a bheil feum agad air a’ phròtacal còmhdhail agad fhèin stèidhichte air UDP, faodaidh tu tòiseachadh le TCP no leabharlann a bheir seachad earbsachd, agus an uairsin dèan deuchainn agus tomhas dèanadais. Ma tha duilgheadasan agad agus gu bheil thu cinnteach gur e protocol còmhdhail a th’ ann, is dòcha gu bheil an t-àm ann do phròtacal còmhdhail fhèin a chruthachadh.

Aig deireadh na pàirt seo, tha mi a’ moladh gun leugh thu Ro-ràdh do phrògramadh geama ioma-chluicheadair Brian Hook, a tha a’ còmhdach mòran de na cuspairean air an tèid beachdachadh an seo.

Pròtacal tagraidh

A-nis gun urrainn dhuinn dàta iomlaid eadar teachdaichean agus an frithealaiche, feumaidh sinn co-dhùnadh dè an dàta a thèid a ghluasad agus dè an cruth.

Is e an sgeama clasaigeach gum bi teachdaichean a’ cur a-steach no gnìomhan chun t-seirbheisiche, agus bidh an frithealaiche a’ cur an staid geama gnàthach chun luchd-dèiligidh.

Cha chuir am frithealaiche an làn, ach an staid sìoltaichte le buidhnean a tha faisg air a’ chluicheadair. Bidh e a’ dèanamh seo airson trì adhbharan. An toiseach, is dòcha gum bi an staid iomlan ro mhòr airson a chuir air adhart aig tricead àrd. San dàrna h-àite, tha ùidh mhòr aig teachdaichean ann an dàta lèirsinneach is claisneachd, leis gu bheil a’ mhòr-chuid de loidsig a ’gheama air a shamhlachadh air frithealaiche a’ gheama. San treas àite, ann an cuid de gheamannan chan fheum an cluicheadair eòlas fhaighinn air dàta sònraichte, leithid suidheachadh an nàmhaid air taobh eile a ’mhapa, oir air dhòigh eile faodaidh e pacaidean a shnìomh agus fios dìreach càite an gluais e gus a mharbhadh.

Serialachadh

Is e a’ chiad cheum an dàta a tha sinn airson a chuir (cuir a-steach no staid geama) a thionndadh gu cruth a tha iomchaidh airson a chraoladh. Canar am pròiseas seo sreathachadh.

Thig am beachd gu inntinn sa bhad gus cruth a ghabhas leughadh le daoine a chleachdadh, leithid JSON no XML. Ach bidh seo gu tur neo-èifeachdach agus bheir e suas a’ mhòr-chuid den t-sianal gun dad.

An àite sin, thathas a’ moladh an cruth binary a chleachdadh, a tha tòrr nas toinnte. Is e sin, cha bhi anns na pacaidean ach beagan bytes. An seo feumaidh sinn aire a thoirt don duilgheadas òrdugh byte, a dh’ fhaodadh a bhith eadar-dhealaichte air diofar choimpiutairean.

Airson sreathachadh dàta, faodaidh tu leabharlann a chleachdadh, mar eisimpleir:

Dìreach dèan cinnteach gu bheil an leabharlann a 'cruthachadh tasglannan so-ghiùlain agus a' toirt aire do dhian-chomas.

Is e fuasgladh eile a bhiodh ann a chuir an gnìomh thu fhèin, chan eil e cho cruaidh sin, gu sònraichte ma tha thu a’ cleachdadh dòigh-obrach stèidhichte air dàta sa chòd agad. A bharrachd air an sin, leigidh e leat optimizations a dhèanamh nach eil an-còmhnaidh comasach nuair a bhios tu a ’cleachdadh an leabharlann.

Tha Glenn Fiedler air dà artaigil a sgrìobhadh mu shreathachadh: Pacaidean Leughaidh is Sgrìobhaidh и Ro-innleachdan Serialization.

Compression

Tha an ìre de dhàta a thèid a ghluasad eadar teachdaichean agus an frithealaiche air a chuingealachadh le leud-bann an t-seanail. Leigidh teannachadh dàta leat barrachd dàta a ghluasad anns gach dealbh, an ìre ùrachaidh àrdachadh, no dìreach na riatanasan leud-bann a lughdachadh.

Bit pacadh

Is e a’ chiad innleachd pacaidh bit. Tha e a 'gabhail a-steach a bhith a' cleachdadh dìreach an àireamh de phìosan a tha riatanach gus cunntas a thoirt air an luach a tha thu ag iarraidh. Mar eisimpleir, ma tha enum agad aig a bheil 16 luachan eadar-dhealaichte, an àite byte slàn (8 pìosan), faodaidh tu dìreach 4 pìosan a chleachdadh.

Tha Glenn Fiedler a’ mìneachadh mar a chuireas tu seo an gnìomh anns an dàrna pàirt den artaigil. Pacaidean Leughaidh is Sgrìobhaidh.

Bidh pacadh bit ag obair gu sònraichte math le dìmeas, a bhios mar chuspair san ath earrann.

Samplachadh

Samplachadh na dhòigh teannachaidh cally a bhios a’ cleachdadh dìreach fo-sheata de luachan a dh’ fhaodadh a bhith ann gus luach a chòdachadh. Is e an dòigh as fhasa air dìmeas a chuir an gnìomh le bhith a’ cruinneachadh àireamhan puing-fleòdraidh.

Tha Glenn Fiedler (a-rithist!) a’ sealltainn mar a chuireas tu dìmeas ann an cleachdadh san artaigil aige Compression Snapshot.

Algorithms dùmhlachd

Is e an ath innleachd algorithms teannachaidh gun chall.

Seo, nam bheachd-sa, na trì algorithms as inntinniche a dh’ fheumas tu a bhith eòlach:

  • Còdachadh Huffman le còd ro-shuidhichte, a tha gu math luath agus a bheir deagh thoraidhean. Chaidh a chleachdadh gus pacaidean a dhlùthadh ann an einnsean lìonra Quake3.
  • zlib na algairim teannachaidh adhbhar coitcheann nach bi a’ meudachadh na tha de dhàta gu bràth. Ciamar a chì thu an seo, chaidh a chleachdadh ann an diofar thagraidhean. Airson stàitean ùrachadh, dh’ fhaodadh nach eil feum air. Ach faodaidh e a bhith feumail ma dh’ fheumas tu maoin, teacsaichean fada no fearann ​​​​a chuir gu teachdaichean bhon t-seirbheisiche.
  • A’ dèanamh lethbhreac de dh’fhaid ruith is dòcha gur e seo an algairim teannachaidh as sìmplidh, ach tha e gu math èifeachdach airson seòrsachan sònraichte de dhàta, agus faodar a chleachdadh mar cheum ro-ghiollachd ro zlib. Tha e gu sònraichte freagarrach airson a bhith a ’teannachadh fearann ​​​​anns a bheil leacan no voxels anns a bheil mòran eileamaidean nàbaidh air an ath-aithris.

dlùthadh delta

Is e an dòigh teannachaidh deireannach teannachadh delta. Tha e na laighe anns an fhìrinn nach eil ach na h-eadar-dhealachaidhean eadar an staid geama gnàthach agus an stàit mu dheireadh a fhuair an neach-dèiligidh air an tar-chuir.

Chaidh a chleachdadh an toiseach ann an einnsean lìonra Quake3. Seo dà artaigil a’ mìneachadh mar a chleachdas tu e:

Chleachd Glenn Fiedler e cuideachd anns an dàrna pàirt den artaigil aige. Compression Snapshot.

Crioptachadh

A bharrachd air an sin, is dòcha gum feum thu cuairteachadh fiosrachaidh a chrioptachadh eadar teachdaichean agus an frithealaiche. Tha grunn adhbharan ann airson seo:

  • Prìobhaideachd/Dìomhaireachd: Chan fhaod ach an neach a gheibh teachdaireachdan a leughadh agus chan urrainn dha sniffer lìonra sam bith eile an leughadh.
  • dearbhadh: feumaidh fios a bhith aig neach a tha airson àite cluicheadair a chluich air an iuchair aige.
  • casg meallta: bidh e tòrr nas duilghe do chluicheadairean droch-rùnach na pasganan meallta aca fhèin a chruthachadh, feumaidh iad an sgeama crioptachaidh ath-aithris agus an iuchair a lorg (a dh’ atharraicheas air gach ceangal).

Tha mi a’ moladh gu làidir leabharlann a chleachdadh airson seo. Tha mi a 'moladh a chleachdadh libsodium, oir tha e gu sònraichte sìmplidh agus tha clasaichean oideachaidh math ann. Gu sònraichte inntinneach tha an oideachadh air prìomh iomlaid, a leigeas leat iuchraichean ùra a ghineadh air gach ceangal ùr.

Pròtacal Iarrtais: Co-dhùnadh

Tha seo a’ crìochnachadh protocol an tagraidh. Tha mi a 'creidsinn gu bheil teannachadh gu tur roghainneil agus tha an co-dhùnadh a chleachdadh an crochadh a-mhàin air a' gheama agus an leud-bann a tha a dhìth. Tha crioptachadh, nam bheachd-sa, riatanach, ach anns a’ chiad prototype faodaidh tu a dhèanamh às aonais.

Logic aplacaid

Tha e comasach dhuinn a-nis an stàit ùrachadh anns an neach-dèiligidh, ach is dòcha gum bi sinn a’ ruith a-steach do chùisean latency. Feumaidh an cluicheadair, às deidh dha cuir a-steach a chuir a-steach, feitheamh ri ùrachadh staid geama bhon t-seirbheisiche gus faicinn dè a’ bhuaidh a tha air a bhith aige air an t-saoghal.

A bharrachd air an sin, eadar dà ùrachadh stàite, tha an saoghal gu tur statach. Ma tha ìre ùrachaidh na stàite ìosal, bidh na gluasadan gu math borb.

Tha grunn dhòighean ann gus buaidh na trioblaid seo a lasachadh, agus bruidhnidh mi orra san ath earrann.

Cuir dàil air dòighean glanaidh

Tha a h-uile modh a tha air a mhìneachadh san roinn seo air a dheasbad gu mionaideach san t-sreath. Ioma-chluicheadair aig astar luath Gabriel Gambetta. Tha mi gu mòr a’ moladh an t-sreath artaigilean sàr-mhath seo a leughadh. Tha e cuideachd a’ toirt a-steach demo eadar-ghnìomhach gus faicinn mar a tha na dòighean sin ag obair ann an cleachdadh.

Is e a’ chiad innleachd an toradh cuir a-steach a chuir an sàs gu dìreach gun a bhith a’ feitheamh ri freagairt bhon fhrithealaiche. Canar ro-innse taobh teachdaiche. Ach, nuair a gheibh an neach-dèiligidh ùrachadh bhon t-seirbheisiche, feumaidh e dearbhadh gu robh an ro-aithris ceart. Mura h-eil seo fìor, feumaidh e dìreach a stàit atharrachadh a rèir na fhuair e bhon t-seirbheisiche, leis gu bheil am frithealaiche ùghdarrasach. Chaidh an dòigh seo a chleachdadh an toiseach ann an Quake. Faodaidh tu barrachd a leughadh mu dheidhinn san artaigil. Ath-sgrùdadh còd Quake Engine Fabien sanglars [eadar-theangachadh air Habre].

Tha an dàrna seata de dhòighean-obrach air a chleachdadh gus gluasad bhuidhnean eile eadar dà ùrachadh stàite a dhèanamh rèidh. Tha dà dhòigh air an duilgheadas seo fhuasgladh: eadar-roinn agus cur-a-mach. Ann an cùis eadar-cheangail, thèid an dà stàit mu dheireadh a ghabhail agus tha an gluasad bho aon gu fear eile air a shealltainn. Is e an ana-cothrom a th’ ann gu bheil e ag adhbhrachadh bloigh bheag den dàil, leis gu bheil an neach-dèiligidh an-còmhnaidh a’ faicinn na thachair san àm a dh’ fhalbh. Tha às-tharraing mu dheidhinn a bhith a’ ro-innse far am bu chòir na buidhnean a bhith a-nis stèidhichte air an stàit mu dheireadh a fhuair an neach-dèiligidh. Is e an ana-cothrom a th ’ann ma dh’ atharraicheas an eintiteas slighe a ’ghluasaid gu tur, bidh mearachd mòr eadar an ro-aithris agus an suidheachadh fìor.

Is e an dòigh mu dheireadh, as adhartaiche, a tha feumail a-mhàin ann am FPS dìoladh lag. Nuair a bhios tu a’ cleachdadh dìoladh lag, bidh an frithealaiche a’ toirt aire do dhàil an neach-dèiligidh nuair a loisgeas e air an targaid. Mar eisimpleir, nan dèanadh cluicheadair grèim air an sgrion aca, ach gu fìrinneach bha an targaid aca ann an àite eile air sgàth na dàil, bhiodh e mì-chothromach còir marbhadh a dhiùltadh don chluicheadair air sgàth an dàil. Mar sin bidh an frithealaiche ag ath-thionndadh ùine air ais gu nuair a loisg an cluicheadair gus atharrais air na chunnaic an cluicheadair air an sgrion aca agus sùil a thoirt airson tubaist eadar am peilear agus an targaid.

Sgrìobh Glenn Fiedler (mar a bha e an-còmhnaidh!) Artaigil ann an 2004 Network Physics (2004), anns an do chuir e bunait airson sioncronadh samhlaidhean fiosaig eadar an fhrithealaiche agus an neach-dèiligidh. Ann an 2014 sgrìobh e sreath ùr de artaigilean fiosaig lìonraidh, anns an tug e cunntas air dòighean eile airson samhlaidhean fiosaig a shioncronachadh.

Tha dà artaigil ann cuideachd air uici Valve, Stòr lìonra ioma-chluicheadair и Dòighean dìolaidh latency ann an dealbhadh protocol in-gheam teachdaiche / frithealaiche agus Optimization dèiligeadh ri dìoladh dàil.

Bacadh meallta

Tha dà phrìomh dhòigh casg meallta ann.

An toiseach, ga dhèanamh nas duilghe dha mealltairean pacaidean droch-rùnach a chuir. Mar a chaidh a ràdh gu h-àrd, is e crioptachadh dòigh mhath air a bhuileachadh.

San dàrna h-àite, cha bu chòir don fhrithealaiche ùghdarrasach ach òrdughan / cuir a-steach / gnìomhan fhaighinn. Cha bu chòir gum biodh an neach-dèiligidh comasach air an stàit atharrachadh air an fhrithealaiche ach a-mhàin le bhith a 'cur a-steach. An uairsin feumaidh am frithealaiche, gach uair a gheibh e a-steach, sgrùdadh a dhèanamh air airson dligheachd mus cuir e a-steach e.

Logic tagraidh: Co-dhùnadh

Tha mi a’ moladh gun cuir thu an gnìomh dòigh gus atharrais air ìrean latency àrd agus ìosal ùrachaidh gus an urrainn dhut giùlan do gheama a dhearbhadh ann an droch shuidheachaidhean, eadhon nuair a tha an neach-dèiligidh agus an frithealaiche a’ ruith air an aon inneal. Tha seo gu mòr a’ sìmpleachadh buileachadh dòighean rèidhidh dàil.

Goireasan feumail eile

Ma tha thu airson goireasan eile a sgrùdadh air modalan lìonra, gheibhear iad an seo:

  • Blog Glenn Fiedler - is fhiach am blog aige gu lèir a leughadh, tha tòrr artaigilean sàr-mhath ann. tha e tha a h-uile artaigil air teicneòlasan lìonra air a chruinneachadh.
  • Lìonra Geamannan uamhasach le M. Fatih Tha MAR na liosta fharsaing de artaigilean agus bhideothan air einnseanan lìonraidh geama bhidio.
  • В wiki subreddit r/gamedev Tha mòran cheanglaichean feumail ann cuideachd.

Source: www.habr.com

Cuir beachd ann