Otu anyị siri kwalite usoro ịgbakọ ballistic maka onye na-agba ụta nke nwere algọridim nkwụghachi ụgwọ netwọkụ

Otu anyị siri kwalite usoro ịgbakọ ballistic maka onye na-agba ụta nke nwere algọridim nkwụghachi ụgwọ netwọkụ

Ndewo, a bụ m Nikita Brizhak, onye nrụpụta ihe nkesa sitere na Pixonic. Taa ọ ga-amasị m ikwu maka ịkwụ ụgwọ lag in mobile multiplayer.

Edela ọtụtụ akụkọ gbasara akwụghị ụgwọ ihe nkesa, gụnyere na Russian. Nke a abụghị ihe ijuanya, ebe ọ bụ na a na-eji nkà na ụzụ a arụsi ọrụ ike na ịmepụta FPS multiplayer kemgbe njedebe 90s. Dịka ọmụmaatụ, ị nwere ike icheta QuakeWorld mod, nke bụ otu n'ime ndị mbụ ji ya.

Anyị na-ejikwa ya na Dino Squad ọtụtụ ndị na-agba ụta ekwentị.

N'isiokwu a, ihe mgbaru ọsọ m abụghị ikwugharị ihe ederelarị otu puku ugboro, kama ịgwa otu anyị si emejuputa ụgwọ ọrụ lag na egwuregwu anyị, na-eburu n'uche nchịkọta teknụzụ anyị na njirimara egwuregwu egwuregwu.

Okwu ole na ole gbasara cortex na teknụzụ anyị.

Dino Squad bụ onye na-agba ụta PvP ekwentị mkpanaaka. Ndị na-egwu egwuregwu na-ejikwa dinosaurs nwere ngwa ọgụ dị iche iche ma na-alụ ọgụ na otu 6v6.

Ma onye ahịa na ihe nkesa na-adabere na Ịdị n'Otu. Ihe owuwu ahụ bụ ihe kpochapụrụ maka ndị na-agba ụta: ihe nkesa bụ ikike, amụma ndị ahịa na-arụkwa ọrụ na ndị ahịa. Edere simulation egwuregwu ahụ site na iji ụlọ ECS ma ejiri ya na sava ma onye ahịa.

Ọ bụrụ na nke a bụ oge mbụ ị nụrụ gbasara akwụ ụgwọ akwụghị ụgwọ, ebe a bụ njem nlegharị anya dị nkenke n'okwu a.

N'ime egwuregwu FPS ọtụtụ, a na-eṅomi egwuregwu ahụ na sava dịpụrụ adịpụ. Ndị na-egwu egwuregwu na-eziga ntinye ha (ozi gbasara igodo ndị a na-agbanye) na ihe nkesa, na nzaghachi, ihe nkesa na-ezigara ha ọnọdụ egwuregwu emelitere na-eburu n'uche data natara. Site na atụmatụ mmekọrịta a, igbu oge n'etiti ịpị igodo mbugharị na oge agwa ọkpụkpọ na-aga na ihuenyo ga-adị ukwuu karịa ping.

Mgbe na netwọk mpaghara, igbu oge a (nke a na-akpọ lag input) nwere ike ịbụ ihe a na-adịghị ahụ anya, mgbe ị na-egwu egwu site na Ịntanetị ọ na-emepụta mmetụta nke "ịbanye na ice" mgbe ị na-achịkwa àgwà. Nsogbu a bara uru okpukpu abụọ maka netwọkụ mkpanaka, ebe ikpe mgbe ping onye ọkpụkpọ bụ 200 ms ka na-ewere dị ka njikọ mara mma. Ọtụtụ mgbe, ping nwere ike ịbụ 350, 500, ma ọ bụ 1000 ms. Mgbe ahụ, ọ fọrọ nke nta ka ọ bụrụ ihe na-agaghị ekwe omume ịkpọ onye na-agba ọsọ ọsọ na ntinye ntinye.

Ihe ngwọta maka nsogbu a bụ amụma ịme anwansị n'akụkụ ndị ahịa. N'ebe a onye ahịa n'onwe ya na-etinye ntinye aka na agwa onye ọkpụkpọ, na-echeghị nzaghachi sitere na ihe nkesa. Na mgbe enwetara azịza ya, ọ na-atụnyere nsonaazụ ma na-emelite ọnọdụ ndị mmegide. Oge igbu oge n'etiti ịpị igodo na igosipụta nsonaazụ na ihuenyo na nke a pere mpe.

Ọ dị mkpa ịghọta nuance ebe a: onye ahịa na-adọta onwe ya mgbe niile dị ka ntinye ikpeazụ ya, na ndị iro - na-egbu oge netwọk, dị ka ọnọdụ gara aga si na data sitere na ihe nkesa. Nke ahụ bụ, mgbe ọ na-agbapụ onye iro, onye ọkpụkpọ ahụ na-ahụ ya n'oge gara aga gbasara onwe ya. Ndị ọzọ gbasara amụma ndị ahịa anyị dere na mbụ.

Ya mere, amụma ndị ahịa na-edozi otu nsogbu, ma na-emepụta ọzọ: ọ bụrụ na onye ọkpụkpọ na-agbapụ n'ebe onye iro nọ n'oge gara aga, na ihe nkesa mgbe ọ na-agbapụ n'otu ebe ahụ, onye iro ahụ nwere ike ọ gaghị adịkwa n'ebe ahụ. Nkwụghachi ụgwọ nke sava na-anwa idozi nsogbu a. Mgbe a na-agbapụ ngwá agha, ihe nkesa ahụ na-eweghachi ọnọdụ egwuregwu ahụ nke onye ọkpụkpọ ahụ hụrụ na mpaghara n'oge a gbara égbè, na-achọpụta ma ọ nwere ike ịkụ onye iro ahụ n'ezie. Ọ bụrụ na azịza ya bụ "ee," a na-agụta ihe ọkụkụ ahụ, ọ bụrụgodị na onye iro anọghị na ihe nkesa n'oge ahụ.

N'ịbụ onye nwere ihe ọmụma a, anyị malitere itinye nkwụghachi ụgwọ nkesa na Dino Squad. Nke mbụ, anyị kwesịrị ịghọta otu esi eweghachi na ihe nkesa ihe onye ahịa ahụ hụrụ? Gịnị kpọmkwem ka e kwesịrị iweghachi? N'egwuregwu anyị, a na-agbakọ ihe ọkụkụ sitere na ngwa agha na ikike site na raycasts na overlays - ya bụ, site na mmekọrịta ya na ndị iro anụ ahụ. N'ihi ya, ọ dị anyị mkpa imepụtaghachi ọnọdụ nke ndị na-agbakọ, nke onye ọkpụkpọ ahụ "hụrụ" na mpaghara, na ihe nkesa. N'oge ahụ anyị na-eji ụdị Unity 2018.x. The physics API ebe ahụ static, ụwa nkịtị dị na otu oyiri. Enweghị ụzọ ị ga-esi chekwaa steeti ya wee weghachi ya na igbe ahụ. Yabụ kedu ihe ị ga-eme?

Ngwọta ahụ dị n'elu;

  1. Maka onye ahịa ọ bụla, anyị kwesịrị ịma oge ọ hụrụ ndị mmegide mgbe ọ pịa igodo. Anyị edeela ozi a n'ime ngwungwu ntinye wee jiri ya dozie amụma ndị ahịa.
  2. Anyị kwesịrị inwe ike ịchekwa akụkọ ihe mere eme nke steeti egwuregwu. Ọ bụ n'ime ya ka anyị ga-ejide ọnọdụ nke ndị mmegide anyị (ya mere ndị na-agbakọta ha). Anyị enweelarị akụkọ ihe mere eme steeti na sava ahụ, anyị jiri ya wuo ya delta. N'ịmara oge kwesịrị ekwesị, anyị nwere ike ịchọta ọnọdụ ziri ezi na akụkọ ihe mere eme ngwa ngwa.
  3. Ugbu a anyị nwere ọnọdụ egwuregwu site na akụkọ ihe mere eme n'aka, anyị kwesịrị inwe ike ịmekọrịta data ọkpụkpọ na ọnọdụ nke ụwa nkịtị. Ndị na-agbakọta ihe dị adị - ịkwaga, ndị na-efu efu - mepụta, ndị na-adịghị mkpa - mebie. Edekwarala mgbagha a ma nwee ọtụtụ sistemụ ECS. Anyị ji ya jide ọtụtụ ọnụ ụlọ egwuregwu n'otu usoro ịdị n'otu. Ma ebe ọ bụ na ụwa nkịtị bụ otu n'ime usoro ọ bụla, a ghaghị iji ya mee ihe n'etiti ọnụ ụlọ. Tupu akara ọ bụla nke ịme anwansị ahụ, anyị "tọgharịa" ọnọdụ nke ụwa anụ ahụ wee maliteghachi ya na data maka ime ụlọ dị ugbu a, na-anwa iji ihe egwuregwu Unity dị ka o kwere mee site na usoro ikpokọta ọgụgụ isi. Naanị ihe fọdụrụ bụ ịkpọku otu mgbagha maka steeti egwuregwu site n'oge gara aga.

Site n'ịkọba ihe ndị a niile, anyị nwetara "igwe oge" nke nwere ike weghachite ọnọdụ nke ụwa anụ ahụ n'oge kwesịrị ekwesị. Koodu ahụ wee dị mfe:

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;
     }
}

Naanị ihe fọdụrụ bụ ịchọpụta ka esi eji igwe a na-akwụ ụgwọ ngwa ngwa maka agba na ikike.

N'okwu kachasị mfe, mgbe ndị na-arụ ọrụ na-adabere na otu hitscan, ihe niile yiri ka ọ doro anya: tupu onye ọkpụkpọ ahụ agbapụ, ọ kwesịrị ịtụgharịghachi ụwa anụ ahụ na ọnọdụ a chọrọ, mee raycast, gụọ ihe ọkụkụ ma ọ bụ efu, na laghachi ụwa na ọnọdụ mbụ.

Mana enwere ụdị ọrụ a dị ole na ole na Dino Squad! Ọtụtụ n'ime ngwa ọgụ dị na egwuregwu ahụ na-emepụta projectiles - mgbọ ndị na-adị ogologo oge na-efe efe maka ọtụtụ akara ngosi simulation (n'ọnọdụ ụfọdụ, ọtụtụ akọrọ). Kedu ihe a ga-eme ha, oge ole ka ha ga-efe?

В edemede ochie banyere Half-Life network stack, ụmụ okorobịa si Valve jụrụ otu ajụjụ, na azịza ha bụ nke a: projectile lag compensation bụ nsogbu, na ọ ka mma izere ya.

Anyị enweghị nhọrọ a: ngwa agha dabere na projectile bụ akụkụ bụ isi nke imewe egwuregwu ahụ. Yabụ na anyị ga-ewepụta ihe. Mgbe anyị nwechara echiche ụfọdụ, anyị chepụtara nhọrọ abụọ yiri ka ọ ga-arụ ọrụ:

1. Anyị na-ejikọta projectile na oge onye ọkpụkpọ kere ya. Akara ọ bụla nke ịme anwansị nkesa, maka mgbọ ọ bụla nke onye ọkpụkpọ ọ bụla, anyị na-atụgharịghachi ụwa anụ ahụ na steeti ndị ahịa wee rụọ mgbakọ dị mkpa. Ụzọ a mere ka o kwe omume ịnweta ibu kesara na ihe nkesa na oge ụgbọ elu nke projectiles. Amụma dị anyị mkpa karịsịa, ebe ọ bụ na anyị nwere projectiles niile, gụnyere ndị iro projectiles, buru amụma na onye ahịa.

Otu anyị siri kwalite usoro ịgbakọ ballistic maka onye na-agba ụta nke nwere algọridim nkwụghachi ụgwọ netwọkụ
Na foto a, onye ọkpụkpọ na akara 30 na-agba ngwa agha na-atụ anya: ọ na-ahụ ebe onye iro na-agba ọsọ ma mara ngwa ngwa ngwa ngwa ahụ. Na mpaghara ọ na-ahụ na ọ kụrụ ihe mgbaru ọsọ na akara 33. Ekele nkwụghachi ụgwọ, ọ ga-apụtakwa na ihe nkesa

2. Anyị na-eme ihe niile otu ihe ahụ dị na nhọrọ mbụ, ma, ebe anyị gụchara otu akara nke simulation bullet, anyị anaghị akwụsị, ma na-aga n'ihu na-eme ka ụgbọ elu ya dị n'ime otu akara nkesa, oge ọ bụla na-ebute oge ya nso na ihe nkesa. otu otu akọrọ na-emelite ọnọdụ mgbako. Anyị na-eme nke a ruo mgbe otu n'ime ihe abụọ mere:

  • Mgbọ ahụ agwụla. Nke a pụtara na mgbako ahụ agwụla, anyị nwere ike ịgụta efu ma ọ bụ ihe ọkụkụ. Na nke a bụ n'otu akara nke gbara égbè ahụ! Maka anyị nke a bụ ma mgbakwunye na mwepu. Na mgbakwunye - n'ihi na onye na-agbapụ agbapụ nke a belatara igbu oge n'etiti ihe ọkụkụ na mbelata ahụike onye iro. Ihe dị ala bụ na a hụrụ otu mmetụta ahụ mgbe ndị mmegide gbara onye ọkpụkpọ ahụ: onye iro ahụ, ọ ga-adị ka ọ bụ naanị rọketi ngwa ngwa, a gụkwara mmebi ahụ.
  • Mgbọ ahụ eruola oge sava. N'okwu a, ịme anwansị ya ga-aga n'ihu na akara nkesa na-esote na-enweghị akwụ ụgwọ ọ bụla. Maka ngwa ngwa projectiles, nke a nwere ike belata n'ụzọ doro anya ọnụ ọgụgụ nlọghachi azụ physics ma e jiri ya tụnyere nhọrọ nke mbụ. N'otu oge ahụ, ibu na-enweghị isi na simulation ahụ mụbara: ihe nkesa ahụ enweghị ọrụ, ma ọ bụ n'otu akara nkesa ọ na-agbakọ akara ngosi iri na abụọ maka ọtụtụ mgbọ.

Otu anyị siri kwalite usoro ịgbakọ ballistic maka onye na-agba ụta nke nwere algọridim nkwụghachi ụgwọ netwọkụ
Otu ihe ahụ dị na foto gara aga, ma gbakọọ dịka atụmatụ nke abụọ si dị. Ngwa agha ahụ "na-ebuli" na oge nkesa n'otu akara ahụ nke ogbugba ahụ mere, enwere ike ịgụta ihe ọkụkụ ahụ n'oge dị ka akara ọzọ. N'akara 31st, na nke a, akwụghị ụgwọ akwụghị ụgwọ ọzọ

Na mmejuputa anyị, ụzọ abụọ a dị iche na naanị ọnụọgụ abụọ nke koodu, yabụ anyị mepụtara ma, ma ogologo oge ha dị n'otu. Dabere na usoro nke ngwa agha na ọsọ nke mgbọ, anyị họọrọ otu ma ọ bụ ọzọ nhọrọ maka onye ọ bụla dinosaur. Ntụgharị ebe a bụ ọdịdị na egwuregwu nke ndị na-arụ ọrụ dị ka "ọ bụrụ na ị kụrụ onye iro ọtụtụ ugboro n'oge dị otú a, nweta ụdị ego a." Mechaniki ọ bụla ebe oge onye ọkpụkpọ ahụ kụrụ onye iro na-arụ ọrụ dị mkpa jụrụ ịrụ ọrụ na ụzọ nke abụọ. Ya mere, anyị kwụsịrị ịga na nhọrọ mbụ, ma ọ na-emetụta ngwa agha niile na ikike niile dị na egwuregwu ahụ.

Iche iche, ọ bara uru iwelite okwu nke arụmọrụ. Ọ bụrụ na ị chere na ihe a niile ga-ebelata ihe, a na m aza: ọ bụ. Ịdị n'otu na-adị ngwa ngwa n'ịkwagharị ihe mgbagwoju anya na ịgbanwuo ma gbanyụọ. Na Dino Squad, n'ọnọdụ "kachasị njọ", enwere ike inwe ọtụtụ narị projectiles dị n'otu oge na ọgụ. Ịkwaga ndị na-agbakọ ọnụ iji gụta ihe atụ nke ọ bụla n'otu n'otu bụ okomoko na-agaghị akwụ ụgwọ. Ya mere, ọ dị ezigbo mkpa ka anyị belata ọnụ ọgụgụ nke physics "rollbacks". Iji mee nke a, anyị mepụtara akụrụngwa dị iche na ECS nke anyị na-edekọ oge onye ọkpụkpọ. Anyị gbakwunyere ya na ụlọ ọrụ niile chọrọ nkwụghachi azụ (ọrụ, ikike, wdg). Tupu anyị amalite nhazi ụdị ihe ahụ, anyị na-achịkọta ha n'oge a ma hazie ha ọnụ, na-atụgharị azụ ụwa nkịtị otu ugboro maka ụyọkọ ọ bụla.

N'oge a, anyị nwere usoro ọrụ n'ozuzu. Koodu ya n'ụdị dị mfe:

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);
               }
          }
     }
}

Naanị ihe fọdụrụ bụ ịhazi nkọwapụta:

1. Ghọta ole ị ga-amachi oke oke nke mmegharị na oge.

Ọ dị anyị mkpa ime egwuregwu ahụ ka enwere ike ịnweta ya na ọnọdụ netwọkụ mkpanaka na-adịghị mma, yabụ anyị ji obere akara 30 mechie akụkọ ahụ (ya na ọnụego akara nke 20 Hz). Nke a na-enye ndị egwuregwu ohere ịkụ ndị mmegide ọbụna na pings dị elu.

2. Kpebie ihe enwere ike ibugharị n'oge na nke enweghị ike.

Anyị, n'ezie, na-akpali ndị mmegide anyị. Ma ọta ike installable, dịka ọmụmaatụ, abụghị. Anyị kpebiri na ọ ka mma ịnye ikike nchebe ụzọ, dị ka a na-emekarị na ndị na-agba ụta n'ịntanetị. Ọ bụrụ na onye ọkpụkpọ ahụ etinyelarị ọta na ugbu a, mgbọ ndị akwụghachi ụgwọ n'oge gara aga ekwesịghị ịfefe na ya.

3. Kpebie ma ọ dị mkpa iji kwụọ ụgwọ maka ikike nke dinosaurs: aru, ọdụ ọdụ, wdg. Anyị kpebiri ihe dị mkpa ma hazie ha dịka otu iwu dị ka mgbọ.

4. Kpebie ihe a ga-eme ndị na-akụ ọkpọ nke onye ọkpụkpọ a na-akwụ ụgwọ lag. N'ụzọ dị mma, ọnọdụ ha ekwesịghị ịgbanwe n'oge gara aga: onye ọkpụkpọ ahụ kwesịrị ịhụ onwe ya n'otu oge ahụ ọ nọ ugbu a na ihe nkesa. Otú ọ dị, anyị na-atụgharịkwa azụ ihe mgbagha nke onye na-agbapụ agbapụ, na e nwere ọtụtụ ihe kpatara nke a.

Nke mbụ, ọ na-eme ka nchịkọta dị mma: anyị nwere ike iji otu ọnọdụ anụ ahụ maka ndị egwuregwu niile nwere pings dị nso.

Nke abuo, na ihe niile raycasts na overlaps anyị na-mgbe niile ewepu colliders nke onye ọkpụkpọ nwere ikike ma ọ bụ projectiles. Na Dino Squad, ndị egwuregwu na-achịkwa dinosaur, nke nwere ọdịdị geometry na-abụghị ọkọlọtọ site n'ụkpụrụ ndị na-agba ụta. Ọbụlagodi na onye ọkpụkpọ na-agba n'akụkụ pụrụ iche na ọnọdụ mgbọ na-agafe na dinosaur nke onye ọkpụkpọ ahụ, mgbọ ahụ ga-eleghara ya anya.

Nke atọ, anyị na-agbakọ ọnọdụ nke ngwa agha dinosaur ma ọ bụ ebe ntinye nke ikike site na iji data sitere na ECS ọbụna tupu mmalite nke nkwụghachi ụgwọ.

N'ihi ya, ezigbo ọnọdụ nke colliders nke lag-nkwụghachi ụgwọ adịghị mkpa maka anyị, n'ihi ya, anyị were a ọzọ na-arụpụta ihe na n'otu oge ahụ mfe ụzọ.

Enweghị ike iwepụ nkwụsị netwọkụ naanị, enwere ike kpuchie ya naanị. Dị ka usoro ngbanwe ọ bụla ọzọ, nkwụghachi ụgwọ ihe nkesa nwere uru ya. Ọ na-eme ka ahụmịhe egwuregwu nke onye ọkpụkpọ na-agbapụ na-akwụ ụgwọ nke onye ọkpụkpọ na-agbapụ. Maka Dino Squad, agbanyeghị, nhọrọ ebe a doro anya.

N'ezie, a ga-akwụrịrị ihe ndị a niile site na mgbagwoju anya nke koodu ihe nkesa n'ozuzu ya - ma ndị mmemme na ndị na-emepụta egwuregwu. Ọ bụrụ na mbụ ịme anwansị ahụ bụ oku usoro usoro dị mfe, mgbe ahụ na nkwụghachi ụgwọ, loops na alaka pụtara n'ime ya. Anyị gbakwara mbọ dị ukwuu iji mee ka ọ dị mfe iji rụọ ọrụ.

Na ụdị 2019 (ma eleghị anya ntakịrị tupu mgbe ahụ), Unity gbakwunyere nkwado zuru oke maka ihe nkiri anụ ahụ nwere onwe. Anyị mejuputa ha na ihe nkesa ihe fọrọ nke nta ka ọ bụrụ ozugbo mmelite ahụ gasịrị, n'ihi na anyị chọrọ ngwa ngwa kpochapụ ụwa anụ ahụ nke na-ejikọta ọnụ ụlọ niile.

Anyị nyere ụlọ egwuregwu ọ bụla ihe ngosi anụ ahụ nke ya ma si otú ahụ wepụ mkpa ọ dị iji "kpochapụ" ọnọdụ ahụ site na data nke ụlọ agbata obi tupu ịgbakọ simulation ahụ. Nke mbụ, o nyere mmụba dị ukwuu na nrụpụta. Nke abuo, o mere ka o kwe omume ikpochapu otu klas dum nke chinchi nke bilitere ma ọ bụrụ na onye mmemme ahụ mehiere na koodu mkpocha ọnọdụ mgbe ị na-agbakwunye ihe egwuregwu ọhụrụ. Njehie ndị dị otú ahụ siri ike ihichapụ, ha na-ebutekarị ọnọdụ nke ihe anụ ahụ dị n'otu ọnụ ụlọ "na-eruba" n'ime ụlọ ọzọ.

Tụkwasị na nke ahụ, anyị mere nchọpụta ụfọdụ iji chọpụta ma a pụrụ iji ihe nkiri ahụ chekwaa akụkọ ihe mere eme nke ụwa nkịtị. Nke ahụ bụ, n'ọnọdụ ọ bụla, kenye ọ bụghị otu ihe nkiri n'ime ụlọ ọ bụla, kama ihe nkiri 30, ma mee ihe nchekwa cyclic n'ime ha, ebe a ga-echekwa akụkọ ahụ. N'ozuzu, nhọrọ ahụ tụgharịrị na-arụ ọrụ, ma anyị emeghị ya: ọ dịghị egosi mmụba ọ bụla na-abaghị uru na mmepụta, kama ọ chọrọ mgbanwe dị ize ndụ. O siri ike ịkọ otú ihe nkesa ga-esi akpa àgwà mgbe ọ na-arụ ọrụ ogologo oge na ọtụtụ ihe nkiri. Ya mere, anyị gbasoro iwu a: “Ọ bụrụ na agbanweghị ya, dozie ya".

isi: www.habr.com

Tinye a comment