Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Nakit-an nako ang pipila ka makapaikag nga materyal bahin sa artificial intelligence sa mga dula. Uban sa usa ka pagpatin-aw sa mga sukaranan nga mga butang bahin sa AI gamit ang yano nga mga pananglitan, ug sa sulod adunay daghang mapuslanon nga mga himan ug pamaagi alang sa dali nga pag-uswag ug disenyo niini. Giunsa, asa ug kanus-a gamiton kini anaa usab.

Kadaghanan sa mga pananglitan gisulat sa pseudocode, busa wala’y kinahanglan nga kahibalo sa advanced programming. Ubos sa cut adunay 35 ka panid sa teksto nga adunay mga litrato ug gif, busa pag-andam.

UPD. Nangayo kog pasaylo, pero nakahimo na ko sa akong kaugalingong hubad niining artikuloha bahin sa Habré PatientZero. Mabasa nimo iyang version dinhi, apan tungod sa pipila ka rason ang artikulo miagi kanako (gigamit nako ang pagpangita, apan adunay nahitabo nga sayup). Ug tungod kay nagsulat ako sa usa ka blog nga gipahinungod sa pag-uswag sa dula, nakahukom ko nga biyaan ang akong bersyon sa paghubad alang sa mga subscriber (ang pipila ka mga punto lahi ang pagkaporma, ang uban gituyo nga wala iapil sa tambag sa mga developers).

Unsa ang AI?

Ang Game AI nagpunting sa kung unsang mga aksyon ang kinahanglan buhaton sa usa ka butang base sa mga kondisyon diin kini nahimutang. Kini kasagarang gitawag nga "intelihenteng ahente" nga pagdumala, diin ang ahente usa ka karakter sa magdudula, usa ka sakyanan, usa ka bot, o usahay usa ka butang nga mas abstract: usa ka tibuok grupo sa mga entidad o bisan usa ka sibilisasyon. Sa matag kaso, kini usa ka butang nga kinahanglan makakita sa iyang palibot, maghimo mga desisyon base niini, ug molihok uyon niini. Gitawag kini nga siklo sa Sense/Think/Act:

  • Sense: Ang ahente nangita o nakadawat og impormasyon mahitungod sa mga butang sa iyang palibot nga mahimong makaimpluwensya sa iyang kinaiya (mga hulga sa duol, mga butang nga kolektahon, makapaikag nga mga lugar nga tukion).
  • Hunahunaa: Ang ahente modesisyon kon unsaon sa pag-reaksyon (naghunahuna kon kini ba luwas ba sa pagkolekta og mga butang o kon siya kinahanglan nga makig-away / magtago una).
  • Buhat: ang ahente naghimo og mga aksyon aron ipatuman ang miaging desisyon (nagsugod sa paglihok padulong sa kaaway o butang).
  • ...karon ang sitwasyon nausab tungod sa mga aksyon sa mga karakter, mao nga ang siklo gisubli sa bag-ong datos.

Ang AI lagmit nga mag-focus sa Sense nga bahin sa loop. Pananglitan, ang mga awtonomous nga awto nagkuha mga litrato sa dalan, gihiusa kini sa radar ug lidar data, ug gihubad kini. Kini kasagarang gihimo pinaagi sa pagkat-on sa makina, nga nagproseso sa umaabot nga datos ug naghatag niini og kahulogan, nga nagkuha sa semantikong impormasyon sama sa "adunay laing sakyanan nga 20 ka yarda sa unahan nimo." Mao kini ang gitawag nga mga problema sa klasipikasyon.

Ang mga dula wala magkinahanglan ug komplikadong sistema sa pagkuha sa impormasyon tungod kay kadaghanan sa mga datos kay usa na ka bahin niini. Dili kinahanglan nga magpadagan sa mga algorithm sa pag-ila sa imahe aron mahibal-an kung adunay usa ka kaaway sa unahan-ang dula nahibal-an na ug direkta nga gipakaon ang kasayuran sa proseso sa paghimog desisyon. Busa, ang Sense nga bahin sa siklo sa kasagaran mas simple kay sa Think and Act nga bahin.

Mga Limitasyon sa Game AI

Ang AI adunay daghang mga limitasyon nga kinahanglan sundon:

  • Ang AI dili kinahanglan nga mabansay daan, ingon nga kini usa ka algorithm sa pagkat-on sa makina. Dili makatarunganon ang pagsulat sa usa ka neural network sa panahon sa pag-uswag aron ma-monitor ang libu-libong mga magdudula ug mahibal-an ang labing kaayo nga paagi sa pagdula batok kanila. Ngano man? Tungod kay ang dula wala pa gipagawas ug wala’y mga magdudula.
  • Ang dula kinahanglan nga makalingaw ug mahagiton, mao nga ang mga ahente kinahanglan dili mangita sa labing maayo nga pamaagi batok sa mga tawo.
  • Ang mga ahente kinahanglan nga tan-awon nga realistiko aron ang mga magdudula mobati nga sila nagdula batok sa tinuod nga mga tawo. Ang programa sa AlphaGo milabaw sa mga tawo, apan ang mga lakang nga gipili layo kaayo sa tradisyonal nga pagsabot sa dula. Kung ang dula nagsundog sa usa ka tawo nga kaatbang, kini nga pagbati kinahanglan dili maglungtad. Kinahanglang usbon ang algorithm aron makahimo kinig katuohan nga mga desisyon kaysa mga sulundon.
  • Ang AI kinahanglan nga molihok sa tinuud nga oras. Kini nagpasabot nga ang algorithm dili momonopoliya sa paggamit sa CPU sa taas nga panahon sa paghimo og mga desisyon. Bisan ang 10 milliseconds taas kaayo, tungod kay kadaghanan sa mga dula nagkinahanglan lang ug 16 ngadto sa 33 milliseconds aron mahimo ang tanang pagproseso ug mopadayon sa sunod nga graphics frame.
  • Sa tinuud, labing menos bahin sa sistema kinahanglan nga gimaneho sa datos, aron ang dili mga coder makahimo og mga pagbag-o ug ang mga pag-adjust mahimong mas paspas.

Atong tan-awon ang mga pamaagi sa AI nga naglangkob sa tibuok Sense/Think/Act cycle.

Paghimog Pangunang mga Desisyon

Magsugod ta sa pinakasimple nga dula - Pong. Tumong: ibalhin ang paddle aron ang bola mo-bounce niini kay sa molupad lapas niini. Sama sa tennis, diin pildi ka kung dili nimo maigo ang bola. Dinhi ang AI adunay usa ka sayon ​​​​nga buluhaton - ang pagdesisyon kung asa nga direksyon ibalhin ang plataporma.

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Mga pahayag sa kondisyon

Alang sa AI sa Pong, ang labing klaro nga solusyon mao ang kanunay nga pagsulay nga ibutang ang plataporma sa ilawom sa bola.

Usa ka yano nga algorithm alang niini, gisulat sa pseudocode:

matag frame/update samtang nagdagan ang dula:
kon ang bola anaa sa wala sa paddle:
ibalhin ang paddle sa wala
lain kon ang bola naa sa tuo sa paddle:
lihok sa paddle sa tuo

Kung ang plataporma molihok sa katulin sa bola, nan kini ang sulundon nga algorithm alang sa AI sa Pong. Dili kinahanglan nga komplikado ang bisan unsang butang kung wala’y daghang datos ug posible nga mga aksyon alang sa ahente.

Kini nga pamaagi yano ra kaayo nga ang tibuuk nga siklo sa Sense/Think/Act halos dili mamatikdan. Apan anaa kini:

  • Ang Sense nga bahin anaa sa duha ka kon pahayag. Ang dula nahibal-an kung asa ang bola ug kung asa ang plataporma, mao nga ang AI nangita niini alang sa kasayuran.
  • Ang Hunahuna nga bahin gilakip usab sa duha nga kung pahayag. Naglangkob sila sa duha ka mga solusyon, nga sa kini nga kaso managsama nga eksklusibo. Ingon usa ka sangputanan, usa sa tulo nga mga aksyon ang gipili - ibalhin ang plataporma sa wala, ibalhin kini sa tuo, o wala’y buhaton kung naa na kini sa husto nga posisyon.
  • Ang Act nga bahin makita sa Move Paddle Left ug Move Paddle Right nga mga pahayag. Depende sa disenyo sa dula, mahimo nilang ibalhin dayon ang plataporma o sa usa ka piho nga tulin.

Ang ingon nga mga pamaagi gitawag nga reaktibo - adunay usa ka yano nga hugpong sa mga lagda (sa kini nga kaso kung ang mga pahayag sa code) nga reaksyon sa karon nga kahimtang sa kalibutan ug molihok.

Desisyon nga kahoy

Ang pananglitan sa Pong sa tinuud katumbas sa usa ka pormal nga konsepto sa AI nga gitawag nga punoan sa desisyon. Ang algorithm moagi niini aron makaabot sa usa ka "dahon"—usa ka desisyon kon unsa nga aksyon ang buhaton.

Maghimo kita og block diagram sa decision tree alang sa algorithm sa atong plataporma:

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Ang matag bahin sa kahoy gitawag og node - ang AI naggamit sa graph theory aron ihulagway ang maong mga istruktura. Adunay duha ka matang sa mga node:

  • Desisyon nodes: pagpili tali sa duha ka alternatibo base sa pagsulay sa pipila ka kondisyon, diin ang matag alternatibo girepresentahan isip bulag nga node.
  • Katapusan nga mga node: Ang aksyon nga buhaton nga nagrepresentar sa katapusang desisyon.

Ang algorithm nagsugod gikan sa unang node (ang "gamut" sa kahoy). Naghimo kini usa ka desisyon bahin sa kung unsang node sa bata ang moadto, o gipatuman niini ang aksyon nga gitipigan sa node ug paggawas.

Unsa man ang kaayohan sa paghimo sa punoan sa desisyon sa parehas nga trabaho sama sa kung nga mga pahayag sa miaging seksyon? Adunay usa ka kinatibuk-ang sistema dinhi diin ang matag desisyon adunay usa lamang ka kondisyon ug duha ka posible nga resulta. Gitugotan niini ang developer sa paghimo og AI gikan sa datos nga nagrepresentar sa mga desisyon sa usa ka kahoy nga dili kinahanglan nga i-hard-code kini. Atong ipresentar kini sa porma sa usa ka lamesa:

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Sa kilid sa code makakuha ka usa ka sistema alang sa pagbasa sa mga kuwerdas. Paghimo og usa ka node alang sa matag usa kanila, ikonektar ang lohika sa desisyon base sa ikaduhang kolum, ug mga node sa bata base sa ikatulo ug ikaupat nga kolum. Kinahanglan pa nimo nga iprograma ang mga kondisyon ug aksyon, apan karon ang istruktura sa dula mahimong labi ka komplikado. Dinhi imong idugang ang dugang nga mga desisyon ug aksyon, ug dayon i-customize ang tibuok AI pinaagi sa yanong pag-edit sa tree definition text file. Sunod, imong ibalhin ang file ngadto sa tigdesinyo sa dula, kinsa makausab sa kinaiya nga walay pag-compile sa dula o pag-usab sa code.

Ang mga punoan sa desisyon mapuslanon kaayo kung kini awtomatik nga gitukod gikan sa daghang mga pananglitan (pananglitan, gamit ang ID3 algorithm). Kini naghimo kanila nga usa ka epektibo ug high-performance nga himan alang sa pagklasipikar sa mga sitwasyon base sa datos nga nakuha. Bisan pa, molapas kami sa usa ka yano nga sistema alang sa mga ahente sa pagpili sa mga aksyon.

Mga senaryo

Among gi-analisa ang usa ka sistema sa decision tree nga migamit sa mga kondisyon ug aksyon nga nabuhat na daan. Ang tawo nga nagdesinyo sa AI mahimong mag-organisar sa kahoy bisan unsa ang gusto niya, apan kinahanglan pa niya nga magsalig sa coder nga nagprograma sa tanan. Unsa kaha kung mahatagan nato ang tigdesinyo sa mga himan sa paghimo sa ilang kaugalingong mga kondisyon o aksyon?

Aron ang programmer dili kinahanglan nga magsulat og code alang sa mga kondisyon Is Ball Left Of Paddle ug Is Ball Right Of Paddle, makahimo siya og sistema diin ang tigdesinyo mosulat og mga kondisyon aron masusi kini nga mga bili. Unya ang datos sa decision tree mahimong ingon niini:

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Kini sa esensya parehas sa una nga lamesa, apan ang mga solusyon sa ilang kaugalingon adunay kaugalingon nga code, sama sa kondisyon nga bahin sa usa ka kung pahayag. Sa kilid sa code, mabasa kini sa ikaduhang kolum para sa mga node sa desisyon, apan imbis nga mangita alang sa usa ka piho nga kondisyon nga ipatuman (Is Ball Left Of Paddle), kini nag-evaluate sa conditional expression ug mobalik nga tinuod o bakak sumala niana. Gihimo kini gamit ang Lua o Angelscript scripting nga pinulongan. Gamit kini, ang usa ka developer makahimo sa pagkuha sa mga butang sa iyang dula (bola ug paddle) ug maghimo og mga variable nga magamit sa script (ball.position). Usab, ang scripting nga pinulongan mas simple kay sa C++. Wala kini magkinahanglan og usa ka bug-os nga yugto sa pag-compile, mao nga kini sulundon alang sa dali nga pag-adjust sa lohika sa dula ug gitugotan ang mga "non-coder" sa paghimo sa mga kinahanglanon nga gimbuhaton sa ilang kaugalingon.

Sa panig-ingnan sa ibabaw, ang scripting nga pinulongan gigamit lamang sa pagtimbang-timbang sa conditional nga ekspresyon, apan kini mahimo usab nga gamiton alang sa mga aksyon. Pananglitan, ang data nga Move Paddle Right mahimong usa ka script statement (ball.position.x += 10). Aron ang aksyon gihubit usab sa script, nga dili kinahanglan nga programa ang Move Paddle Right.

Mahimo ka nga moadto pa ug isulat ang tibuuk nga punoan sa desisyon sa usa ka sinultian nga script. Mahimo kini nga code sa porma sa mga hardcoded conditional nga pahayag, apan kini mahimutang sa mga eksternal nga script nga mga file, nga mao, mahimo silang mabag-o nga wala’y pag-recompile sa tibuuk nga programa. Kanunay nimo ma-edit ang script file sa panahon sa dula aron dali nga masulayan ang lainlaing mga tubag sa AI.

Tubag sa Hitabo

Ang mga pananglitan sa ibabaw perpekto para sa Pong. Sila padayon nga nagpadagan sa Sense/Think/Act cycle ug naglihok base sa pinakabag-o nga kahimtang sa kalibutan. Apan sa mas komplikado nga mga dula kinahanglan nimo nga mag-reaksyon sa mga indibidwal nga mga panghitabo, ug dili pagtimbang-timbang sa tanan sa usa ka higayon. Si Pong sa kini nga kaso usa na ka dili maayo nga ehemplo. Magpili ta ug lain.

Hunahunaa ang usa ka shooter diin ang mga kaaway walay lihok hangtud nga ilang makit-an ang magdudula, pagkahuman sila molihok depende sa ilang "espesyalisasyon": adunay usa nga modagan sa "pagdali", adunay usa nga moatake gikan sa layo. Kini usa pa ka sukaranan nga reaktibo nga sistema - "kung ang usa ka magdudula makit-an, buhata ang usa ka butang" - apan mahimo kini nga lohikal nga mabungkag sa usa ka panghitabo nga Nakita sa Player ug usa ka Reaksyon (pagpili usa ka tubag ug ipatuman kini).

Kini nagdala kanato balik sa Sense/Think/Act cycle. Mahimo namon nga i-code ang usa ka bahin sa Sense nga magsusi sa matag frame kung nakita ba sa AI ang magdudula. Kung dili, wala’y mahitabo, apan kung kini makita, ang kalihokan sa Player Seen gihimo. Ang code adunay usa ka bulag nga seksyon nga nag-ingon "kung ang Player Seen nga panghitabo mahitabo, buhata" diin ang tubag nga kinahanglan nimo aron matubag ang mga bahin sa Think and Act. Sa ingon, magbutang ka mga reaksyon sa panghitabo sa Player Seen: alang sa "nagdali" nga karakter - ChargeAndAttack, ug alang sa sniper - HideAndSnipe. Kini nga mga relasyon mahimong mabuhat sa data file alang sa dali nga pag-edit nga dili kinahanglan nga mag-compile. Ang lengguwahe sa pagsulat mahimong magamit usab dinhi.

Paghimo og lisud nga mga desisyon

Bisan tuod ang yano nga mga sistema sa reaksyon gamhanan kaayo, adunay daghang mga sitwasyon diin kini dili igo. Usahay kinahanglan nimo nga maghimo lainlaing mga desisyon base sa kung unsa ang gibuhat karon sa ahente, apan lisud hunahunaon nga kini usa ka kondisyon. Usahay adunay daghan kaayo nga mga kondisyon aron epektibo nga magrepresentar kanila sa usa ka punoan sa desisyon o script. Usahay kinahanglan nimo nga susihon daan kung giunsa ang pagbag-o sa sitwasyon sa dili pa magdesisyon sa sunod nga lakang. Ang mas sopistikado nga mga pamaagi gikinahanglan aron masulbad kini nga mga problema.

Katapusan nga makina sa estado

Ang Finite state machine o FSM (finite state machine) usa ka paagi sa pag-ingon nga ang among ahente sa pagkakaron anaa sa usa sa pipila ka posibleng mga estado, ug nga kini mahimong mobalhin gikan sa usa ka estado ngadto sa lain. Adunay usa ka piho nga gidaghanon sa ingon nga mga estado-busa ang ngalan. Ang labing maayong ehemplo sa kinabuhi mao ang suga sa trapiko. Adunay lainlaing mga han-ay sa mga suga sa lainlaing mga lugar, apan parehas ang prinsipyo - ang matag estado nagrepresentar sa usa ka butang (paghunong, paglakaw, ug uban pa). Ang suga sa trapiko naa ra sa usa ka estado sa bisan unsang oras, ug molihok gikan sa usa ngadto sa lain base sa yano nga mga lagda.

Kini usa ka susama nga istorya sa mga NPC sa mga dula. Pananglitan, magkuha kita usa ka guwardiya nga adunay mga mosunud nga estado:

  • Nagpatrolya.
  • Pag-atake.
  • Mikalagiw.

Ug kini nga mga kondisyon alang sa pagbag-o sa kahimtang niini:

  • Kon ang guwardiya makakita sa kaaway, siya moatake.
  • Kon ang guwardiya moatake apan dili na makakita sa kaaway, mobalik siya sa pagpatrolya.
  • Kung ang usa ka guwardiya moatake apan grabe ang samad, siya modagan.

Mahimo ka usab magsulat kung-pahayag nga adunay usa ka variable sa estado sa magbalantay ug lainlaing mga pagsusi: naa bay kaaway sa duol, unsa ang lebel sa kahimsog sa NPC, ug uban pa. Magdugang kita og pipila ka mga estado:

  • Pagkatapulan - tali sa mga patrol.
  • Pagpangita - kung ang namatikdan nga kaaway nawala.
  • Pagpangita og Tabang - kung ang usa ka kaaway makit-an, apan kusgan kaayo aron makig-away nga mag-inusara.

Ang pagpili alang sa matag usa kanila limitado - pananglitan, ang guwardiya dili mangita alang sa usa ka tinago nga kaaway kung siya adunay ubos nga kahimsog.

Pagkahuman, adunay daghang lista sa "kung" , Nga " Mahimong mahimong lisud kaayo, mao nga kinahanglan naton nga pormal ang usa ka pamaagi nga nagtugot kanamo nga mahunahuna ang mga estado ug mga pagbalhin tali sa mga estado. Aron mahimo kini, among gikonsiderar ang tanan nga mga estado, ug sa ilawom sa matag estado among isulat sa usa ka lista ang tanan nga mga pagbalhin sa ubang mga estado, kauban ang mga kondisyon nga gikinahanglan alang kanila.

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Kini usa ka state transition table - usa ka komprehensibo nga paagi sa pagrepresentar sa FSM. Magdrowing kita og diagram ug makakuha og kompleto nga overview kung giunsa pagbag-o ang pamatasan sa NPC.

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Ang dayagram nagpakita sa esensya sa paghimog desisyon alang niini nga ahente base sa kasamtangan nga sitwasyon. Dugang pa, ang matag arrow nagpakita sa usa ka transisyon tali sa mga estado kung ang kondisyon sa tupad niini tinuod.

Ang matag update atong susihon ang kasamtangan nga kahimtang sa ahente, tan-awa ang listahan sa mga transisyon, ug kon ang mga kondisyon alang sa transisyon matuman, kini modawat sa bag-ong estado. Pananglitan, ang matag frame nagsusi kung ang 10-segundos nga timer na-expire na, ug kung mao, nan ang guwardiya gikan sa Idling state ngadto sa Patrolling. Sa parehas nga paagi, gisusi sa estado sa Pag-atake ang kahimsog sa ahente - kung kini ubos, nan kini moadto sa estado sa Pagkalagiw.

Nagdumala kini sa mga transisyon tali sa mga estado, apan komosta ang pamatasan nga may kalabotan sa mga estado mismo? Sa mga termino sa pagpatuman sa aktuwal nga kinaiya alang sa usa ka partikular nga estado, adunay kasagaran nga duha ka matang sa "hook" diin kita nag-assign sa mga aksyon sa FSM:

  • Mga aksyon nga kanunay natong gihimo alang sa kasamtangan nga kahimtang.
  • Ang mga aksyon nga atong gihimo sa pagbalhin gikan sa usa ka estado ngadto sa lain.

Mga pananglitan alang sa unang tipo. Ang estado sa Patrolling mobalhin sa ahente subay sa ruta sa patrol sa matag frame. Ang Attacking nga estado mosulay sa pagsugod sa usa ka pag-atake sa matag frame o transisyon ngadto sa usa ka estado diin kini posible.

Para sa ikaduhang tipo, ikonsiderar ang transisyon “kon ang kaaway makita ug ang kaaway kusog kaayo, unya adto sa Finding Help state. Kinahanglang pilion sa ahente kung asa moadto alang sa tabang ug tipigan kini nga impormasyon aron ang estado sa Pagpangita sa Tabang mahibal-an kung asa moadto. Kung makit-an ang tabang, ang ahente mobalik sa estado sa Pag-atake. Niini nga punto, gusto niya nga isulti sa kaalyado bahin sa hulga, aron ang NotifyFriendOfThreat nga aksyon mahimong mahitabo.

Sa makausa pa, mahimo natong tan-awon kini nga sistema pinaagi sa lente sa Sense/Think/Act cycle. Ang pagbati gilangkob sa datos nga gigamit sa transisyon nga lohika. Hunahunaa - ang mga transisyon nga anaa sa matag estado. Ug ang Act gihimo pinaagi sa mga aksyon nga gihimo matag karon ug unya sulod sa usa ka estado o sa mga pagbalhin tali sa mga estado.

Usahay ang padayon nga polling transition nga mga kondisyon mahimong mahal. Pananglitan, kung ang matag ahente mohimo ug komplikadong mga kalkulasyon sa matag frame aron mahibal-an kung makakita ba kini sa mga kaaway ug masabtan kung makabalhin ba kini gikan sa estado sa Patrolling ngadto sa Pag-atake, magkinahanglan kini og daghang oras sa CPU.

Ang importante nga mga pagbag-o sa kahimtang sa kalibutan mahimong isipon nga mga panghitabo nga maproseso samtang kini mahitabo. Imbis nga susihon sa FSM ang kondisyon sa transisyon "makita ba sa akong ahente ang magdudula?" matag frame, ang usa ka bulag nga sistema mahimong ma-configure aron dili kaayo kanunay masusi (pananglitan 5 ka beses matag segundo). Ug ang resulta mao ang pag-isyu sa Player Seen kung moagi ang tseke.

Gipasa kini sa FSM, nga kinahanglan nga moadto sa Player Seen nga panghitabo nga nakadawat kondisyon ug motubag sumala niana. Ang resulta nga pamatasan parehas gawas sa usa ka hapit dili mamatikdan nga paglangan sa dili pa motubag. Apan ang pasundayag miuswag isip resulta sa pagbulag sa Sense nga bahin ngadto sa bulag nga bahin sa programa.

Hierarchical finite state machine

Bisan pa, ang pagtrabaho kauban ang dagkong mga FSM dili kanunay kombenyente. Kung gusto namon nga palapdan ang estado sa pag-atake aron mabulag ang MeleeAttacking ug RangedAttacking, kinahanglan namon nga usbon ang mga transisyon gikan sa tanan nga ubang mga estado nga modala sa estado sa Pag-atake (karon ug umaabot).

Tingali namatikdan nimo nga sa among panig-ingnan adunay daghang mga doble nga pagbalhin. Kadaghanan sa mga transisyon sa Idling state parehas sa mga transition sa Patrolling state. Maayo nga dili na masubli ang atong kaugalingon, labi na kung dugangan pa naton ang mga parehas nga estado. Makataronganon ang paggrupo sa Idling ug Patrolling ubos sa kinatibuk-ang label nga "non-combat", diin adunay usa lamang ka komon nga set sa mga transisyon aron makig-away sa mga estado. Kung atong hunahunaon kini nga label isip usa ka estado, nan ang Idling ug Patrolling nahimong mga substate. Usa ka pananglitan sa paggamit sa usa ka bulag nga transisyon nga lamesa alang sa usa ka bag-ong non-combat substate:

Panguna nga estado:
Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Wala sa kahimtang sa panggubatan:
Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Ug sa porma sa diagram:

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Parehas kini nga sistema, apan adunay usa ka bag-ong estado nga dili kombat nga naglakip sa Idling ug Patrolling. Sa matag estado nga adunay FSM nga adunay mga substate (ug kini nga mga substate, sa baylo, adunay kaugalingon nga FSM - ug uban pa hangtod nga kinahanglan nimo), makakuha kami usa ka Hierarchical Finite State Machine o HFSM (hierarchical finite state machine). Pinaagi sa paggrupo sa non-combat state, among giputol ang usa ka pundok sa mga sobra nga mga transisyon. Mahimo namon ang parehas alang sa bisan unsang bag-ong estado nga adunay sagad nga mga pagbalhin. Pananglitan, kung sa umaabot atong palapdan ang Attacking state ngadto sa MeleeAttacking ug MissileAttacking states, sila mahimong substates nga magbalhinbalhin tali sa usag usa base sa gilay-on sa kaaway ug ammo availability. Ingon usa ka sangputanan, ang mga komplikado nga pamatasan ug mga sub-gawi mahimong irepresentar sa usa ka minimum nga doble nga pagbalhin.

Puno sa pamatasan

Uban sa HFSM, ang komplikado nga mga kombinasyon sa mga pamatasan gihimo sa yano nga paagi. Bisan pa, adunay gamay nga kalisud nga ang paghimog desisyon sa porma sa mga lagda sa transisyon suod nga may kalabotan sa karon nga kahimtang. Ug sa daghang mga dula mao gyud kini ang gikinahanglan. Ug ang maampingong paggamit sa hierarchy sa estado makapakunhod sa gidaghanon sa mga pagbalik-balik sa transisyon. Apan usahay kinahanglan nimo ang mga lagda nga molihok bisan unsa pa ang imong kahimtang, o magamit sa halos bisan unsang estado. Pananglitan, kung ang kahimsog sa usa ka ahente mikunhod ngadto sa 25%, gusto nimo nga siya molayas bisan pa kung siya nakig-away, wala’y trabaho, o nakigsulti - kinahanglan nimo nga idugang kini nga kondisyon sa matag estado. Ug kung ang imong tigdesinyo sa ulahi gusto nga usbon ang ubos nga threshold sa kahimsog gikan sa 25% ngadto sa 10%, nan kini kinahanglan nga buhaton pag-usab.

Sa tinuud, kini nga sitwasyon nanginahanglan usa ka sistema diin ang mga desisyon bahin sa "unsa ang kahimtang" naa sa gawas sa mga estado mismo, aron makahimo mga pagbag-o lamang sa usa ka lugar ug dili makahikap sa mga kondisyon sa pagbalhin. Ang mga punoan sa pamatasan makita dinhi.

Adunay ubay-ubay nga mga paagi sa pagpatuman niini, apan ang esensya halos pareho alang sa tanan ug susama sa usa ka punoan sa desisyon: ang algorithm nagsugod sa usa ka "gamut" nga node, ug ang kahoy adunay mga node nga nagrepresentar sa mga desisyon o aksyon. Adunay pipila ka mahinungdanong mga kalainan bisan pa:

  • Ang mga node karon nagbalik sa usa sa tulo ka mga bili: Nagmalampuson (kon ang trabaho nahuman), Napakyas (kon kini dili masugdan), o Pagdagan (kon kini nagdagan pa ug walay katapusan nga resulta).
  • Wala nay mga decision node nga mapilian tali sa duha ka alternatibo. Hinuon, sila ang mga node sa Dekorador, nga adunay usa ka node sa bata. Kung sila Magmalampuson, ilang ipatuman ang ilang bugtong anak nga node.
  • Ang mga node nga naghimo sa mga aksyon nagbalik sa usa ka Running value aron magrepresentar sa mga aksyon nga gihimo.

Kining gamay nga hugpong sa mga node mahimong ikombinar sa paghimo sa usa ka dako nga gidaghanon sa mga komplikado nga kinaiya. Atong mahanduraw ang HFSM guard gikan sa miaging pananglitan ingon usa ka punoan sa pamatasan:

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Uban niini nga istruktura kinahanglan nga walay klaro nga transisyon gikan sa Idling/Patrolling nga mga estado ngadto sa Attacking o bisan unsang ubang mga estado. Kung ang usa ka kaaway makita ug ang kahimsog sa karakter ubos, ang pagpatay mohunong sa Fleeing node, bisan unsa nga node ang kaniadto gipatuman - Patrolling, Idling, Attacking, o bisan unsa pa.

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Ang mga punoan sa pamatasan komplikado-adunay daghang mga paagi sa paghimo niini, ug ang pagpangita sa husto nga kombinasyon sa mga dekorador ug mga compound node mahimong mahagiton. Adunay usab mga pangutana kung unsa ka sagad susihon ang kahoy - gusto ba naton nga agian ang matag bahin niini o kung ang usa sa mga kondisyon nausab? Giunsa naton pagtipig ang estado nga may kalabotan sa mga node - giunsa naton nahibal-an kung nag-idle na kami sa 10 segundos, o giunsa naton nahibal-an kung unsang mga node ang nagpatuman sa miaging higayon aron maproseso namon ang pagkasunod-sunod sa husto?

Mao kini ang hinungdan nga adunay daghang mga pagpatuman. Pananglitan, ang pipila ka mga sistema nag-ilis sa mga node sa dekorador nga adunay mga inline nga dekorador. Gisusi nila pag-usab ang kahoy kung nabag-o ang mga kondisyon sa dekorador, nagtabang sa pag-apil sa mga node, ug naghatag kanunay nga mga update.

Utility-based nga sistema

Ang ubang mga dula adunay daghang lainlaing mga mekaniko. Kini mao ang tilinguhaon nga sila makadawat sa tanan nga mga benepisyo sa yano ug kinatibuk-ang transisyon mga lagda, apan dili kinahanglan diha sa porma sa usa ka bug-os nga kahoy sa kinaiya. Imbis nga adunay usa ka tin-aw nga hugpong sa mga pagpili o usa ka punoan sa posible nga mga aksyon, mas dali nga susihon ang tanan nga mga aksyon ug pilion ang labing angay sa karon.

Ang sistema nga nakabase sa Utility makatabang niini. Kini usa ka sistema diin ang ahente adunay lain-laing mga aksyon ug gipili kung kinsa ang buhaton base sa paryente nga gamit sa matag usa. Diin ang utility usa ka arbitraryong sukdanan kung unsa ka importante o gusto kini alang sa ahente sa pagbuhat niini nga aksyon.

Ang kalkulado nga gamit sa usa ka aksyon base sa kasamtangan nga kahimtang ug palibot, ang ahente mahimong magsusi ug mopili sa labing angay nga ubang estado sa bisan unsang orasa. Susama kini sa FSM, gawas kung ang mga transisyon gitino pinaagi sa usa ka banabana alang sa matag potensyal nga estado, lakip ang karon. Palihug timan-i nga gipili namo ang labing mapuslanon nga aksyon aron magpadayon (o magpabilin kung nahuman na namo kini). Alang sa dugang nga pagkalainlain, mahimo kini usa ka balanse apan random nga pagpili gikan sa gamay nga lista.

Ang sistema naghatag ug arbitraryong han-ay sa mga bili sa utility—pananglitan, gikan sa 0 (hingpit nga dili gusto) ngadto sa 100 (hingpit nga tilinguhaon). Ang matag aksyon adunay daghang mga parameter nga makaapekto sa pagkalkula niini nga kantidad. Pagbalik sa among panig-ingnan sa magbalantay:

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Ang mga transisyon tali sa mga aksyon dili klaro-bisan unsang estado mahimong mosunod sa bisan unsang lain. Ang mga prayoridad sa aksyon makita sa gibalik nga mga kantidad sa utility. Kung ang usa ka kaaway makita, ug kana nga kaaway kusgan, ug ang kahimsog sa karakter ubos, nan ang Fleeing ug FindingHelp mobalik ug taas nga dili zero nga mga kantidad. Niini nga kaso, ang FindingHelp kanunay nga mas taas. Ingon usab, ang mga kalihokan nga dili pangkombat dili na mobalik labaw sa 50, mao nga kini kanunay nga mas ubos kaysa sa mga kombat. Kinahanglan nimo nga tagdon kini kung maghimo mga aksyon ug pagkalkula sa ilang gamit.

Sa among panig-ingnan, ang mga aksyon mobalik bisan sa usa ka pirmi nga kanunay nga kantidad o usa sa duha nga gitakda nga mga kantidad. Ang mas realistiko nga sistema magbalik ug banabana gikan sa padayon nga han-ay sa mga kantidad. Pananglitan, ang aksyon nga Fleeing nagbalik sa mas taas nga mga kantidad sa utility kung ang kahimsog sa ahente gamay, ug ang aksyon nga Pag-atake nagbalik sa mas ubos nga mga kantidad sa utility kung ang kaaway kusog kaayo. Tungod niini, ang aksyon sa Paglayas nag-una kaysa Pag-atake sa bisan unsang sitwasyon diin gibati sa ahente nga wala siyay igong kahimsog aron pildihon ang kaaway. Gitugotan niini ang mga aksyon nga ma-prioritize base sa bisan unsang gidaghanon sa mga pamatasan, nga naghimo niini nga pamaagi nga mas flexible ug variable kaysa usa ka punoan sa pamatasan o FSM.

Ang matag aksyon adunay daghang mga kondisyon alang sa pagkalkula sa programa. Mahimo kining isulat sa scripting language o isip serye sa mga pormula sa matematika. Ang Sims, nga nagsundog sa adlaw-adlaw nga rutina sa usa ka karakter, nagdugang usa ka dugang nga layer sa kalkulasyon - ang ahente nakadawat usa ka serye sa mga "motibasyon" nga nag-impluwensya sa mga rating sa utility. Kung ang usa ka karakter gigutom, sila mahimong mas gutom sa paglabay sa panahon, ug ang utility nga kantidad sa aksyon sa EatFood motaas hangtod nga ang karakter mobuhat niini, makunhuran ang lebel sa kagutom ug ibalik ang kantidad sa EatFood sa zero.

Ang ideya sa pagpili sa mga aksyon nga gibase sa usa ka sistema sa rating yano ra, mao nga ang usa ka sistema nga nakabase sa Utility mahimong magamit ingon bahin sa mga proseso sa paghimog desisyon sa AI, imbes nga usa ka kompleto nga kapuli alang kanila. Mahimong mangayo ang decision tree og utility rating sa duha ka child node ug pilia ang mas taas. Sa samang paagi, ang usa ka punoan sa kinaiya mahimong adunay usa ka composite Utility node aron sa pagtimbang-timbang sa kapuslanan sa mga aksyon aron sa pagdesisyon kung kinsa nga bata ang ipatuman.

Paglihok ug nabigasyon

Sa miaging mga pananglitan, kami adunay usa ka plataporma nga among gibalhin sa wala o tuo, ug usa ka guwardiya nga nagpatrolya o nag-atake. Apan unsaon man nato pagdumala ang paglihok sa ahente sulod sa usa ka yugto sa panahon? Giunsa nato pagtakda ang katulin, unsaon nato paglikay sa mga babag, ug giunsa nato pagplano ang usa ka ruta kung ang pag-abot sa usa ka destinasyon mas lisud kay sa paglihok sa usa ka tul-id nga linya? Atong tan-awon kini.

Pagdumala

Sa inisyal nga yugto, atong hunahunaon nga ang matag ahente adunay bili sa katulin, nga naglakip kung unsa ka paspas ang paglihok niini ug sa unsang direksyon. Masukod kini sa metro kada segundo, kilometro kada oras, pixel kada segundo, ug uban pa. Ang paghinumdom sa Sense/Think/Act loop, atong mahanduraw nga ang Think nga bahin mopili ug speed, ug ang Act nga bahin magamit kana nga speed sa ahente. Kasagaran ang mga dula adunay sistema sa pisika nga naghimo niini nga buluhaton alang kanimo, pagkat-on sa katulin nga kantidad sa matag butang ug pag-adjust niini. Busa, mahimo nimong biyaan ang AI nga adunay usa ka buluhaton - aron makadesisyon kung unsa nga katulin ang kinahanglan sa ahente. Kung nahibal-an nimo kung asa ang ahente, nan kinahanglan nimo nga ibalhin kini sa husto nga direksyon sa usa ka gitakda nga tulin. Usa ka gamay kaayo nga equation:

gusto_biyahe = destinasyon_posisyon - ahente_posisyon

Hunahunaa ang usa ka 2D nga kalibutan. Ang ahente anaa sa punto (-2,-2), ang destinasyon anaa sa usa ka dapit sa amihanan-sidlakan sa punto (30, 20), ug ang gikinahanglan nga agianan aron makaabot ang ahente didto mao ang (32, 22). Ingnon ta nga kini nga mga posisyon gisukod sa mga metro - kung atong kuhaon ang katulin sa ahente nga 5 metros matag segundo, nan atong sukdon ang atong displacement vector ug makakuha og gibana-bana nga gikusgon (4.12, 2.83). Uban niini nga mga parameter, ang ahente moabut sa iyang destinasyon sa hapit 8 segundos.

Mahimo nimong kalkulahon pag-usab ang mga kantidad bisan unsang orasa. Kung ang ahente naa sa tunga sa target, ang paglihok mahimong katunga sa gitas-on, apan tungod kay ang labing katulin sa ahente mao ang 5 m / s (nadesisyonan namon kini sa ibabaw), parehas ang katulin. Naglihok usab kini alang sa paglihok sa mga target, nga gitugotan ang ahente nga maghimo gagmay nga mga pagbag-o samtang sila molihok.

Apan gusto namon ang dugang nga kalainan - pananglitan, hinayhinay nga pagtaas sa katulin aron masundog ang usa ka karakter nga naglihok gikan sa pagtindog hangtod sa pagdagan. Ang sama nga mahimo sa katapusan sa dili pa mohunong. Kini nga mga bahin nailhan nga steering behaviors, nga ang matag usa adunay piho nga mga ngalan: Seek, Flee, Arrival, ug uban pa. aron sa paggamit sa lain-laing mga paagi sa pagbalhin ngadto sa tumong.

Ang matag pamatasan adunay lahi nga katuyoan. Ang Seek and Arrival maoy mga paagi sa pagbalhin sa ahente ngadto sa destinasyon. Ang Paglikay sa Balag ug Pagbulag ipahiangay ang paglihok sa ahente aron malikayan ang mga babag sa dalan padulong sa katuyoan. Ang Alignment ug Cohesion nagpadayon sa paglihok sa mga ahente. Ang bisan unsang gidaghanon sa lainlaing mga pamatasan sa pagmaneho mahimong masumada aron makahimo usa ka vector sa agianan nga gikonsiderar ang tanan nga mga hinungdan. Usa ka ahente nga naggamit sa Arrival, Separation, ug Obstacle Avoidance nga mga kinaiya aron magpalayo sa mga dingding ug uban pang mga ahente. Maayo kini nga pamaagi sa bukas nga mga lugar nga wala kinahanglana nga mga detalye.

Sa mas lisud nga mga kahimtang, ang pagdugang sa lain-laing mga kinaiya molihok nga mas grabe - pananglitan, ang usa ka ahente mahimong maipit sa usa ka bungbong tungod sa panagsumpaki tali sa Arrival ug Obstacle Avoidance. Busa, kinahanglan nimong hunahunaon ang mga kapilian nga labi ka komplikado kaysa sa pagdugang sa tanan nga mga kantidad. Ang paagi mao kini: imbis nga idugang ang mga resulta sa matag pamatasan, mahimo nimong hunahunaon ang paglihok sa lainlaing mga direksyon ug pilion ang labing kaayo nga kapilian.

Bisan pa, sa usa ka komplikado nga palibot nga adunay mga wala’y katapusan ug mga kapilian kung unsang paagiha moadto, kinahanglan naton ang usa ka butang nga labi ka abante.

Pagpangita usa ka paagi

Maayo ang mga pamatasan sa pagmaneho alang sa yano nga paglihok sa usa ka bukas nga lugar (football field o arena) diin ang pagkuha gikan sa A hangtod sa B usa ka tul-id nga agianan nga adunay gamay nga pagliko sa palibot sa mga babag. Alang sa komplikado nga mga ruta, kinahanglan naton ang pagpangita sa agianan, nga usa ka paagi sa pagsuhid sa kalibutan ug pagdesisyon sa usa ka ruta nga agi niini.

Ang pinakayano mao ang pag-apply og grid sa matag square sunod sa ahente ug pagtimbang-timbang kung kinsa kanila ang gitugotan sa paglihok. Kung ang usa niini usa ka destinasyon, dayon sunda ang ruta gikan sa matag square hangtod sa miaging usa hangtod makaabut ka sa sinugdanan. Kini ang ruta. Kung dili, balika ang proseso sa duol nga ubang mga kwadro hangtod makit-an nimo ang imong padulngan o mahurot ka sa mga kwadro (nagpasabut nga wala’y posible nga ruta). Mao kini ang pormal nga nailhan nga Breadth-First Search o BFS (breadth-first search algorithm). Sa matag lakang siya motan-aw sa tanang direksyon (busa gilapdon, "lapad"). Ang luna sa pagpangita sama sa usa ka wavefront nga naglihok hangtod nga makaabot sa gitinguha nga lokasyon - ang luna sa pagpangita molapad sa matag lakang hangtod maapil ang katapusan nga punto, pagkahuman masubay kini balik sa sinugdanan.

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Ingon usa ka sangputanan, makadawat ka usa ka lista sa mga kwadro diin giipon ang gusto nga ruta. Kini ang agianan (busa, pagpangita sa agianan) - usa ka lista sa mga lugar nga bisitahan sa ahente samtang nagsunod sa destinasyon.

Tungod kay nahibal-an namon ang posisyon sa matag square sa kalibutan, magamit namon ang mga pamatasan sa pagmaneho aron molihok subay sa agianan - gikan sa node 1 hangtod sa node 2, dayon gikan sa node 2 hangtod sa node 3, ug uban pa. Ang pinakasimple nga kapilian mao ang pag-adto sa sentro sa sunod nga square, apan ang mas maayo nga kapilian mao ang paghunong sa tunga-tunga sa ngilit tali sa karon nga square ug sa sunod. Tungod niini, ang ahente makahimo sa pagputol sa mga kanto sa hait nga mga liko.

Ang BFS algorithm usab adunay mga disbentaha - kini nagsuhid sa daghang mga kwadro sa "sayup" nga direksyon sama sa "tama" nga direksyon. Dinhi ang usa ka mas komplikado nga algorithm nga gitawag og A* (Usa ka bituon) moabut sa pagdula. Nagbuhat kini sa parehas nga paagi, apan imbis nga bulag nga susihon ang mga kwadro sa silingan (unya mga silingan sa mga silingan, dayon mga silingan sa mga silingan sa mga silingan, ug uban pa), gikolekta niini ang mga node sa usa ka lista ug gibahin kini aron ang sunod nga node nga gisusi kanunay ang usa nga nagpadulong sa pinakamubo nga ruta. Ang mga node gihan-ay base sa usa ka heuristic nga nagkonsiderar sa duha ka butang-ang "gasto" sa usa ka hypothetical nga ruta sa gitinguha nga square (lakip ang bisan unsang gasto sa pagbiyahe) ug usa ka banabana kung unsa ka layo ang square gikan sa destinasyon (pagpihig sa pagpangita sa husto nga direksyon).

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Kini nga pananglitan nagpakita nga ang ahente nagsuhid sa usa ka kuwadrado sa usa ka higayon, sa matag higayon nga mopili sa kasikbit nga usa nga labing maayo. Ang resulta nga agianan parehas sa BFS, apan mas gamay nga mga kwadro ang gikonsiderar sa proseso - nga adunay dako nga epekto sa pasundayag sa dula.

Paglihok nga walay grid

Apan kadaghanan sa mga dula wala gibutang sa usa ka grid, ug kasagaran imposible nga buhaton kini nga wala isakripisyo ang realismo. Gikinahanglan ang mga pagkompromiso. Unsa ang gidak-on sa mga kwadro? Dako kaayo ug dili sila makahimo sa hustong pagrepresentar sa gagmay nga mga koridor o mga likoanan, gamay ra kaayo ug adunay daghan kaayo nga mga kwadro nga pangitaon, nga sa katapusan magkinahanglan og daghang panahon.

Ang unang butang nga masabtan mao nga ang usa ka mata sa baling naghatag kanato og graph sa konektado nga mga node. Ang mga algorithm sa A* ug BFS aktuwal nga nagtrabaho sa mga graph ug wala’y pagtagad sa among mata sa tanan. Mahimo namon nga ibutang ang mga node bisan asa sa kalibutan sa dula: basta adunay koneksyon tali sa bisan unsang duha nga konektado nga mga node, ingon man tali sa pagsugod ug katapusan nga mga punto ug labing menos usa sa mga node, ang algorithm molihok sama sa kaniadto. Kanunay kini nga gitawag nga waypoint system, tungod kay ang matag node nagrepresentar sa usa ka hinungdanon nga posisyon sa kalibutan nga mahimong bahin sa bisan unsang gidaghanon sa hypothetical nga mga agianan.

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod
Pananglitan 1: usa ka knot sa matag square. Ang pagpangita magsugod gikan sa node diin nahimutang ang ahente ug matapos sa node sa gusto nga square.

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod
Pananglitan 2: Usa ka gamay nga hugpong sa mga node (mga waypoint). Ang pagpangita magsugod sa kuwadrado sa ahente, moagi sa gikinahanglan nga gidaghanon sa mga node, ug dayon mopadayon sa destinasyon.

Kini usa ka hingpit nga flexible ug gamhanan nga sistema. Apan gikinahanglan ang pipila ka pag-amping sa pagdesisyon kung asa ug unsaon pagbutang og waypoint, kung dili ang mga ahente mahimong dili makakita sa labing duol nga punto ug dili makasugod sa agianan. Mas sayon ​​kung mahimo natong awtomatiko nga ibutang ang mga waypoint base sa geometry sa kalibutan.

Dinhi makita ang navigation mesh o navmesh (navigation mesh). Kasagaran kini usa ka 2D mesh sa mga triangles nga gisapawan sa geometry sa kalibutan - bisan asa ang ahente gitugotan nga maglakaw. Ang matag usa sa mga triyanggulo sa mata sa baling mahimong usa ka node sa graph, ug adunay hangtod sa tulo ka kasikbit nga mga trianggulo nga mahimong kasikbit nga mga node sa graph.

Kini nga hulagway usa ka pananglitan gikan sa Unity engine - gisusi niini ang geometry sa kalibutan ug nagmugna og navmesh (sa screenshot sa light blue). Ang matag polygon sa usa ka navmesh usa ka lugar diin ang usa ka ahente makabarog o makalihok gikan sa usa ka polygon ngadto sa lain nga polygon. Niini nga pananglitan, ang mga polygon mas gamay kay sa mga salog diin sila nahimutang - kini gihimo aron makonsiderar ang gidak-on sa ahente, nga molapas sa nominal nga posisyon niini.

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Makapangita kami og ruta pinaagi niini nga mesh, gamit ang A* algorithm. Maghatag kini kanamo usa ka hapit hingpit nga ruta sa kalibutan, nga gikonsiderar ang tanan nga geometry ug wala magkinahanglan wala kinahanglana nga mga node ug paghimo sa mga waypoint.

Ang Pathfinding kay halapad kaayo nga hilisgutan diin ang usa ka seksyon sa usa ka artikulo dili igo. Kung gusto nimo nga tun-an kini sa mas detalyado, nan kini makatabang Amit Patel nga website.

Pagplano

Among nakat-unan uban sa pagpangita og dalan nga usahay dili igo ang pagpili lang og direksyon ug paglihok - kinahanglan kitang mopili og rota ug mohimo og pipila ka liko aron makaabot sa atong gitinguha nga destinasyon. Mahimo natong i-generalize kini nga ideya: ang pagkab-ot sa usa ka tumong dili lamang ang sunod nga lakang, apan usa ka tibuok nga han-ay diin usahay kinahanglan nimo nga tan-awon sa unahan ang pipila ka mga lakang aron mahibal-an kung unsa ang una. Gitawag kini nga pagplano. Ang Pathfinding mahimong isipon nga usa sa daghang mga extension sa pagplano. Sa termino sa atong Sense/Think/Act cycle, dinhi ang Think part nagplano ug daghang Act parts para sa umaabot.

Atong tan-awon ang pananglitan sa board game nga Magic: The Gathering. Nag-una kami uban ang mosunod nga hugpong sa mga kard sa among mga kamot:

  • Swamp - Naghatag ug 1 ka itom nga mana (land card).
  • Lasang - naghatag og 1 green mana (land card).
  • Fugitive Wizard - Nagkinahanglan ug 1 blue mana para ipatawag.
  • Elvish Mystic - Nanginahanglan og 1 green mana para ipatawag.

Among gibalewala ang nahibiling tulo ka kard aron mas sayon. Sumala sa mga lagda, ang usa ka magdudula gitugotan nga magdula og 1 ka kard sa yuta matag turno, mahimo niyang "i-tap" kini nga kard aron makuha ang mana gikan niini, ug dayon mag-spells (lakip ang pagtawag sa usa ka binuhat) sumala sa kantidad sa mana. Niini nga sitwasyon, ang tawo nga magdudula nahibal-an nga magdula sa Forest, i-tap ang 1 green mana, ug dayon ipatawag ang Elvish Mystic. Apan giunsa kini mahibal-an sa dula nga AI?

Sayon nga pagplano

Ang walay hinungdan nga paagi mao ang pagsulay sa matag aksyon sa baylo hangtod nga wala nay angay nga nahabilin. Pinaagi sa pagtan-aw sa mga kard, nakita sa AI kung unsa ang mahimo sa Swamp. Ug siya nagdula niini. Aduna bay laing mga aksyon nga nahabilin niini nga turno? Dili kini makatawag sa Elvish Mystic o Fugitive Wizard, tungod kay nanginahanglan sila og berde ug asul nga mana matag usa aron ipatawag sila, samtang ang Swamp naghatag lamang ug itom nga mana. Ug dili na siya makaduwa ug Forest, kay nakaduwa na siya sa Swamp. Busa, ang dula AI misunod sa mga lagda, apan kini dili maayo. Mahimong pauswagon.

Ang pagplano makapangita usa ka lista sa mga aksyon nga magdala sa dula sa gusto nga kahimtang. Sama nga ang matag square sa usa ka agianan adunay mga silingan (sa pagpangita sa agianan), ang matag aksyon sa usa ka plano adunay usab mga silingan o manununod. Mahimo natong pangitaon kini nga mga aksyon ug ang sunod nga mga aksyon hangtud nga maabot nato ang gitinguha nga kahimtang.

Sa among pananglitan, ang gitinguha nga resulta mao ang "pagtawag ug usa ka binuhat kung mahimo." Sa pagsugod sa turno, duha ra ang among nakita nga posible nga aksyon nga gitugotan sa mga lagda sa dula:

1. Pagdula sa Swamp (resulta: Swamp sa dula)
2. Play Forest (resulta: Forest sa duwa)

Ang matag aksyon nga gihimo mahimong mosangpot sa dugang nga mga aksyon ug pagsira sa uban, pag-usab depende sa mga lagda sa dula. Hunahunaa nga nagdula kami sa Swamp - kini magwagtang sa Swamp isip sunod nga lakang (nato na kini gidula), ug kini usab magwagtang sa Forest (tungod kay sumala sa mga lagda mahimo ka nga magdula og usa ka land card kada turn). Pagkahuman niini, ang AI nagdugang pagkuha 1 itom nga mana ingon nga sunod nga lakang tungod kay wala’y ubang mga kapilian. Kung magpadayon siya ug pilion ang Tap the Swamp, makadawat siya og 1 ka unit nga black mana ug dili na siya makahimo bisan unsa niini.

1. Pagdula sa Swamp (resulta: Swamp sa dula)
1.1 "Tap" Swamp (resulta: Swamp "tapped", +1 unit sa itom nga mana)
Walay mga aksyon nga magamit - KATAPUSAN
2. Play Forest (resulta: Forest sa duwa)

Mubo ra ang lista sa mga aksyon, nakaabot mi sa dead end. Atong balikon ang proseso alang sa sunod nga lakang. Nagdula kami sa Lasang, ablihan ang aksyon nga "pagkuha 1 berde nga mana", nga sa baylo magbukas sa ikatulo nga aksyon - ipatawag ang Elvish Mystic.

1. Pagdula sa Swamp (resulta: Swamp sa dula)
1.1 "Tap" Swamp (resulta: Swamp "tapped", +1 unit sa itom nga mana)
Walay mga aksyon nga magamit - KATAPUSAN
2. Play Forest (resulta: Forest sa duwa)
2.1 "Tap" nga Lasang (resulta: Forest "natap", +1 unit sa berdeng mana)
2.1.1 Ipatawag ang Elvish Mystic (resulta: Elvish Mystic sa dula, -1 green mana)
Walay mga aksyon nga magamit - KATAPUSAN

Sa katapusan, among gisusi ang tanan nga posible nga mga aksyon ug nakit-an ang usa ka plano nga nagpatawag sa usa ka binuhat.

Kini usa ka gipasimple nga pananglitan. Kini mao ang advisable sa pagpili sa labing maayo nga posible nga plano, kay sa bisan unsa nga plano nga makab-ot sa pipila ka mga criteria. Sa kasagaran posible ang pagtimbang-timbang sa mga potensyal nga plano base sa resulta o kinatibuk-ang kaayohan sa ilang pagpatuman. Mahimo nimong makuha ang imong kaugalingon nga 1 puntos sa pagdula og land card ug 3 puntos sa pagtawag sa usa ka binuhat. Ang pagdula sa Swamp usa ka plano nga 1 puntos. Ug ang pagdula sa Forest → Tap the Forest → summon Elvish Mystic mohatag dayon og 4 puntos.

Ingon niini kung giunsa ang pagplano molihok sa Magic: The Gathering, apan parehas nga lohika magamit sa ubang mga sitwasyon. Pananglitan, ang pagbalhin sa usa ka pangan aron mahatagan og luna ang bishop nga makalihok sa chess. O pagtago sa luyo sa usa ka bungbong aron luwas nga mag-shoot sa XCOM nga sama niini. Sa kinatibuk-an, makuha nimo ang ideya.

Gipauswag nga pagplano

Usahay adunay daghan kaayo nga mga potensyal nga aksyon aron makonsiderar ang matag posible nga kapilian. Pagbalik sa panig-ingnan nga adunay Magic: The Gathering: ingnon ta nga sa dula ug sa imong kamot adunay daghang mga kard sa yuta ug binuhat - ang gidaghanon sa posible nga mga kombinasyon sa mga paglihok mahimong sa mga dosena. Adunay daghang mga solusyon sa problema.

Ang una nga paagi mao ang backward chaining. Imbis nga sulayan ang tanan nga mga kombinasyon, mas maayo nga magsugod sa katapusan nga resulta ug pagsulay sa pagpangita sa usa ka direkta nga ruta. Imbis nga moadto gikan sa gamut sa kahoy ngadto sa usa ka piho nga dahon, molihok kami sa atbang nga direksyon - gikan sa dahon hangtod sa gamut. Kini nga pamaagi mas sayon ​​ug mas paspas.

Kung ang kaaway adunay 1 nga kahimsog, makit-an nimo ang plano nga "deal 1 o daghan pa nga kadaot". Aron makab-ot kini, daghang mga kondisyon ang kinahanglan matuman:

1. Ang kadaot mahimong hinungdan sa usa ka spell - kini kinahanglan nga anaa sa kamot.
2. Aron maka-spell, kinahanglan nimo ang mana.
3. Aron makakuha og mana, kinahanglan ka nga magdula og land card.
4. Aron makadula og land card, kinahanglan nimo nga anaa kini sa imong kamot.

Ang laing paagi mao ang pinakamaayong pagpangita. Imbis nga sulayan ang tanan nga mga agianan, gipili namon ang labing angay. Kasagaran, kini nga pamaagi naghatag sa kamalaumon nga plano nga wala kinahanglana nga gasto sa pagpangita. Ang A* usa ka porma sa labing maayong una nga pagpangita - pinaagi sa pagsusi sa labing maayong mga ruta gikan sa sinugdanan, makit-an na niini ang labing kaayo nga agianan nga dili kinahanglan nga susihon ang ubang mga kapilian.

Usa ka makapaikag ug mas popular nga labing una nga kapilian sa pagpangita mao ang Monte Carlo Tree Search. Imbis nga tag-an kung unsang mga plano ang labi ka maayo kaysa sa uban kung gipili ang matag sunod nga aksyon, gipili sa algorithm ang mga random nga manununod sa matag lakang hangtod nga maabot kini sa katapusan (sa dihang ang plano miresulta sa kadaugan o kapildihan). Ang katapusan nga resulta kay gigamit sa pagdugang o pagkunhod sa gibug-aton sa miaging mga kapilian. Pinaagi sa pagsubli niini nga proseso sa daghang mga higayon sa usa ka laray, ang algorithm naghatag usa ka maayo nga pagbanabana kung unsa ang labing kaayo nga sunod nga lakang, bisan kung ang kahimtang mausab (kung ang kaaway molihok aron makabalda sa magdudula).

Walay istorya bahin sa pagplano sa mga dula nga makompleto kung wala ang Goal-Oriented Action Planning o GOAP (goal-oriented action planning). Kini usa ka kaylap nga gigamit ug gihisgutan nga pamaagi, apan gawas sa pipila nga nagpalahi nga mga detalye, kini mao ang esensya nga paagi sa backward chaining nga among gihisgutan sa sayo pa. Kung ang tumong mao ang "laglagon ang magdudula" ug ang magdudula anaa sa likod sa tabon, ang plano mahimong: gub-on gamit ang granada → kuhaon kini → ilabay.

Kasagaran adunay daghang mga katuyoan, ang matag usa adunay kaugalingon nga prayoridad. Kung dili makompleto ang labing taas nga prayoridad nga katuyoan (walay kombinasyon sa mga aksyon nga nagmugna usa ka plano nga "pataya ang magdudula" tungod kay ang magdudula dili makita), ang AI mobalik sa ubos nga mga katuyoan nga prayoridad.

Pagbansay ug pagpahiangay

Nakaingon na kami nga ang dula nga AI kasagaran dili mogamit sa pagkat-on sa makina tungod kay dili kini angay alang sa pagdumala sa mga ahente sa tinuud nga oras. Apan wala kini magpasabut nga dili ka makahulam sa usa ka butang gikan sa kini nga lugar. Gusto namon ang usa ka kontra sa usa ka shooter nga kami makakat-on gikan sa usa ka butang. Pananglitan, hibal-i ang bahin sa labing kaayo nga mga posisyon sa mapa. O usa ka kontra sa usa ka away nga dula nga mobabag sa kanunay nga gigamit nga combo nga mga paglihok sa magdudula, nga nagdasig kaniya sa paggamit sa uban. Busa ang pagkat-on sa makina mahimong mapuslanon kaayo sa maong mga sitwasyon.

Estadistika ug mga Probability

Sa dili pa kita mosulod sa komplikado nga mga pananglitan, atong tan-awon kung unsa ka layo ang atong mahimo pinaagi sa pagkuha sa pipila ka yano nga mga pagsukod ug paggamit niini sa paghimo og mga desisyon. Pananglitan, real-time nga estratehiya - unsaon nato pagtino kung ang usa ka magdudula makalunsad og usa ka pag-atake sa unang pipila ka minuto sa dula ug unsa nga depensa ang pag-andam batok niini? Mahimo natong tun-an ang nangaging mga kasinatian sa usa ka magdudula aron masabtan kung unsa ang mahimong reaksyon sa umaabot. Sa pagsugod, wala kami ingon nga hilaw nga datos, apan mahimo namon kini makolekta - matag higayon nga ang AI magdula batok sa usa ka tawo, mahimo’g irekord ang oras sa una nga pag-atake. Pagkahuman sa pipila ka mga sesyon, makakuha kami usa ka average sa oras nga kinahanglan alang sa magdudula sa pag-atake sa umaabot.

Adunay usab usa ka problema sa kasagaran nga mga kantidad: kung ang usa ka magdudula nagdali sa 20 ka beses ug hinay nga nagdula sa 20 ka beses, nan ang gikinahanglan nga mga kantidad naa sa usa ka lugar sa tunga, ug dili kini maghatag kanamo bisan unsang mapuslanon. Ang usa ka solusyon mao ang paglimite sa data sa pag-input - ang katapusan nga 20 ka piraso mahimong mahunahuna.

Ang usa ka susama nga pamaagi gigamit kung gibanabana ang posibilidad sa pipila nga mga aksyon pinaagi sa paghunahuna nga ang nangagi nga mga gusto sa magdudula parehas sa umaabot. Kung ang usa ka magdudula mag-atake kanamo lima ka beses gamit ang bola sa kalayo, duha ka beses nga adunay kilat, ug usa ka higayon nga adunay sukol, klaro nga gusto niya ang bola sa kalayo. Atong i-extrapolate ug tan-awon ang posibilidad sa paggamit sa lain-laing mga hinagiban: fireball=62,5%, kilat=25% ug melee=12,5%. Ang among dula AI kinahanglan nga mangandam aron mapanalipdan ang kaugalingon gikan sa sunog.

Ang laing makaiikag nga pamaagi mao ang paggamit sa Naive Bayes Classifier aron tun-an ang daghang kantidad sa input data ug pagklasipikar sa sitwasyon aron ang AI motubag sa gusto nga paagi. Ang mga klasipikasyon sa Bayesian labing nailhan tungod sa ilang paggamit sa mga filter sa spam sa email. Didto ilang gisusi ang mga pulong, itandi kini sa kung diin nagpakita ang mga pulong kaniadto (sa spam o wala), ug maghimo mga konklusyon bahin sa umaabot nga mga email. Mahimo namon ang parehas nga butang bisan sa gamay nga input. Pinasukad sa tanan nga mapuslanon nga kasayuran nga nakita sa AI (sama sa kung unsang mga yunit sa kaaway ang gibuhat, o kung unsang mga spelling ang ilang gigamit, o kung unsang mga teknolohiya ang ilang gisiksik), ug ang katapusan nga sangputanan (gubat o kalinaw, pagdali o pagpanalipod, ug uban pa) - pilion namon ang gusto nga pamatasan sa AI.

Ang tanan nga kini nga mga pamaagi sa pagbansay igo na, apan gisugyot nga gamiton kini base sa datos sa pagsulay. Makakat-on ang AI sa pagpahiangay sa lainlaing mga estratehiya nga gigamit sa imong mga magdudula. Ang AI nga mopahiangay sa magdudula pagkahuman sa pagpagawas mahimong mahimong matag-an o lisud kaayo pildihon.

Pagpahiangay base sa bili

Gihatag ang sulud sa among kalibutan sa dula ug ang mga lagda, mahimo naton mabag-o ang hugpong sa mga kantidad nga nag-impluwensya sa paghimog desisyon, imbes nga gamiton lang ang data sa input. Atong buhaton kini:

  • Tugoti ang AI nga mangolekta og datos sa kahimtang sa kalibutan ug mga mahinungdanong panghitabo sa panahon sa dula (sama sa ibabaw).
  • Atong usbon ang pipila ka hinungdanon nga mga kantidad base sa kini nga datos.
  • Among gipatuman ang among mga desisyon base sa pagproseso o pagtimbang-timbang niini nga mga mithi.

Pananglitan, ang usa ka ahente adunay daghang mga kwarto nga mapilian sa usa ka mapa sa first-person shooter. Ang matag lawak adunay kaugalingong bili, nga nagtino kon unsa ka tilinguhaon ang pagbisita. Ang AI random nga nagpili kung unsang kwarto ang adtoan base sa kantidad. Ang ahente dayon nahinumdom kung asa nga kwarto siya gipatay ug gipakunhod ang kantidad niini (ang kalagmitan nga siya mobalik didto). Sa susama alang sa balik nga sitwasyon - kung ang ahente makaguba sa daghang mga kaatbang, nan ang bili sa lawak nagdugang.

Markov nga modelo

Unsa kaha kung gigamit namon ang nakolekta nga datos aron makahimo mga panagna? Kung mahinumduman namo ang matag kwarto nga among makita ang magdudula sulod sa usa ka piho nga yugto sa panahon, among matagna kung asa nga kwarto ang mahimong adtoan sa magdudula. Pinaagi sa pagsubay ug pagrekord sa mga lihok sa magdudula tabok sa mga lawak (mga bili), kita makatagna niini.

Magkuha kita og tulo ka mga lawak: pula, berde ug asul. Ug usab ang mga obserbasyon nga among girekord samtang nagtan-aw sa sesyon sa dula:

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Ang gidaghanon sa mga obserbasyon sa matag kwarto halos managsama - wala gihapon kami mahibal-an kung asa maghimo usa ka maayong lugar alang sa usa ka ambus. Ang pagkolekta sa mga estadistika komplikado usab sa pag-respawning sa mga magdudula, nga parehas nga makita sa tibuuk nga mapa. Apan ang datos bahin sa sunod nga kwarto nga ilang gisudlan pagkahuman sa pagpakita sa mapa mapuslanon na.

Makita nga ang berde nga kwarto nahiangay sa mga magdudula - kadaghanan sa mga tawo mibalhin gikan sa pula nga kwarto ngadto niini, 50% kanila nagpabilin didto. Ang asul nga lawak, sa kasukwahi, dili popular; halos walay usa nga moadto niini, ug kung buhaton nila, dili sila magdugay.

Apan ang datos nagsulti kanato sa usa ka butang nga mas importante - kung ang usa ka magdudula naa sa usa ka asul nga kwarto, ang sunod nga kwarto nga atong makita kaniya mahimong pula, dili berde. Bisan kung ang berde nga kwarto mas popular kaysa pula nga kwarto, ang sitwasyon mausab kung ang magdudula naa sa asul nga kwarto. Ang sunod nga estado (pananglitan, ang kwarto nga adtoan sa magdudula) nagdepende sa miaging estado (ie ang kwarto nga naa karon sa magdudula). Tungod kay nagsuhid kami sa mga dependency, maghimo kami nga mas tukma nga mga panagna kaysa kung mag-ihap lang kami sa mga obserbasyon nga independente.

Ang pagtagna sa umaabot nga estado base sa datos gikan sa nangaging estado gitawag ug Markov model, ug ang maong mga pananglitan (nga adunay mga lawak) gitawag ug Markov chains. Tungod kay ang mga sumbanan nagrepresentar sa kalagmitan sa mga pagbag-o tali sa sunud-sunod nga mga estado, kini makita nga gipakita ingon mga FSM nga adunay posibilidad sa matag transisyon. Kaniadto, gigamit namon ang FSM aron magrepresentar sa kahimtang sa pamatasan nga naa sa usa ka ahente, apan kini nga konsepto moabut sa bisan unsang estado, kung kini adunay kalabotan sa ahente o dili. Sa kini nga kaso, ang mga estado nagrepresentar sa kwarto nga giokupar sa ahente:

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Kini usa ka yano nga paagi sa pagrepresentar sa relatibong posibilidad sa mga pagbag-o sa estado, nga naghatag sa AI sa pipila ka abilidad sa pagtagna sa sunod nga estado. Mahimo nimong mapaabut ang daghang mga lakang sa unahan.

Kung ang usa ka magdudula naa sa berde nga kwarto, adunay 50% nga posibilidad nga magpabilin siya didto sa sunod nga higayon nga siya maobserbahan. Apan unsa ang mga kahigayonan nga naa gihapon siya bisan pagkahuman? Dili lamang adunay kahigayonan nga ang magdudula magpabilin sa berdeng lawak human sa duha ka obserbasyon, apan adunay kahigayonan usab nga siya mibiya ug mibalik. Ania ang bag-ong lamesa nga gikonsiderar ang bag-ong datos:

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod

Kini nagpakita nga ang kahigayonan nga makita ang magdudula sa berdeng lawak human sa duha ka obserbasyon mahimong katumbas sa 51% - 21% nga siya gikan sa pula nga lawak, 5% kanila nga ang magdudula mobisita sa asul nga lawak tali kanila, ug 25% nga ang magdudula dili mobiya sa berde nga kwarto.

Ang lamesa usa lamang ka biswal nga himan - ang pamaagi nagkinahanglan lamang sa pagpadaghan sa mga kalagmitan sa matag lakang. Kini nagpasabut nga mahimo nimong tan-awon ang umaabot nga adunay usa ka caveat: among gihunahuna nga ang higayon nga makasulod sa usa ka kwarto nagdepende sa tibuuk nga kwarto. Gitawag kini nga Markov Property - ang umaabot nga estado nagdepende lamang sa karon. Apan dili kini siyento porsiyento nga tukma. Ang mga magdudula mahimong magbag-o sa mga desisyon depende sa ubang mga hinungdan: lebel sa kahimsog o kantidad sa mga bala. Tungod kay wala namo girekord kini nga mga kantidad, ang among mga panagna mahimong dili kaayo tukma.

N-Gram

Unsa man ang bahin sa pananglitan sa usa ka dula nga away ug pagtagna sa mga lihok sa kombo sa magdudula? Parehas! Apan imbes sa usa ka estado o panghitabo, atong susihon ang tibuok nga mga han-ay nga naglangkob sa usa ka combo strike.

Usa ka paagi sa pagbuhat niini mao ang pagtipig sa matag input (sama sa Kick, Punch o Block) sa usa ka buffer ug isulat ang tibuok buffer isip usa ka panghitabo. Mao nga ang magdudula balik-balik nga gipugos ang Kick, Kick, Punch aron magamit ang pag-atake sa SuperDeathFist, ang sistema sa AI nagtipig sa tanan nga mga input sa usa ka buffer ug nahinumdom sa katapusang tulo nga gigamit sa matag lakang.

Giunsa paghimo ang usa ka gaming AI: usa ka giya alang sa mga nagsugod
(Ang mga linya sa bold mao ang kung ang magdudula maglansad sa pag-atake sa SuperDeathFist.)

Makita sa AI ang tanan nga mga kapilian kung gipili sa magdudula ang Kick, gisundan sa lain nga Kick, ug dayon namatikdan nga ang sunod nga input kanunay nga Punch. Magtugot kini sa ahente nga matagna ang combo nga paglihok sa SuperDeathFist ug babagan kini kung mahimo.

Kini nga mga han-ay sa mga panghitabo gitawag nga N-grams, diin ang N mao ang gidaghanon sa mga elemento nga gitipigan. Sa miaging pananglitan kini usa ka 3-gramo (trigram), nga nagpasabot: ang unang duha ka entri gigamit sa pagtagna sa ikatulo. Sumala niana, sa usa ka 5-gramo, ang unang upat ka entries nagtagna sa ikalima ug uban pa.

Kinahanglang pilion pag-ayo sa tigdesinyo ang gidak-on sa N-grams. Ang mas gamay nga N nagkinahanglan og gamay nga memorya apan nagtipig usab og gamay nga kasaysayan. Pananglitan, ang usa ka 2-gramo (bigram) magrekord sa Kick, Kick o Kick, Punch, apan dili makatipig sa Kick, Kick, Punch, aron ang AI dili motubag sa SuperDeathFist combo.

Sa laing bahin, ang mas daghang numero nanginahanglan dugang nga panumduman ug ang AI mas lisud sa pagbansay tungod kay adunay daghang posible nga kapilian. Kung ikaw adunay tulo ka posible nga mga input sa Kick, Punch o Block, ug migamit kami og 10-gram, kana mga 60 ka libo nga lainlaing mga kapilian.

Ang modelo sa bigram usa ka yano nga kadena sa Markov - ang matag pares sa miaging estado/kasamtangan nga estado usa ka bigram, ug mahimo nimong matagna ang ikaduha nga estado base sa una. Ang 3-gramo ug mas dako nga N-grams mahimo usab nga isipon nga mga kadena sa Markov, diin ang tanan nga mga elemento (gawas sa katapusan sa N-gram) maghiusa nga nagporma sa una nga estado ug ang katapusan nga elemento ang ikaduha. Ang panig-ingnan sa dula sa away nagpakita sa kahigayonan sa pagbalhin gikan sa estado sa Kick ug Kick ngadto sa estado sa Kick and Punch. Pinaagi sa pagtratar sa daghang mga entry sa kasaysayan sa input isip usa ka yunit, kita sa esensya nagbag-o sa input sequence ngadto sa bahin sa tibuok estado. Naghatag kini kanamo sa kabtangan sa Markov, nga nagtugot kanamo sa paggamit sa mga kadena sa Markov aron matagna ang sunod nga input ug tag-an kung unsa ang sunod nga paglihok sa kombo.

konklusyon

Naghisgut kami mahitungod sa labing komon nga mga himan ug mga pamaagi sa pagpalambo sa artificial intelligence. Gitan-aw usab namo ang mga sitwasyon diin kini kinahanglan nga gamiton ug kung diin kini ilabi na nga mapuslanon.

Kini kinahanglan nga igo aron masabtan ang mga sukaranan sa dula AI. Apan, siyempre, kini dili tanan nga mga pamaagi. Dili kaayo popular, apan dili kaayo epektibo naglakip sa:

  • optimization algorithms lakip na ang pagsaka sa bungtod, gradient descent ug genetic algorithms
  • adversarial search/scheduling algorithms (minimax ug alpha-beta pruning)
  • mga pamaagi sa pagklasipikar (perceptrons, neural network ug support vector machines)
  • sistema alang sa pagproseso sa mga ahente sa panglantaw ug panumduman
  • mga pamaagi sa arkitektura sa AI (hybrid system, subset nga mga arkitektura ug uban pang mga paagi sa pag-overlay sa mga sistema sa AI)
  • mga gamit sa animation (pagplano ug koordinasyon sa paglihok)
  • performance factor (ang-ang sa detalye, bisan kanus-a, ug timeslicing algorithms)

Mga kapanguhaan sa online sa hilisgutan:

1. Ang GameDev.net adunay seksyon nga adunay mga artikulo ug mga panudlo sa AIUg ang forum.
2. AiGameDev.com naglangkob sa daghang mga presentasyon ug mga artikulo sa usa ka halapad nga mga hilisgutan nga may kalabutan sa pagpalambo sa dula sa AI.
3. Ang GDC Vault naglakip sa mga hilisgutan gikan sa GDC AI Summit, nga daghan niini anaa nga libre.
4. Ang mapuslanon nga mga materyales makita usab sa website AI Game Programmers Guild.
5. Si Tommy Thompson, AI researcher ug game developer, naghimog mga video sa YouTube AI ug Dula nga adunay katin-awan ug pagtuon sa AI sa mga dula nga komersyal.

Mga libro sa hilisgutan:

1. Ang serye sa mga libro sa Game AI Pro maoy mga koleksiyon sa mugbong mga artikulo nga nagpatin-aw kon unsaon pagpatuman ang espesipikong mga bahin o unsaon pagsulbad ang mga piho nga problema.

Game AI Pro: Nakolekta nga Kaalam sa Game AI Professionals
Game AI Pro 2: Nakolekta nga Kaalam sa Game AI Professionals
Game AI Pro 3: Nakolekta nga Kaalam sa Game AI Professionals

2. AI Game Programming Wisdom series mao ang gisundan sa Game AI Pro series. Naglangkob kini sa mas daan nga mga pamaagi, apan hapit tanan adunay kalabotan bisan karon.

AI Game Programming Wisdom 1
AI Game Programming Wisdom 2
AI Game Programming Wisdom 3
AI Game Programming Wisdom 4

3. Artipisyal nga Kaalam: Usa ka Modernong Pamaagi mao ang usa sa mga sukaranan nga mga teksto alang sa tanan nga gusto nga masabtan ang kinatibuk-ang natad sa artipisyal nga paniktik. Dili kini usa ka libro bahin sa pagpalambo sa dula - kini nagtudlo sa mga sukaranan sa AI.

Source: www.habr.com

Idugang sa usa ka comment