Megapack: Momwe Factoro Anathetsera Vuto Losewerera Masewero Ambiri 200

Megapack: Momwe Factoro Anathetsera Vuto Losewerera Masewero Ambiri 200
Mu Meyi chaka chino ndidachita nawo masewera Zochitika za MMO KatherineOfSky. Ndinaona kuti chiwerengero cha osewera chikafika pa nambala inayake, mphindi zochepa zilizonse ena a iwo "amagwa". Mwamwayi kwa inu (koma osati ine), ndinali m'modzi mwa osewera omwe adasiya kulumikizana nthawi iliyonse, ngakhale ndi mgwirizano wabwino. Ndinatenga izi ngati vuto laumwini ndikuyamba kuyang'ana zomwe zimayambitsa vutoli. Pambuyo pa milungu itatu yochotsa zolakwika, kuyesa, ndi kukonza, cholakwikacho chidakonzedwa, koma ulendowo sunali wophweka.

Mavuto ndi masewera osewera ambiri ndi ovuta kuwatsata. Nthawi zambiri zimachitika pazigawo zapadera zapaintaneti komanso masewera enaake (panthawiyi, kukhala ndi osewera opitilira 200). Ndipo ngakhale vuto litatha kupangidwanso, silingathetsedwe bwino chifukwa kuyika zodulira kumayimitsa masewerawa, kumasokoneza zowerengera, ndipo nthawi zambiri kumapangitsa kuti kulumikizana kuthe. Koma chifukwa cha kulimbikira ndi chida chodabwitsa chotchedwa zosamveka Ndinakwanitsa kudziwa zomwe zikuchitika.

Mwachidule, chifukwa cha cholakwika komanso kusakwanira koyeserera kwa latency state, kasitomala nthawi zina amadzipeza ali mumkhalidwe woti amayenera kutumiza paketi ya netiweki yomwe imakhala ndi zomwe wosewerayo wasankha zamagulu pafupifupi 400 pawotchi imodzi ( timachitcha "mega-packet"). Seva sayenera kungolandira zonse zolowetsa izi molondola, komanso kuzitumiza kwa makasitomala ena onse. Ngati muli ndi makasitomala 200, izi zimakhala zovuta. Ulalo wa seva umakhala wotsekeka, zomwe zimapangitsa kuti paketi iwonongeke komanso kuchuluka kwa mapaketi omwe adafunsidwanso. Kuchedwetsa kulowetsako kumapangitsa kuti makasitomala ambiri atumize ma megapackets, zomwe zimapangitsa kuti chigumukirecho chichuluke. Makasitomala amwayi amatha kuchira; ena onse amagwa.

Megapack: Momwe Factoro Anathetsera Vuto Losewerera Masewero Ambiri 200
Vutoli linali lofunikira kwambiri ndipo zinanditengera milungu iwiri kuti ndilikonze. Ndizowoneka bwino kwambiri, kotero ndikufotokozerani zaukadaulo pansipa. Koma choyamba, muyenera kudziwa kuti popeza mtundu wa 2, womwe unatulutsidwa pa June 0.17.54, mukukumana ndi mavuto osakhalitsa ogwirizanitsa, oswerera angapo akhazikika, ndipo kubisala kuchedwa kwakhala kochepa kwambiri (kuchepa pang'ono ndi teleporting). Ndasinthanso njira yobisika yankhondo ndipo ndikukhulupirira kuti izi zipangitsa kuti zikhale zosavuta.

Multiplayer Mega Pack - Zambiri Zaukadaulo

Kunena mwachidule, osewera ambiri pamasewera amagwira ntchito motere: makasitomala onse amatengera momwe masewerawo alili, kulandira ndikutumiza zolowetsa za osewera (otchedwa "zolowera", Lowetsani Zochita). Ntchito yayikulu ya seva ndikusamutsa Lowetsani Zochita ndikuwongolera kuti makasitomala onse azichita zinthu zofanana mu wotchi yofanana. Mutha kuwerenga zambiri za izi mu positi FFF-149.

Popeza seva iyenera kupanga zisankho pazomwe angachite, zochita za osewera zimasuntha pafupifupi njira iyi: osewera osewera -> kasitomala wamasewera -> network -> seva -> network -> kasitomala wamasewera. Izi zikutanthauza kuti zochita za aliyense wosewera mpira zimachitika kokha pambuyo kupanga ulendo wozungulira kudutsa maukonde. Chifukwa cha izi, masewerawa angawoneke ngati akuchedwa kwambiri, kotero atangoyamba kumene oswerera angapo pamasewerawa, adayambitsidwa njira yobisa kuchedwa. Kubisala kuchedwa kumatengera kulowetsa kwa osewera popanda kuganizira zochita za osewera ena komanso zosankha za seva.

Megapack: Momwe Factoro Anathetsera Vuto Losewerera Masewero Ambiri 200
Factoro ili ndi masewera Game State ndi momwe khadi, wosewera mpira, mabungwe ndi china chilichonse. Imafaniziridwa mwamakasitomala onse kutengera zomwe adalandira kuchokera ku seva. Masewera amasewera ndi opatulika, ndipo ngati ayamba kusiyana ndi seva kapena kasitomala wina aliyense, ndiye kuti desync imachitika.

kupatula Game State tili ndi mkhalidwe wakuchedwa Latency State. Lili ndi kagawo kakang'ono ka dziko lapansi. Latency State osati zopatulika ndipo zimangoyimira chithunzi cha momwe masewerawa adzawonekere m'tsogolomu potengera zolowetsa osewera Lowetsani Zochita.

Pachifukwa ichi, timasunga kopi ya zomwe zidapangidwa Lowetsani Zochita pamzere wochedwa.

Megapack: Momwe Factoro Anathetsera Vuto Losewerera Masewero Ambiri 200
Ndiye kuti, kumapeto kwa ndondomekoyi kumbali ya kasitomala chithunzi chikuwoneka motere:

  1. Timalemba Lowetsani Zochita osewera onse kuti Game State momwe zolowetsa izi zidalandilidwa kuchokera ku seva.
  2. Timachotsa chilichonse pamzere wochedwa Lowetsani Zochita, zomwe, malinga ndi seva, zakhala zikugwiritsidwa ntchito kale Game State.
  3. Chotsani Latency State ndikuyikhazikitsanso kuti iwoneke chimodzimodzi monga Game State.
  4. Timagwiritsa ntchito zonse kuyambira pamzere wochedwa mpaka Latency State.
  5. Zotengera deta Game State ΠΈ Latency State Timapereka masewera kwa wosewera mpira.

Zonsezi zikubwerezedwa muyeso iliyonse.

Zovuta kwambiri? Osapumula, izi siziri zonse. Kuti tilipire ma intaneti osadalirika, tapanga njira ziwiri:

  • Nkhupakupa zophonya: seva ikasankha zimenezo Lowetsani Zochita adzaphedwa pa kugunda kwa masewera, ndiye ngati sanalandire Lowetsani Zochita wosewera wina (mwachitsanzo, chifukwa chakuchedwa), sadikira, koma adziwitsa kasitomala uyu "Sindinaganizirepo za Lowetsani Zochita, ndiyesera kuwawonjezera mu bar yotsatira." Izi zimachitidwa kuti chifukwa cha zovuta zolumikizana (kapena kompyuta) ya wosewera m'modzi, kusinthidwa kwa mapu sikuchedwetse kwa wina aliyense. Ndikoyenera kuzindikira zimenezo Lowetsani Zochita sanyalanyazidwa, koma amangoyikidwa pambali.
  • Kuchedwa kwathunthu kwaulendo wobwerera: Seva imayesa kulingalira kuti kuchedwa kwaulendo wobwerera pakati pa kasitomala ndi seva ndi kwa kasitomala aliyense. Masekondi aliwonse a 5, amakambirana za latency yatsopano ndi kasitomala ngati kuli kofunikira (kutengera momwe kugwirizana kwakhalira kale), ndikuwonjezera kapena kuchepetsa kuchedwa kwaulendo wozungulira moyenerera.

Paokha, njirazi ndizosavuta, koma zikagwiritsidwa ntchito palimodzi (zomwe zimachitika nthawi zambiri ndi zovuta zolumikizana), malingaliro a code amakhala ovuta kuwongolera komanso ndi milandu yambiri yam'mphepete. Kuphatikiza apo, njirazi zikayamba kugwira ntchito, seva ndi mzere wochedwetsa uyenera kugwiritsa ntchito mwapadera Lowetsani Zochita pansi pa dzina StopMovementInTheNextTick. Chifukwa cha izi, ngati pali mavuto ndi kugwirizana, khalidwe silidzathamanga paokha (mwachitsanzo, kutsogolo kwa sitima).

Tsopano tikuyenera kukufotokozerani momwe kusankha gulu kumagwirira ntchito. Imodzi mwa mitundu yopatsirana Lowetsani Zochita ndikusintha kwa kusankha kwa bungwe. Imauza aliyense gulu lomwe wosewerayo akuzungulira. Monga momwe mungaganizire, ichi ndi chimodzi mwazinthu zomwe zimatumizidwa kwambiri ndi makasitomala, kotero kuti tisunge bandwidth, tazikonza kuti zitenge malo ochepa momwe tingathere. Momwe zimagwirira ntchito ndikuti monga gulu lililonse likusankhidwa, m'malo mosunga mapu olondola, olondola kwambiri, masewerawa amasunga chibale chocheperako kuchokera pazosankha zam'mbuyomu. Izi zimagwira ntchito bwino chifukwa zosankha za mbewa zimakhala zoyandikana kwambiri ndi zomwe zasankhidwa kale. Izi zimabweretsa zofunikira ziwiri: Lowetsani Zochita Zisalumphe konse ndipo ziyenera kumalizidwa mu dongosolo loyenera. Zofunikira izi zimakwaniritsidwa Game State. Koma chifukwa ntchito Latency state mu "kuwoneka bwino mokwanira" kwa wosewera mpira, sakhutitsidwa ndi kuchedwa. Latency State sichiganizira zambiri zamkati, yokhudzana ndi kudumpha mawotchi komanso kusintha kuchedwa kwapaulendo wobwerera.

Mutha kulingalira kale komwe izi zikupita. Pomaliza tikuyamba kuwona zifukwa za vuto la megapack. Muzu wavuto ndikuti malingaliro osankha mabungwe amadalira Latency State, ndipo chigawochi sichikhala ndi chidziwitso cholondola nthawi zonse. Chifukwa chake, megapacket imapangidwa motere:

  1. Wosewerayo ali ndi vuto la kulumikizana.
  2. Njira zodumpha mawotchi ndikuwongolera kuchedwa kwa maulendo obwera ndi kubwerera zimalowa.
  3. Mzere wakuchedwa sikutengera njira izi. Izi zimapangitsa kuti zochita zina zichotsedwe msanga kapena kuchitidwa molakwika, zomwe zimapangitsa kuti zikhale zolakwika Latency State.
  4. Wosewerayo ali ndi vuto lolumikizana ndipo, kuti agwirizane ndi seva, amayerekezera mpaka ma 400.
  5. Pa nkhupakupa iliyonse, chochita chatsopano, chosintha chosankhidwa, chimapangidwa ndikukonzedwa kuti chitumizidwe ku seva.
  6. Makasitomala amatumiza mega-batch ya 400 + kusintha kosankhidwa kwa zinthu ku seva (ndipo ndi zochita zina: mayiko owombera, mayiko oyenda, ndi zina zambiri adakumananso ndi vutoli).
  7. Seva imalandira zolowetsa 400. Popeza sikuloledwa kudumpha zolowetsa, imalamula makasitomala onse kuti achite izi ndikuwatumiza pa intaneti.

Chodabwitsa ndichakuti makina opangidwa kuti asunge bandwidth adamaliza kupanga mapaketi akulu akulu amtaneti.

Tinathana ndi vutoli pokonza zochitika zonse zam'mbali zotsitsimutsa ndi chithandizo chamzere wammbuyo. Ngakhale zidatenga nthawi yayitali, pamapeto pake zidali zoyenera kuzikonza m'malo modalira ma hacks ofulumira.

Source: www.habr.com

Kuwonjezera ndemanga