Megapack: Quomodo Factorio Solvit CC-Lusor Multiplayer Problema?

Megapack: Quomodo Factorio Solvit CC-Lusor Multiplayer Problema?
Mense Maio huius anni particeps sum ut lusor in MMO certe KatherineOfSky. Animadverti, cum lusorum numerus ad certum numerum pervenit, singula ex iis pauca minutatim "decidere". Feliciter tibi (sed non pro me), unus ex his histriones eram qui disiungitur omni temporenec cum bono nexu. Hoc pro personali provocatione tuli et causas quaestionis quaerere coepi. Post tres septimanas debugging, tentans, figens, cimex tandem fixa est, sed iter non erat facile.

Problemata cum lusoribus ludis difficillima sunt indagare. Solent accidere sub retis specificis parametris et condiciones valde specificas venationis (hoc in casu, plus quam 200 histriones habentes). Et etiam cum quaestio reproduci potest, recte debuged non potest, quia intersertio breakpoints impedit ludum, timers confundit, et plerumque nexum causat ad tempus. Sed pervicacia et admirabilis gratiae instrumentum appellatur rusticitas potui ut quid rei esset.

In summa, ob cimex et incompleta exsecutio latency status simulationis, cliens se interdum inveniret in statu in quo debebat mittere fasciculum retis constans histrionum input electionem actionum circiter 400 ludi entium in uno cyclo horologii ( hoc "mega-packet") vocamus. Servo igitur non solum omnes istas actiones inputas recte recipere debet, sed etiam eas ad omnes alios clientes mittere debet. Si clientes 200 habetis, cito haec quaestio fit. Coniunctio servo cito plusculum ingerit, ducens ad damnum fasciculi et casus re- petiti facis. Cunctans input actionem tunc magis clientes facit ut megapackets mittat, causando NIVIS ad maiorem fiendam. Fortunati clientes recuperare procurant, ceteri omnes excidere.

Megapack: Quomodo Factorio Solvit CC-Lusor Multiplayer Problema?
Problema satis fundamentale fuit ac me 2 septimanas reficere cepit. Satis technicum est, ut pubentes singula technica infra exponam. Prius autem scire debes quia post versionem 0.17.54, die 4 Iunii, in facie nexus temporariae emissa, pluribus lusoribus stabilior facta est, et morae latens multo minus buggy (minus tarditatis et teleporti) factae sunt. Etiam mutavi viam pugnae pigriorem in occulto et spero hoc paulo levius facturum.

Multiplayer Mega Pack - Technical Details

Simpliciter ponere, lusoribus in ludo opera sic facit: omnes clientes statum ludi simulant, accipientes et mittentes solum input ludio ludius (vocatur "input actiones"; Input actiones). Praecipuum munus ministri transferre est Input actiones ac moderari ut omnes clientes easdem actiones in eodem cyclo horologii faciant. Plura de hoc legere potes in poste FFF-149.

Cum servo decernere debet circa quae actiones exercendae sunt, actiones lusoris circa hanc viam movent: actio lusoris -> ludus clientis -> retis -> server -> retis -> lusus client. Hoc significat quod actio cuiusque lusoris tantum exercetur postquam iter rotundum per reticulum facit. Propter hoc, ludus valde tardus videtur, sic fere statim post inducta lusoria in ludo, machina ma- china ad moras occultandas introducta est. Mora latens simulat ludio ludius initus sine habita ratione actionum aliorum lusorum et sententiae ministri.

Megapack: Quomodo Factorio Solvit CC-Lusor Multiplayer Problema?
Factorio habet ludum civitatis Ludus publicae est perfectus status chartae, lusoris, entitatum et cetera. Simulata est determinate in omnibus clientibus secundum actiones a servo receptas. Status lusus sacer est, et si quando incipit differre a servo vel ab alio cliente, tunc fit desync.

nisi Ludus publicae habemus statum morae Latency rei publicae. Habet parvam partem agri publici. Latency rei publicae non sacra et simpliciter imaginem repraesentat eorum quae in statu ludi spectabuntur sicut in futuro secundum inputs ludio ludius Input actiones.

Ad hoc exemplar rerum creatarum condimus Input actiones in mora queue.

Megapack: Quomodo Factorio Solvit CC-Lusor Multiplayer Problema?
Hoc est, in fine processus in parte clientis imago aliquid simile hoc spectat;

  1. applicamus Input actiones Omnes histriones Ludus publicae Modus actionum inputationis a servo acceptae sunt.
  2. Tollimus omnia ex mora queue Input actionesquae pro servo iam apposita sunt Ludus publicae.
  3. Delete Latency rei publicae ac reset ita spectat prorsus simile Ludus publicae.
  4. Omnes actiones applicamus ex mora queue Latency rei publicae.
  5. Ex notitia Ludus publicae ΠΈ Latency rei publicae Lusum histrioni reddimus.

Haec omnia in omni parte repetuntur.

Nimis difficile est? Non tellus, non omnia. Ad emendandas nexus interretiales ambiguis machinas duas creavimus:

  • Desiderari ricini, cum servo iudicat Input actiones fiet percussio ludi, si non accepit Input actiones quidam lusor (exempli gratia, propter auctam moram), non exspectabit, sed hunc clientem certiorem faciet: "Non rationem vestram habeo". Input actiones, tentabo eas in altera vecte addere." Hoc fit ut propter difficultates nexus (vel computatrum) unius lusoris, tabula renovatio omnibus aliis non retardet. Notatu dignum est Input actiones non neglecta, sed abiecta.
  • Plena circum iter latency: Minister coniecturare conatur quid latency circum-trinus inter clientem et servulum pro quolibet cliente sit. Singulis 5 secundis secundis, novam latentiam cum cliente, si opus sit, tractat (secundum quomodo nexus in praeterito egerit), ac proinde latency circum iter auget vel minuit.

In sua propria, hae machinae admodum simplices sunt, sed cum simul adhibentur (quod saepe cum quaestionibus connexionibus accidit), logica codicis difficilis fit et multum in extremis casibus administrare. Accedit, cum hae machinationes in discrimen veniunt, cultor et mora queue specialem proprie efficere debent Input Action nomine StopMovementInTheNextTick. Propter hoc, si problemata sunt cum nexu, character in suo (exempli gratia, ante tramen).

Nunc opus est vobis explicare, quomodo res selectae sint operae. Una traducitur types Input Action mutatio est in ente delectu civitatis. Narrat omnia quae entitatem scaenicus volitant. Ut credis, hoc unum est actionum communissimarum inputium a clientibus missis, ita ut band latitudinem servemus, id ipsum quam minimum spatii sumimus. Via operatur est quod, sicut unumquodque ens eligitur, pro reponenda absoluta, alta praecisione coordinatarum tabularum, lusus ponit humili praecisio relativa offset ex electione priorum. Hoc bene operatur, quod mus excerpta tendunt ut lectio priori proxima sit. Hic movet duas res magnas necessarias; Input actiones Numquam omittenda sunt et recto ordine perficienda sunt. Haec requiruntur Ludus publicae. Sed quia negotium Latency state in "quaero satis" pro histrionis, non sunt contenti in mora publica. Latency rei publicae non consideret multis in ore gladii casibus, consociata cum horologii cyclis omissis et transmissionis moras gyro mutando.

Conicere iam potes quo hoc eat. Tandem incipimus videre causas quaestionis megapack. Radix quaestionis est quod logica entitatis lectio innititur Latency rei publicaequi status non semper rerum cognitionem continet. ergo megapacket generatur aliquid simile;

  1. Scaenicus nexus difficultates habet.
  2. Mechanismi ad cyclos horologii omissis et dilationem transmissionis rotundi rotundi ordiendi oriuntur.
  3. Cunctatio publica queue has machinationes in rationem non accipit. Unde aliquae actiones praemature removendae sunt vel in malo ordine peragendae, inde in non recte Latency rei publicae.
  4. Scaenicus quaestionem habet nexum et, ut servo adsequi, 400 cyclos simulat.
  5. In unoquoque ricino, actio nova, mutato ente delectu, generatur et praeparatur ad missionem servo.
  6. Cliens mega-batch of 400+ ens electionis mutationes servo mittit (et cum aliis actionibus: civitatibus dirigendis, civitatibus ambulando, etc. etiam ab hoc problemate laborantibus).
  7. Servo 400 actiones initus accipit. Cum non licet quaslibet actiones inputationes transilire, omnes clientes iubet actiones illas conficere et trans retia mittere.

Ironia est mechanismum ad conservandum bandwidth destinatum ut fasciculos retis ingentes creando finivit.

Hanc quaestionem appellavimus figentes omnes extremas causas renovationis et subsidii queue backlog. Tametsi aliquantum temporis sumpsit, in fine valuit bene mereri quam fretus velox autocinetis.

Source: www.habr.com