Yuav ua li cas peb txhim kho cov tshuab ntawm kev suav ballistic rau lub xov tooj txawb nrog lub network latency them nyiaj algorithm

Yuav ua li cas peb txhim kho cov tshuab ntawm kev suav ballistic rau lub xov tooj txawb nrog lub network latency them nyiaj algorithm

Nyob zoo, Kuv yog Nikita Brizhak, tus tsim tawm server los ntawm Pixonic. Hnub no kuv xav tham txog kev them nyiaj rau lag hauv mobile multiplayer.

Ntau cov ntawv tau sau txog cov nyiaj them poob haujlwm server, suav nrog hauv Lavxias. Qhov no tsis yog qhov xav tsis thoob, txij li cov thev naus laus zis no tau nquag siv hauv kev tsim ntau tus neeg ua si FPS txij thaum 90s lig. Piv txwv li, koj tuaj yeem nco qab QuakeWorld mod, uas yog ib qho ntawm thawj zaug siv nws.

Peb kuj siv nws nyob rau hauv peb mobile multiplayer shooter Dino Squad.

Hauv tsab xov xwm no, kuv lub hom phiaj tsis yog rov hais dua qhov uas twb tau sau lawm ib txhiab zaug, tab sis qhia seb peb siv nyiaj lag luam li cas hauv peb qhov kev ua si, suav nrog peb cov cuab yeej thev naus laus zis thiab cov yam ntxwv tseem ceeb gameplay.

Ob peb lo lus hais txog peb cortex thiab technology.

Dino Squad yog lub network mobile PvP tua. Cov neeg ua si tswj cov dinosaurs nruab nrog ntau yam riam phom thiab sib ntaus sib tua hauv 6v6 pawg.

Ob tus neeg siv khoom thiab tus neeg rau zaub mov yog nyob ntawm Unity. Lub architecture yog heev classic rau shooters: tus neeg rau zaub mov yog authoritarian, thiab tus neeg twv twv ua haujlwm rau cov neeg siv khoom. Qhov kev ua si simulation yog sau siv hauv tsev ECS thiab siv rau ntawm ob tus neeg rau zaub mov thiab cov neeg siv khoom.

Yog tias qhov no yog thawj zaug koj tau hnov ​​​​txog kev them nyiaj lag luam, ntawm no yog ib qho kev mus ncig luv luv rau hauv qhov teeb meem.

Hauv multiplayer FPS kev ua si, qhov sib tw feem ntau yog simulated ntawm lub chaw taws teeb chaw taws teeb. Cov neeg ua si xa lawv cov tswv yim (cov ntaub ntawv hais txog cov yuam sij nias) rau cov neeg rau zaub mov, thiab hauv kev teb cov neeg rau zaub mov xa lawv cov kev ua si tshiab hauv xeev suav nrog cov ntaub ntawv tau txais. Nrog rau txoj kev sib cuam tshuam no, qhov ncua sij hawm ntawm nias tus yuam sij rau pem hauv ntej thiab lub sijhawm tus neeg ua si tus cwj pwm txav ntawm lub vijtsam yuav ib txwm muaj ntau dua li ping.

Thaum nyob hauv cov tes hauj lwm hauv zos qhov ncua sij hawm no (nrov hu ua input lag) yuav tsis pom, thaum ua si hauv Is Taws Nem nws tsim qhov kev xav ntawm "sliding on ice" thaum tswj tus cwj pwm. Qhov teeb meem no yog ob zaug cuam tshuam rau cov xov tooj ntawm tes, qhov xwm txheej thaum tus neeg ua si ping yog 200 ms tseem suav tias yog kev sib txuas zoo heev. Feem ntau cov ping tuaj yeem yog 350, 500, lossis 1000 ms. Tom qab ntawd nws yuav luag tsis tuaj yeem ua si nrawm nrawm nrog cov tswv yim lag.

Qhov kev daws teeb meem rau qhov teeb meem no yog tus neeg siv khoom-sab simulation twv ua ntej. Ntawm no tus neeg siv nws tus kheej siv cov tswv yim rau tus neeg ua si cim, tsis tas tos cov lus teb los ntawm server. Thiab thaum tau txais cov lus teb, nws tsuas yog sib piv cov txiaj ntsig thiab hloov kho cov neeg sib tw txoj haujlwm. Qhov ncua sij hawm ntawm nias tus yuam sij thiab tso tawm qhov tshwm sim ntawm qhov screen hauv qhov no yog tsawg heev.

Nws yog ib qho tseem ceeb kom nkag siab txog qhov nuance ntawm no: tus neeg siv khoom ib txwm rub nws tus kheej raws li nws cov tswv yim zaum kawg, thiab cov yeeb ncuab - nrog lub network qeeb, raws li lub xeev dhau los ntawm cov ntaub ntawv los ntawm cov neeg rau zaub mov. Ntawd yog, thaum tua ntawm tus yeeb ncuab, tus neeg ua si pom nws yav dhau los txheeb ze rau nws tus kheej. Xav paub ntau ntxiv txog cov neeg siv khoom twv ua ntej peb sau ua ntej.

Yog li, tus neeg siv khoom twv yuav daws tau ib qho teeb meem, tab sis tsim lwm qhov: yog tias tus neeg ua si tua ntawm qhov chaw uas tus yeeb ncuab nyob rau yav dhau los, ntawm tus neeg rau zaub mov thaum tua ntawm tib lub ntsiab lus, tus yeeb ncuab yuav tsis nyob hauv qhov chaw ntawd lawm. Server lag them nyiaj sim daws qhov teeb meem no. Thaum muaj riam phom raug rho tawm haujlwm, tus neeg rau zaub mov rov kho qhov kev ua si hais tias tus neeg ua si pom hauv zos thaum lub sijhawm txhaj tshuaj, thiab xyuas seb nws puas tuaj yeem ntaus tus yeeb ncuab tiag tiag. Yog hais tias cov lus teb yog "yog," tus ntaus raug suav, txawm tias tus yeeb ncuab tsis nyob rau ntawm lub server ntawm lub sijhawm ntawd.

Armed nrog cov kev paub no, peb pib siv cov nyiaj them poob haujlwm hauv Dino Squad. Ua ntej ntawm tag nrho cov, peb yuav tsum to taub yuav ua li cas rov qab los ntawm tus neeg rau zaub mov li cas tus neeg tau pom? Thiab dab tsi raws nraim yuav tsum tau rov qab? Hauv peb qhov kev ua si, hits los ntawm riam phom thiab peev xwm raug xam los ntawm raycasts thiab overlays - uas yog, los ntawm kev cuam tshuam nrog cov yeeb ncuab lub cev sib tsoo. Raws li, peb yuav tsum tau rov tsim dua txoj haujlwm ntawm cov kev sib tsoo no, uas cov neeg ua si "pom" hauv zos, ntawm server. Lub sijhawm ntawd peb tau siv Unity version 2018.x. Lub physics API muaj qhov zoo li qub, lub ntiaj teb lub cev muaj nyob hauv ib daim qauv. Tsis muaj txoj hauv kev los cawm nws lub xeev thiab rov qab los ntawm lub thawv. Yog li yuav ua li cas?

Kev daws yog nyob rau saum npoo; tag nrho nws cov ntsiab lus twb tau siv los ntawm peb los daws lwm yam teeb meem:

  1. Rau txhua tus neeg siv khoom, peb yuav tsum paub lub sijhawm twg nws pom cov neeg tawm tsam thaum nws nias tus yuam sij. Peb twb tau sau cov ntaub ntawv no rau hauv pob khoom nkag thiab siv nws los kho tus neeg siv khoom kwv yees.
  2. Peb yuav tsum muaj peev xwm khaws keeb kwm ntawm cov xeev game. Nws yog nyob rau hauv nws uas peb yuav tuav txoj hauj lwm ntawm peb cov neeg tawm tsam (thiab yog li ntawd lawv cov colliders). Peb twb muaj lub xeev keeb kwm ntawm lub server, peb siv nws los tsim deltas. Paub txog lub sijhawm zoo, peb tuaj yeem yooj yim nrhiav lub xeev txoj cai hauv keeb kwm.
  3. Tam sim no peb muaj lub xeev kev ua si los ntawm keeb kwm hauv tes, peb yuav tsum muaj peev xwm synchronize cov ntaub ntawv player nrog lub xeev ntawm lub ntiaj teb lub cev. Cov kev sib tsoo uas twb muaj lawm - txav mus, cov uas ploj lawm - tsim, tsis tsim nyog - rhuav tshem. Cov logic no kuj tau sau thiab muaj ntau lub tshuab ECS. Peb siv nws los tuav ob peb chav ua si hauv ib txheej txheem Unity. Thiab txij li lub ntiaj teb lub cev yog ib qho txheej txheem, nws yuav tsum tau rov siv dua ntawm chav. Ua ntej txhua tus zuam ntawm qhov simulation, peb "rov pib dua" lub xeev ntawm lub ntiaj teb lub cev thiab rov pib dua nrog cov ntaub ntawv rau chav tam sim no, sim rov siv cov khoom sib koom ua si ntau li ntau tau los ntawm kev sib koom ua ke ntse. Txhua yam uas tseem tshuav yog los hu tib lub logic rau lub xeev kev ua si los ntawm yav dhau los.

Los ntawm muab tag nrho cov ntsiab lus no ua ke, peb tau txais "lub sijhawm tshuab" uas tuaj yeem thim rov qab lub xeev ntawm lub ntiaj teb lub cev mus rau lub sijhawm. Cov cai tau dhau los ua qhov yooj yim:

public class TimeMachine : ITimeMachine
{
     //Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… состояний
     private readonly IGameStateHistory _history;

     //Π’Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ состояниС Π½Π° сСрвСрС
     private readonly ExecutableSystem[] _systems;

     //Набор систСм, Ρ€Π°ΡΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ»Π»Π°ΠΉΠ΄Π΅Ρ€Ρ‹ Π² физичСском ΠΌΠΈΡ€Π΅ 
     //ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠ· ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ состояния
     private readonly GameState _presentState;

     public TimeMachine(IGameStateHistory history, GameState presentState, ExecutableSystem[] timeInitSystems)
     {
         _history = history; 
         _presentState = presentState;
         _systems = timeInitSystems;  
     }

     public GameState TravelToTime(int tick)
     {
         var pastState = tick == _presentState.Time ? _presentState : _history.Get(tick);
         foreach (var system in _systems)
         {
             system.Execute(pastState);
         }
         return pastState;
     }
}

Txhua yam uas tseem tshuav yog los xyuas seb yuav siv lub tshuab no li cas kom yooj yim them nyiaj rau kev txhaj tshuaj thiab muaj peev xwm.

Hauv qhov yooj yim tshaj plaws, thaum cov tshuab ua raws li ib qho hitscan, txhua yam zoo li pom tseeb: ua ntej tus neeg ua si tua, nws yuav tsum tau yob rov qab lub ntiaj teb lub cev mus rau lub xeev xav tau, ua raycast, suav qhov ntaus lossis nco, thiab rov qab lub ntiaj teb mus rau lub xeev thawj zaug.

Tab sis muaj tsawg heev xws li mechanics hauv Dino Squad! Feem ntau ntawm cov riam phom hauv qhov kev ua si tsim qhov projectiles - cov mos txwv nyob ntev uas ya rau ntau tus zuam simulation (qee zaum, ntau tus zuam). Yuav ua li cas nrog lawv, lawv yuav tsum ya thaum twg?

Π’ tsab xov xwm qub Txog Ib Nrab-Life network pawg, cov hais mav los ntawm Valve tau nug tib lo lus nug, thiab lawv cov lus teb yog qhov no: qhov nyiaj them poob haujlwm yog teeb meem, thiab nws yog qhov zoo dua kom zam.

Peb tsis muaj qhov kev xaiv no: riam phom raws li qhov projectile yog qhov tseem ceeb ntawm kev tsim game. Yog li ntawd peb yuav tsum tuaj nrog ib yam dab tsi. Tom qab qee qhov kev tawm tswv yim, peb tsim ob txoj kev xaiv uas zoo li ua haujlwm:

1. Peb khi lub projectile rau lub sij hawm ntawm tus neeg uas ua ntawv uas tsim nws. Txhua zuam ntawm lub server simulation, rau txhua lub mos txwv ntawm txhua tus neeg uas ua ntawv, peb yob rov qab lub ntiaj teb lub cev mus rau lub xeev tus neeg siv khoom thiab ua qhov tsim nyog suav. Txoj hauv kev no ua rau nws muaj peev xwm muaj kev faib tawm ntawm cov neeg rau zaub mov thiab kwv yees lub sijhawm davhlau ntawm qhov projectiles. Predictability yog ib qho tseem ceeb rau peb, vim peb muaj tag nrho cov projectiles, nrog rau cov yeeb ncuab projectiles, kwv yees ntawm tus neeg siv khoom.

Yuav ua li cas peb txhim kho cov tshuab ntawm kev suav ballistic rau lub xov tooj txawb nrog lub network latency them nyiaj algorithm
Nyob rau hauv daim duab, tus neeg uas ua ntawv ntawm zuam 30 tua ib tug missile nyob rau hauv kev cia siab: nws pom nyob rau hauv uas cov kev taw qhia tus yeeb ncuab yog khiav thiab paub lub approximate ceev ntawm lub missile. Hauv zos nws pom tias nws ntaus lub hom phiaj ntawm 33rd zuam. Ua tsaug rau cov nyiaj them poob haujlwm, nws tseem yuav tshwm sim ntawm lub server

2. Peb ua txhua yam zoo ib yam li thawj qhov kev xaiv, tab sis, tau suav ib zuam ntawm cov mos txwv simulation, peb tsis nres, tab sis txuas ntxiv simulate nws lub davhlau nyob rau hauv tib lub server zuam, txhua zaus nqa nws lub sijhawm los ze zog rau lub server. ib los ntawm ib tug zuam thiab hloov kho txoj haujlwm collider. Peb ua qhov no kom txog rau thaum ib qho ntawm ob yam tshwm sim:

  • Cov mos txwv tau tas sij hawm. Qhov no txhais tau hais tias cov kev suav dhau lawm, peb tuaj yeem suav tus nco lossis ntaus. Thiab qhov no yog nyob rau tib zuam uas raug rho tawm haujlwm! Rau peb qhov no yog ob qho ntxiv thiab rho tawm. Ib qho ntxiv - vim hais tias rau cov neeg ua si tua qhov no txo ​​qis qhov ncua sij hawm ntawm kev ntaus thiab txo tus yeeb ncuab txoj kev noj qab haus huv. Lub downside yog tias tib cov txiaj ntsig tau pom thaum cov neeg tawm tsam raug rho tawm haujlwm ntawm tus neeg ua si: tus yeeb ncuab, nws yuav zoo li, tsuas yog tua lub foob pob hluav taws qeeb, thiab kev puas tsuaj twb suav.
  • Cov mos txwv tau mus txog lub sijhawm server. Nyob rau hauv cov ntaub ntawv no, nws simulation yuav mus ntxiv nyob rau hauv lub tom ntej neeg rau zaub mov zuam yam tsis muaj lag luam. Rau qhov projectiles qeeb, qhov no tuaj yeem txo qis tus naj npawb ntawm physics rollbacks piv rau thawj qhov kev xaiv. Nyob rau tib lub sijhawm, qhov tsis sib xws ntawm qhov simulation tau nce: tus neeg rau zaub mov tsis ua haujlwm, lossis hauv ib tus neeg rau zaub mov zuam nws tau suav lub kaum os simulation zuam rau ntau lub mos txwv.

Yuav ua li cas peb txhim kho cov tshuab ntawm kev suav ballistic rau lub xov tooj txawb nrog lub network latency them nyiaj algorithm
Tib qhov xwm txheej zoo li hauv daim duab dhau los, tab sis suav nrog raws li lub tswv yim thib ob. Lub foob pob hluav taws "ntev" nrog lub sijhawm server ntawm tib lub zuam uas qhov kev txhaj tshuaj tau tshwm sim, thiab kev ntaus tuaj yeem suav tau thaum ntxov raws li tus zuam tom ntej. Nyob rau ntawm 31st zuam, nyob rau hauv cov ntaub ntawv no, lag nyiaj tsis tau siv lawm

Hauv peb qhov kev siv, ob txoj hauv kev no sib txawv ntawm ob peb kab ntawm cov cai, yog li peb tsim ob qho tib si, thiab ntev ntev lawv muaj nyob rau tib lub sijhawm. Nyob ntawm seb cov cuab yeej ntawm riam phom thiab qhov ceev ntawm cov mos txwv, peb xaiv ib qho los yog lwm qhov kev xaiv rau txhua tus dinosaur. Lub ntsiab lus tig ntawm no yog qhov tshwm sim hauv kev ua si ntawm cov neeg kho tshuab zoo li "yog tias koj ntaus tus yeeb ncuab ntau zaus hauv lub sijhawm zoo li no, tau txais txiaj ntsig zoo li ntawd." Txhua tus kws kho tsheb qhov twg lub sijhawm uas tus neeg ua si ntaus tus yeeb ncuab ua lub luag haujlwm tseem ceeb tsis kam ua haujlwm nrog qhov thib ob mus kom ze. Yog li peb tau mus nrog thawj qhov kev xaiv, thiab tam sim no nws siv tau rau txhua yam riam phom thiab tag nrho cov peev xwm ua haujlwm hauv qhov kev ua si.

Cais, nws tsim nyog tsa qhov teeb meem ntawm kev ua tau zoo. Yog tias koj xav tias txhua yam no yuav ua rau qeeb, kuv teb: nws yog. Kev sib koom ua ke qeeb qeeb hauv kev sib tsoo thiab tig rau thiab tawm. Hauv Dino Squad, nyob rau hauv cov ntaub ntawv "qhov phem tshaj", tuaj yeem muaj ntau pua qhov projectiles uas twb muaj lawm ib txhij hauv kev sib ntaus sib tua. Tsiv kev sib tsoo los suav txhua qhov projectile ib leeg yog ib qho khoom kim heev uas tsis muaj nqis. Yog li ntawd, nws yog qhov tsim nyog rau peb kom txo qis tus naj npawb ntawm physics "rollbacks". Txhawm rau ua qhov no, peb tsim ib qho kev sib cais hauv ECS uas peb sau cov neeg ua si lub sijhawm. Peb ntxiv nws rau txhua qhov chaw uas yuav tsum tau them nyiaj lag luam (projectiles, peev xwm, thiab lwm yam). Ua ntej peb pib ua cov haujlwm zoo li no, peb muab lawv ua ke los ntawm lub sijhawm no thiab ua lawv ua ke, thim rov qab lub ntiaj teb lub cev ib zaug rau txhua pawg.

Nyob rau theem no peb muaj kev ua haujlwm feem ntau. Nws code nyob rau hauv ib tug me ntsis simplified daim ntawv:

public sealed class LagCompensationSystemGroup : ExecutableSystem
{
     //Машина Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
     private readonly ITimeMachine _timeMachine;

     //Набор систСм лагкомпСнсации
     private readonly LagCompensationSystem[] _systems;
     
     //Наша рСализация кластСризатора
     private readonly TimeTravelMap _travelMap = new TimeTravelMap();

    public LagCompensationSystemGroup(ITimeMachine timeMachine, 
        LagCompensationSystem[] lagCompensationSystems)
     {
         _timeMachine = timeMachine;
         _systems = lagCompensationSystems;
     }

     public override void Execute(GameState gs)
     {
         //На Π²Ρ…ΠΎΠ΄ кластСризатор ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ состояниС,
         //Π° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄ Π²Ρ‹Π΄Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ Β«ΠΊΠΎΡ€Π·ΠΈΠ½Β». Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΡ€Π·ΠΈΠ½Π΅ Π»Π΅ΠΆΠ°Ρ‚ энтити,
         //ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ для лагкомпСнсации Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΈΠ· истории.
         var buckets = _travelMap.RefillBuckets(gs);

         for (int bucketIndex = 0; bucketIndex < buckets.Count; bucketIndex++)
         {
             ProcessBucket(gs, buckets[bucketIndex]);
         }

         //Π’ ΠΊΠΎΠ½Ρ†Π΅ лагкомпСнсации ΠΌΡ‹ восстанавливаСм физичСский ΠΌΠΈΡ€ 
         //Π² исходноС состояниС
         _timeMachine.TravelToTime(gs.Time);
     }

     private void ProcessBucket(GameState presentState, TimeTravelMap.Bucket bucket)
     {
         //ΠžΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ врСмя ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹
         var pastState = _timeMachine.TravelToTime(bucket.Time);

         foreach (var system in _systems)
         {
               system.PastState = pastState;
               system.PresentState = presentState;

               foreach (var entity in bucket)
               {
                   system.Execute(entity);
               }
          }
     }
}

Txhua yam uas tseem tshuav yog los teeb tsa cov ntsiab lus:

1. Nkag siab ntau npaum li cas los txwv qhov siab tshaj plaws ntawm kev txav mus los hauv lub sijhawm.

Nws yog ib qho tseem ceeb rau peb ua kom qhov kev ua si nkag mus tau raws li qhov ua tau nyob rau hauv cov xwm txheej tsis zoo ntawm cov xov tooj ntawm tes, yog li peb txwv cov dab neeg nrog cov npoo ntawm 30 zuam (nrog tus zuam tus nqi ntawm 20 Hz). Qhov no tso cai rau cov neeg ua si ntaus cov neeg sib tw txawm tias muaj pings siab heev.

2. Txiav txim seb cov khoom twg tuaj yeem txav tau raws sijhawm thiab qhov twg tsis tuaj yeem.

Peb, ntawm chav kawm, tab tom txav peb cov neeg tawm tsam. Tab sis lub zog tiv thaiv kev tiv thaiv, piv txwv li, tsis yog. Peb tau txiav txim siab tias nws yog qhov zoo dua los muab qhov tseem ceeb rau lub peev xwm tiv thaiv, raws li feem ntau ua hauv online tua neeg. Yog hais tias tus neeg uas ua ntawv twb tau tso ib daim ntaub thaiv nyob rau hauv tam sim no, lag-compensated mos txwv los ntawm yav dhau los yuav tsum tsis txhob ya los ntawm nws.

3. Txiav txim siab seb puas yuav tsum tau them nyiaj rau lub peev xwm ntawm dinosaurs: tom, tail strike, thiab lwm yam. Peb txiav txim siab seb yuav tsum tau ua dab tsi thiab ua raws li cov cai tib yam li cov mos txwv.

4. Txiav txim seb yuav ua li cas nrog cov neeg sib tsoo ntawm cov neeg ua si rau tus neeg ua haujlwm lag luam. Nyob rau hauv txoj kev zoo, lawv txoj hauj lwm yuav tsum tsis txhob hloov mus rau yav dhau los: tus neeg ua si yuav tsum pom nws tus kheej nyob rau tib lub sijhawm uas nws tam sim no nyob rau hauv lub server. Txawm li cas los xij, peb kuj thim rov qab cov kev sib tsoo ntawm cov neeg tua phom, thiab muaj ntau qhov laj thawj rau qhov no.

Ua ntej, nws txhim kho kev sib koom ua ke: peb tuaj yeem siv tib lub cev lub cev rau txhua tus players nrog pings ze.

Qhov thib ob, nyob rau hauv tag nrho cov raycasts thiab overlaps peb ib txwm tsis suav cov colliders ntawm tus neeg uas ua ntawv uas muaj peev xwm los yog projectiles. Hauv Dino Squad, cov neeg ua si tswj cov dinosaurs, uas muaj qhov tsis zoo-tus qauv geometry los ntawm cov qauv tua. Txawm hais tias tus neeg ua si tua ntawm lub kaum sab xis tsis zoo thiab cov mos txwv txoj kev hla dhau los ntawm tus neeg ua si lub dinosaur collider, cov mos txwv yuav tsis quav ntsej nws.

Thib peb, peb suav cov haujlwm ntawm dinosaur riam phom lossis cov ntsiab lus ntawm kev siv lub peev xwm siv cov ntaub ntawv los ntawm ECS txawm tias ua ntej pib lag luam nyiaj.

Raws li qhov tshwm sim, txoj haujlwm tiag tiag ntawm kev sib tsoo ntawm cov neeg ua lag luam lag luam tsis tseem ceeb rau peb, yog li peb tau ua kom muaj txiaj ntsig zoo dua thiab tib lub sijhawm yooj yim dua.

Network latency tsis tuaj yeem tsuas yog raug tshem tawm, nws tsuas yog tuaj yeem npog. Ib yam li lwm txoj hauv kev ntawm kev zais, server lag them nyiaj muaj nws cov kev sib pauv. Nws txhim kho qhov kev paub txog kev ua si ntawm tus neeg ua si uas raug tua ntawm tus nqi ntawm tus neeg ua si raug tua. Rau Dino Squad, txawm li cas los xij, qhov kev xaiv ntawm no yog qhov pom tseeb.

Tau kawg, tag nrho cov no kuj yuav tsum tau them nyiaj los ntawm qhov nyuaj ntawm cov server code tag nrho - ob qho tib si rau programmers thiab game designers. Yog hais tias ua ntej lub simulation yog ib tug yooj yim sequential hu ntawm systems, ces nrog lag them nyiaj, nested loops thiab ceg tshwm nyob rau hauv nws. Peb kuj tau siv zog ntau los ua kom yooj yim rau kev ua haujlwm nrog.

Hauv 2019 version (thiab tej zaum ua ntej me ntsis), Unity ntxiv kev txhawb nqa tag nrho rau kev ywj pheej ntawm lub cev. Peb tau siv lawv ntawm tus neeg rau zaub mov yuav luag tam sim tom qab hloov tshiab, vim tias peb xav kom tshem tawm lub ntiaj teb lub cev sai sai rau txhua chav.

Peb muab txhua chav ua si nws tus kheej lub cev scene thiab yog li tshem tawm qhov yuav tsum tau "tshuaj" qhov xwm txheej los ntawm cov ntaub ntawv ntawm chav nyob sib ze ua ntej xam qhov simulation. Firstly, nws muab ib tug tseem ceeb nce nyob rau hauv productivity. Qhov thib ob, nws tau ua kom tshem tau tag nrho cov kab laum uas tshwm sim yog tias tus programmer ua qhov yuam kev hauv qhov xwm txheej tshem tawm thaum ntxiv cov khoom ua si tshiab. Cov kev ua yuam kev no nyuaj rau kev debug, thiab lawv feem ntau ua rau lub xeev ntawm cov khoom ntawm lub cev hauv ib chav tsev "ntws" mus rau lwm chav.

Tsis tas li ntawd, peb tau ua qee qhov kev tshawb fawb txog seb lub cev lub cev puas tuaj yeem siv los khaws keeb kwm ntawm lub ntiaj teb lub cev. Ntawd yog, raws li txoj cai, faib tsis yog ib qho xwm txheej rau txhua chav, tab sis 30 scenes, thiab ua rau lub voj voog tsis zoo ntawm lawv, uas khaws cov dab neeg. Feem ntau, qhov kev xaiv tau hloov mus ua haujlwm, tab sis peb tsis tau siv nws: nws tsis tau qhia qhov kev nce siab hauv kev tsim khoom, tab sis yuav tsum muaj kev pheej hmoo hloov pauv. Nws yog ib qho nyuaj rau twv seb tus neeg rau zaub mov yuav coj li cas thaum ua haujlwm ntev nrog ntau qhov xwm txheej. Yog li ntawd, peb ua raws li txoj cai: "Yog hais tias nws tsis tawg, tsis txhob kho nws".

Tau qhov twg los: www.hab.com

Ntxiv ib saib