Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Ndinakumana ndi zinthu zosangalatsa zanzeru zopangira masewera. Ndi mafotokozedwe azinthu zoyambira za AI pogwiritsa ntchito zitsanzo zosavuta, ndipo mkati mwake muli zida zambiri zothandiza ndi njira zopangira bwino komanso kapangidwe kake. Momwe, malo ndi nthawi yogwiritsira ntchito ziliponso.

Zitsanzo zambiri zalembedwa mu pseudocode, kotero palibe chidziwitso chapamwamba cha mapulogalamu chomwe chikufunika. Pansi pa odulidwa pali mapepala a 35 omwe ali ndi zithunzi ndi ma gif, choncho konzekerani.

UPD. Ndipepesa, koma ndamasulira kale nkhaniyi pa Habré PatientZero. Mukhoza kuwerenga Baibulo lake apa, koma pazifukwa zina nkhaniyo inandidutsa (ndinagwiritsa ntchito kufufuza, koma chinachake chinalakwika). Ndipo popeza ndikulemba pa blog yoperekedwa ku chitukuko cha masewera, ndinaganiza zosiya kumasulira kwanga kwa olembetsa (mfundo zina zimapangidwira mosiyana, zina zinasiyidwa mwadala pa malangizo a opanga).

Kodi AI ndi chiyani?

Game AI imayang'ana kwambiri zomwe chinthu chiyenera kuchita potengera momwe chilili. Izi zimatchedwa kasamalidwe ka "intelligent agent", pomwe wothandizira ndi munthu wosewera, galimoto, bot, kapena nthawi zina zosamveka: gulu lonse la mabungwe kapena chitukuko. M’chochitika chirichonse, ndi chinthu chimene chiyenera kuona malo ake, kupanga zosankha mogwirizana ndi icho, ndi kuchita mogwirizana ndi iwo. Izi zimatchedwa Sense/Think/Act cycle:

  • Lingaliro: Wothandizira amapeza kapena amalandira chidziwitso cha zinthu zomwe zili m'malo mwake zomwe zingakhudze machitidwe ake (zowopsa zomwe zili pafupi, zinthu zoti atole, malo osangalatsa oti afufuze).
  • Ganizirani: Wothandizira asankha momwe achitire (aganizire ngati kuli kotetezeka kusonkhanitsa zinthu kapena kumenyana kapena kubisala kaye).
  • Chitani: wothandizira amachitapo kanthu kuti akwaniritse zomwe adaganiza kale (akuyamba kupita kwa mdani kapena chinthu).
  • ... tsopano zinthu zasintha chifukwa cha zochita za otchulidwa, kotero kuzungulira kumabwereza ndi deta yatsopano.

AI imakonda kuyang'ana kwambiri gawo la Sense la loop. Mwachitsanzo, magalimoto odziyimira pawokha amatenga zithunzi za msewu, kuphatikiza ndi radar ndi data ya lidar, ndikutanthauzira. Izi zimachitika makamaka ndi kuphunzira pamakina, komwe kumagwira ntchito zomwe zikubwera ndikuzipereka tanthauzo, kutulutsa zidziwitso zamasinthidwe ngati "pali galimoto ina mayadi 20 patsogolo panu." Izi ndi zomwe zimatchedwa zovuta zamagulu.

Masewera safuna dongosolo lovuta kuti atenge zambiri, popeza zambiri zomwe zili kale ndizofunikira kwambiri. Palibe chifukwa choyendetsa ma aligorivimu ozindikira zithunzi kuti muwone ngati kutsogolo kuli mdani—masewerawa akudziwa kale ndikudyetsa zidziwitsozo popanga zisankho. Chifukwa chake, gawo la Sense la kuzungulira nthawi zambiri limakhala losavuta kuposa gawo la Think and Act.

Zochepa za Game AI

AI ili ndi zoletsa zingapo zomwe ziyenera kuwonedwa:

  • AI sifunikira kuphunzitsidwa pasadakhale, ngati kuti ndi makina ophunzirira makina. Ndizosamveka kulemba neural network panthawi yachitukuko kuti muwunikire osewera masauzande ambiri ndikuphunzira njira yabwino yolimbana nawo. Chifukwa chiyani? Chifukwa masewerawa sanatulutsidwe ndipo palibe osewera.
  • Masewerawa ayenera kukhala osangalatsa komanso ovuta, kotero othandizira asamapeze njira yabwino yolimbana ndi anthu.
  • Ma Agents akuyenera kuyang'ana zenizeni kuti osewera azimva ngati akusewera ndi anthu enieni. Pulogalamu ya AlphaGo idapambana anthu, koma masitepe omwe adasankhidwa anali kutali kwambiri ndi kumvetsetsa kwamasewera. Ngati masewerawa akutsanzira mdani wamunthu, kumverera uku sikuyenera kukhalapo. Algorithm iyenera kusinthidwa kuti ipange zisankho zomveka osati zabwino.
  • AI iyenera kugwira ntchito munthawi yeniyeni. Izi zikutanthauza kuti ma aligorivimu sangathe kulamulira kugwiritsidwa ntchito kwa CPU kwa nthawi yayitali kuti apange zisankho. Ngakhale ma milliseconds 10 ndiatali kwambiri, chifukwa masewera ambiri amangofunika 16 mpaka 33 milliseconds kuti achite zonse ndikusunthira ku chithunzi chotsatira.
  • Momwemo, gawo limodzi la dongosololi liyenera kukhala loyendetsedwa ndi deta, kotero kuti osagwiritsa ntchito ma coders akhoza kusintha ndikusintha mwamsanga.

Tiyeni tiwone njira za AI zomwe zimazungulira kuzungulira kwa Sense / Ganizirani / Kuchita.

Kupanga zisankho zofunika

Tiyeni tiyambe ndi masewera osavuta - Pong. Cholinga: sunthani chopalasacho kuti mpirawo udumphe m'malo mowuluka modutsa. Zili ngati tennis, komwe mumataya ngati simukumenya mpira. Apa AI ili ndi ntchito yosavuta - kusankha njira yosunthira nsanja.

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Mawu ovomerezeka

Kwa AI ku Pong, yankho lodziwikiratu ndikuyesera nthawi zonse kuyika nsanja pansi pa mpira.

Algorithm yosavuta ya izi, yolembedwa mu pseudocode:

chimango / zosintha zilizonse pamene masewera akuyenda:
ngati mpira uli kumanzere kwa paddle:
sunthani chopalasa kumanzere
kwina ngati mpira uli kumanja kwa paddle:
sunthani chopalasa kumanja

Ngati nsanja imayenda pa liwiro la mpira, ndiye kuti iyi ndiye njira yabwino ya AI ku Pong. Palibe chifukwa chovutira chilichonse ngati palibe zambiri komanso zochita zotheka kwa wothandizirayo.

Njirayi ndiyosavuta kotero kuti kuzungulira kwa Sense / Ganizirani / Kuchita sikukuwoneka bwino. Koma alipo:

  • Gawo la Sense lili pawiri ngati ziganizo. Masewerawa amadziwa komwe kuli mpira komanso komwe nsanja ili, kotero AI imayang'ana kwa izo kuti idziwe.
  • Ganizirani gawo likuphatikizidwanso mu ziwirizo ngati ziganizo. Iwo ali ndi njira ziwiri zothanirana ndi vutoli, zomwe ndi zosiyana. Zotsatira zake, chimodzi mwazochita zitatu chimasankhidwa - kusuntha nsanja kumanzere, kusunthira kumanja, kapena osachita chilichonse ngati ili kale bwino.
  • Gawo la Act likupezeka mu mawu a Move Paddle Left ndi Move Paddle Right. Malingana ndi mapangidwe a masewera, amatha kusuntha nsanja nthawi yomweyo kapena pa liwiro linalake.

Njira zoterezi zimatchedwa reactive - pali malamulo osavuta (panthawiyi ngati zonena mu code) zomwe zimatengera momwe dziko lilili ndikuchitapo kanthu.

Mtengo wosankha

Chitsanzo cha Pong ndichofanana ndi lingaliro lokhazikika la AI lotchedwa mtengo wachisankho. Algorithm imadutsamo kuti ifike pa "tsamba" -chigamulo cha zomwe mungachite.

Tiyeni tipange chithunzi chamtengo wachigamulo cha algorithm ya nsanja yathu:

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Gawo lirilonse la mtengo limatchedwa node - AI imagwiritsa ntchito chiphunzitso cha graph pofotokoza zomangidwe zotere. Pali mitundu iwiri ya node:

  • Zosankha: kusankha pakati pa njira ziwiri kutengera kuyesa mkhalidwe wina, pomwe njira iliyonse imayimiridwa ngati mfundo yosiyana.
  • Zomaliza: Zochita zomwe zimayimira chigamulo chomaliza.

Algorithm imayambira pa mfundo yoyamba ("muzu" wa mtengo). Imapanga chisankho chokhudza mfundo yamwana yopitako, kapena imachita zomwe zasungidwa mu node ndikutuluka.

Kodi phindu lokhala ndi mtengo wosankha kuchita ntchito yofananira ndi chiyani m'gawo lapitalo? Pali dongosolo lonse pano pomwe lingaliro lirilonse liri ndi chikhalidwe chimodzi chokha ndi zotsatira ziwiri zomwe zingatheke. Izi zimalola wopanga kupanga AI kuchokera ku data yomwe ikuyimira zisankho mumtengo popanda kuyiyika molimba. Tiyeni tiwone ngati tebulo:

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Pa mbali ya code mudzapeza dongosolo lowerengera zingwe. Pangani mfundo za aliyense wa iwo, gwirizanitsani mfundo za chisankho kutengera ndime yachiwiri, ndi mfundo za ana kutengera ndime yachitatu ndi yachinayi. Mukufunikirabe kukonza zikhalidwe ndi zochita, koma tsopano mapangidwe a masewerawa adzakhala ovuta kwambiri. Apa mukuwonjezera zisankho ndi zochita zina, ndiyeno sinthani AI yonse mwa kungosintha fayilo ya tanthauzo la mtengo. Kenaka, mumasamutsa fayilo kwa wokonza masewera, yemwe angasinthe khalidwe popanda kubwezeretsa masewerawo kapena kusintha code.

Mitengo yosankha ndiyothandiza kwambiri ikangomangidwa yokha kuchokera pazitsanzo zazikulu (mwachitsanzo, pogwiritsa ntchito algorithm ya ID3). Izi zimawapangitsa kukhala chida chothandiza komanso chogwira ntchito kwambiri pakuyika zinthu m'magulu potengera zomwe zapezeka. Komabe, timadutsa njira yosavuta yoti wothandizira asankhe zochita.

Zochitika

Tidasanthula dongosolo lamitengo yosankha yomwe idagwiritsa ntchito zomwe zidalengedweratu ndi zochita. Munthu yemwe akupanga AI amatha kukonza mtengowo momwe angafune, komabe amayenera kudalira coder yemwe adazipanga zonse. Nanga bwanji ngati titha kupatsa wopanga zida zopangira zinthu zawo kapena zochita zawo?

Kuti wopanga mapulogalamu asamalembe khodi ya zomwe Ndi Mpira Wamanzere Wa Paddle ndi Is Ball Right Of Paddle, atha kupanga dongosolo lomwe wopanga angalembe zinthu kuti awone izi. Ndiye deta yamtengo wa chisankho idzawoneka motere:

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Izi ndizofanana ndi zomwe zili patsamba loyamba, koma mayankho mkati mwawo ali ndi ma code awo, monga gawo lokhazikika la if statement. Kumbali ya code, izi zitha kuwerengedwa mugawo lachiwiri lazosankha, koma m'malo moyang'ana momwe mungachitire (Ndi Mpira Wamanzere Wa Paddle), imawunika mawu okhazikika ndikubwezera zowona kapena zabodza molingana. Izi zimachitika pogwiritsa ntchito chilankhulo cha Lua kapena Angelscript. Pogwiritsa ntchito, wokonza akhoza kutenga zinthu mu masewera ake (mpira ndi paddle) ndikupanga zosiyana zomwe zidzakhalapo mu script (ball.position). Komanso, chilankhulo cholembera ndi chosavuta kuposa C ++. Sichifuna gawo lathunthu lophatikiza, chifukwa chake ndilabwino kusintha malingaliro amasewera ndikulola "osakhala ma coder" kuti adzipangire okha ntchito zofunika.

Muchitsanzo chomwe chili pamwambapa, chilankhulo cholembera chimagwiritsidwa ntchito poyesa mawu okhazikika, koma chitha kugwiritsidwanso ntchito pochita. Mwachitsanzo, data Move Paddle Right ikhoza kukhala script statement (ball.position.x += 10). Kotero kuti zochitazo zikufotokozedwanso mu script, popanda kufunikira kwa pulogalamu ya Move Paddle Right.

Mutha kupitanso patsogolo ndikulemba mtengo wonse wachisankho muchilankhulo cholembera. Ichi chidzakhala code mu mawonekedwe a hardcoded ziganizo zovomerezeka, koma zidzakhala mu mafayilo akunja a script, ndiko kuti, akhoza kusinthidwa popanda kubwezeretsa pulogalamu yonse. Nthawi zambiri mutha kusintha fayilo ya script panthawi yamasewera kuti muyese mwachangu machitidwe osiyanasiyana a AI.

Yankho la Zochitika

Zitsanzo pamwambapa ndi zabwino kwa Pong. Amayendetsa mosalekeza kuzungulira kwa Sense/Ganizirani/Chitanipo kanthu ndikuchita motengera momwe dziko lilili posachedwapa. Koma m'masewera ovuta kwambiri muyenera kuchitapo kanthu pazochitika zapayekha, osati kuwunika zonse nthawi imodzi. Pong mu nkhani iyi kale chitsanzo choipa. Tiyeni tisankhe ina.

Tangoganizani wowombera pomwe adani sasuntha mpaka atazindikira wosewerayo, pambuyo pake amachita zinthu motengera "katswiri" wawo: wina adzathamangira "kuthamangira", wina adzaukira kutali. Akadali kachitidwe koyambira - "ngati wosewera awonedwa, chitanipo kanthu" - koma atha kugawika kukhala chochitika chowoneka ndi Player ndi Reaction (sankhani yankho ndikuchichita).

Izi zimatibweretsanso ku Sense / Ganizirani / Kuchita zinthu. Titha kuyika gawo la Sense lomwe limayang'ana chimango chilichonse ngati AI amawona wosewera. Ngati sichoncho, palibe chomwe chimachitika, koma ngati chikuwona, ndiye kuti chochitika cha Player Seen chimapangidwa. Khodiyo idzakhala ndi gawo lina lomwe limati "chochitika cha Player Seen chikachitika, chitani" yankho lomwe muyenera kuthana nalo ndi Ganizirani ndi Kuchita zinthu. Chifukwa chake, mukhazikitsa zomwe zimachitika pazochitika za Player Seen: kwa munthu "wothamanga" - ChargeAndAttack, ndi sniper - HideAndSnipe. Maubwenzi awa atha kupangidwa mu fayilo ya data kuti musinthe mwachangu popanda kubwezanso. Chilankhulo cholembera chingagwiritsidwe ntchito panonso.

Kupanga zisankho zovuta

Ngakhale machitidwe osavuta amachitidwe ndi amphamvu kwambiri, pali zochitika zambiri zomwe sizokwanira. Nthawi zina mumayenera kupanga zisankho zosiyanasiyana kutengera zomwe wothandizira akuchita pano, koma ndizovuta kulingalira izi ngati chikhalidwe. Nthawi zina pamakhala zinthu zambiri kuti ziwayimire bwino mumtengo kapena script. Nthawi zina mumayenera kuunikiratu mmene zinthu zidzasinthira musanasankhe zochita. Pakufunika njira zotsogola kwambiri zothetsera mavutowa.

Finite state makina

Finite state machine kapena FSM (finite state machine) ndi njira yolankhulira kuti wothandizila wathu pakali pano ali m'modzi mwa mayiko angapo, ndipo akhoza kusintha kuchokera kudera lina kupita ku lina. Pali chiwerengero china cha maiko oterowo—ndicho dzina lake. Chitsanzo chabwino kwambiri pa moyo ndi kuwala kwa magalimoto. Pali mitundu yosiyanasiyana ya magetsi m'malo osiyanasiyana, koma mfundo ndi yofanana - boma lililonse likuyimira chinachake (kuyimitsa, kuyenda, etc.). Magetsi oyendera magalimoto amakhala m'dera limodzi nthawi iliyonse, ndipo amayenda kuchokera kumodzi kupita ku imzake kutengera malamulo osavuta.

Ndi nkhani yofanana ndi ma NPC mumasewera. Mwachitsanzo, tiyeni titenge mlonda wokhala ndi mawu awa:

  • Kulondera.
  • Kuwukira.
  • Kuthawa.

Ndipo mikhalidwe iyi yosinthira mkhalidwe wake:

  • Mlonda akawona mdaniyo, amamuukira.
  • Mlonda akaukira koma osawaonanso adani, amabwerera kukalondera.
  • Mlonda akaukira koma avulala kwambiri, amathawa.

Mukhozanso kulemba ngati-ziganizo ndi zosintha za boma ndi macheke osiyanasiyana: kodi pali mdani pafupi, mlingo waumoyo wa NPC ndi wotani, ndi zina zotero. Tiyeni tiwonjezere zina zingapo:

  • Idleness - pakati pa kulondera.
  • Kusaka - pamene mdani wamawanga wasowa.
  • Kupeza Thandizo - pamene mdani awonedwa, koma ali wamphamvu kwambiri kuti amenyane naye yekha.

Chisankho cha aliyense wa iwo ndi chochepa - mwachitsanzo, mlonda sadzapita kukafunafuna mdani wobisika ngati ali ndi thanzi labwino.

Kupatula apo, pali mndandanda waukulu wa "ngati" , Kuti " Zitha kukhala zovuta kwambiri, chifukwa chake tiyenera kukhazikitsa njira yomwe imatilola kuti tizikumbukira maiko ndi kusintha pakati pa mayiko. Kuti tichite izi, timaganizira za mayiko onse, ndipo pansi pa dziko lililonse timalemba mndandanda wa kusintha kwa mayiko ena, pamodzi ndi zofunikira kwa iwo.

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Ili ndi tebulo la kusintha kwa boma - njira yokwanira yoyimira FSM. Tiyeni tijambule chithunzi ndikuwona mwachidule momwe machitidwe a NPC amasinthira.

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Chithunzichi chikuwonetsa kufunikira kopanga zisankho za wothandizirayo kutengera momwe zinthu ziliri pano. Komanso, muvi uliwonse umasonyeza kusintha pakati pa mayiko ngati zomwe zili pafupi ndi izo ziri zoona.

Kusintha kulikonse timayang'ana momwe wothandizila alili, kuyang'ana mndandanda wa zosinthika, ndipo ngati zosinthazo zakwaniritsidwa, zimavomereza dziko latsopano. Mwachitsanzo, chimango chilichonse chimayang'ana ngati chowerengera cha 10-sekondi chatha, ndipo ngati ndi choncho, mlonda amachoka ku Idling kupita ku Patrolling. Momwemonso, boma la Attacking limayang'ana thanzi la wothandizira - ngati liri lochepa, ndiye kuti limalowa mu Kuthawa.

Uku ndikuthana ndi kusintha pakati pa mayiko, koma bwanji za machitidwe okhudzana ndi mayiko omwe? Pakukhazikitsa machitidwe enieni a dziko linalake, pali mitundu iwiri ya "mbeza" pomwe timagawira zochita ku FSM:

  • Zochita zomwe timachita nthawi ndi nthawi m'malo apano.
  • Zomwe timachita tikamachoka kudera lina kupita ku lina.

Zitsanzo za mtundu woyamba. Boma Lolondera lisuntha wothandizira panjira yolondera chimango chilichonse. Boma la Attacking liyesa kuyambitsa kuwukira chimango chilichonse kapena kusintha kupita kudera lomwe izi zingatheke.

Kwa mtundu wachiwiri, lingalirani za kusinthako "ngati mdani akuwoneka ndipo mdaniyo ali wamphamvu kwambiri, ndiye pitani ku Kupeza Thandizo boma. Wothandizira ayenera kusankha komwe angapite kuti akathandizidwe ndikusunga chidziwitsochi kuti gawo lopeza Thandizo lidziwe komwe angapite. Thandizo likapezeka, wothandizira amabwerera ku boma la Attacking. Panthawiyi, adzafuna kuuza mnzake za chiwopsezocho, kotero kuti chidziwitso cha NotifyFriendOfThreat chikhoza kuchitika.

Apanso, titha kuyang'ana dongosololi kudzera m'mawonekedwe a Sense / Think/Act cycle. Sense imayikidwa mu data yomwe imagwiritsidwa ntchito ndikusintha kwamalingaliro. Ganizirani - zosintha zomwe zilipo m'chigawo chilichonse. Ndipo Act imachitika ndi zochita zomwe zimachitika nthawi ndi nthawi mkati mwa boma kapena pakusinthana pakati pa mayiko.

Nthawi zina kusintha kopitilira muyeso kumatha kukhala kokwera mtengo. Mwachitsanzo, ngati wothandizira aliyense awerengera zovuta chimango chilichonse kuti adziwe ngati angawone adani ndikumvetsetsa ngati angasinthe kuchoka ku Patrolling kupita ku Attacking state, izi zitenga nthawi yambiri ya CPU.

Zosintha zofunika kwambiri mdziko lapansi zitha kuganiziridwa ngati zochitika zomwe zidzakonzedwa pamene zikuchitika. M'malo mwa FSM kuyang'ana kusintha "kodi wothandizila angamuwone wosewera?" chimango chilichonse, dongosolo lapadera likhoza kukhazikitsidwa kuti liyang'ane mobwerezabwereza (mwachitsanzo nthawi 5 pa sekondi iliyonse). Ndipo zotsatira zake ndikutulutsa Player Kuwoneka cheke chikadutsa.

Izi zimaperekedwa ku FSM, yomwe iyenera tsopano kupita ku chochitika cha Player Seen cholandira chikhalidwe ndikuyankha moyenera. Zotsatira zake ndi zofanana kupatula kuchedwa kosadziwika bwino musanayankhe. Koma magwiridwe antchito ayenda bwino chifukwa cholekanitsa gawo la Sense kukhala gawo lina la pulogalamuyo.

Hierarchical finite state makina

Komabe, kugwira ntchito ndi ma FSM akuluakulu sikophweka nthawi zonse. Ngati tikufuna kukulitsa dziko lachiwonongeko kuti tisiyanitse MeleeAttacking ndi RangedAttacking, tidzasintha kusintha kuchokera ku mayiko ena onse omwe amapita ku Attacking state (pano ndi mtsogolo).

Mwinamwake mwawona kuti mu chitsanzo chathu pali zambiri zobwerezabwereza zosintha. Zosintha zambiri m'chigawo cha Idling ndizofanana ndi zosintha za Patrolling state. Zingakhale zabwino kuti tisabwerezenso, makamaka ngati tiwonjezera maiko ena ofanana. Ndizomveka kuyika gulu la Idling ndi Patrolling pansi pa zilembo za "non-combat", pomwe pali njira imodzi yokha yosinthira kulimbana ndi mayiko. Ngati tilingalira za chizindikirochi ngati dziko, ndiye kuti Idling ndi Patrolling amakhala madera. Chitsanzo chogwiritsa ntchito tebulo losiyana la kusintha kwa malo atsopano osamenya nkhondo:

Mayiko akuluakulu:
Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Ndasiya kumenya nkhondo:
Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Ndipo mu mawonekedwe a chithunzi:

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Ndi dongosolo lomwelo, koma ndi dziko latsopano losakhala lankhondo lomwe limaphatikizapo Idling ndi Patrolling. Ndi dziko lililonse lomwe lili ndi FSM yokhala ndi zigawo (ndi zigawozi, zomwe zimakhala ndi FSMs zawo - ndi zina zotero kwa nthawi yonse yomwe mukufunikira), timapeza Hierarchical Finite State Machine kapena HFSM (makina apamwamba a boma). Poika m'magulu osagwirizana ndi nkhondo, timadula masinthidwe ochulukirapo. Titha kuchitanso chimodzimodzi kumayiko atsopano omwe ali ndi masinthidwe wamba. Mwachitsanzo, ngati m'tsogolomu tidzakulitsa dziko la Attacking ku mayiko a MeleeAttacking ndi MissileAttacking, iwo adzakhala malo omwe amasinthana pakati pawo kutengera mtunda wopita kwa mdani ndi kupezeka kwa ammo. Zotsatira zake, machitidwe ovuta ndi machitidwe ang'onoang'ono amatha kuimiridwa ndi kusintha kochepa kobwerezabwereza.

Mtengo wamakhalidwe

Ndi HFSM, machitidwe ophatikizika ovuta amapangidwa m'njira yosavuta. Komabe, pali zovuta pang'ono kuti kupanga zisankho mumtundu wa malamulo osinthira kumagwirizana kwambiri ndi zomwe zikuchitika masiku ano. Ndipo m’masewera ambiri izi n’zimene zimafunika. Ndipo kugwiritsa ntchito mosamala maulamuliro a boma kumatha kuchepetsa kuchuluka kwa kubwereza kwa kusintha. Koma nthawi zina mumafunika malamulo omwe amagwira ntchito mosasamala kanthu za dziko limene muli, kapena amene amagwira ntchito pafupifupi m’chigawo chilichonse. Mwachitsanzo, ngati thanzi la wothandizira litsikira ku 25%, mudzafuna kuti athawe mosasamala kanthu kuti anali pankhondo, osagwira ntchito, kapena akuyankhula - muyenera kuwonjezera vutoli ku boma lililonse. Ndipo ngati mlengi wanu pambuyo pake akufuna kusintha gawo lotsika la thanzi kuchokera ku 25% mpaka 10%, ndiye kuti izi ziyenera kuchitidwanso.

Momwemo, izi zimafuna dongosolo lomwe zisankho za "dziko lomwe liyenera kukhala" zili kunja kwa mayiko omwewo, kuti asinthe malo amodzi okha osati kukhudza kusintha. Mitengo yamakhalidwe ikuwonekera apa.

Pali njira zingapo zowakhazikitsira, koma tanthauzo lake ndi lofanana kwa onse ndipo likufanana ndi mtengo wosankha: algorithm imayamba ndi mfundo ya "mizu", ndipo mtengowo uli ndi mfundo zomwe zimayimira zisankho kapena zochita. Pali zosiyana zingapo zazikulu ngakhale:

  • Ma Node tsopano abwereranso chimodzi mwazinthu zitatu: Zapambana (ngati ntchitoyo yatha), Yalephera (ngati siyingayambike), kapena Kuthamanga (ngati ikugwirabe ntchito ndipo palibe chotsatira chomaliza).
  • Palibenso mfundo zoti musankhe pakati pa njira ziwiri. M'malo mwake, ndi Decorator node, yomwe ili ndi mfundo imodzi yamwana. Ngati Apambana, amapha mwana wawo yekhayo.
  • Node zomwe zimagwira ntchito zimabweretsa mtengo Wothamanga kuti uwonetsere zomwe zikuchitika.

Chigawo chaching'ono ichi cha node chikhoza kuphatikizidwa kuti apange chiwerengero chachikulu cha makhalidwe ovuta. Tiyeni tiyerekeze mlonda wa HFSM kuchokera ku chitsanzo chapitacho ngati mtengo wamakhalidwe:

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Ndi dongosololi sikuyenera kukhala kusintha koonekeratu kuchoka ku Idling/Patrolling States kupita ku Attacking kapena mayiko ena aliwonse. Ngati mdani akuwoneka ndipo thanzi la munthuyo liri lotsika, kuphedwa kumayima pa Node Yothawa, mosasamala kanthu kuti ndi njira iti yomwe idachitidwapo kale - Kuyenda, Kuyimitsa, Kuukira, kapena china chilichonse.

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Mitengo yamakhalidwe ndi yovuta-pali njira zambiri zopangira izo, ndipo kupeza kuphatikiza koyenera kwa okongoletsa ndi ma node apawiri kungakhale kovuta. Palinso mafunso okhudza kangati kuti tiyang'ane mtengo - kodi tikufuna kudutsa gawo lililonse la izo kapena pokhapokha ngati chimodzi mwazinthu zasintha? Kodi timasunga bwanji malo okhudzana ndi ma node - timadziwa bwanji titakhala masekondi 10, kapena timadziwa bwanji kuti ndi ma node ati omwe anali kuchita nthawi yatha kuti tithe kukonza zotsatizanazi moyenera?

Ichi ndichifukwa chake pali zambiri zokhazikitsidwa. Mwachitsanzo, makina ena alowa m'malo mwa zokongoletsa ndi zokongoletsa zamkati. Amawunikidwanso mtengowo pamene zokongoletsa zikusintha, kuthandizira kujowina node, ndikupereka zosintha pafupipafupi.

Dongosolo lothandizira

Masewera ena amakhala ndi zimango zosiyanasiyana. Ndikofunikira kuti alandire ubwino wonse wa malamulo osavuta komanso osinthika, koma osati mwa mawonekedwe a mtengo wathunthu wa khalidwe. M'malo mokhala ndi zosankha zomveka bwino kapena mtengo wa zochita zomwe zingatheke, zimakhala zosavuta kufufuza zochita zonse ndikusankha zoyenera kwambiri panthawiyi.

Dongosolo lokhazikitsidwa ndi Utility lithandizira izi. Iyi ndi njira yomwe wothandizira amakhala ndi zochita zosiyanasiyana ndikusankha zomwe angachite potengera zofunikira za aliyense. Kumene zofunikira zili muyeso waposachedwa wa kufunika kapena kofunikira kuti wothandizira achite izi.

Zomwe zimagwiritsidwa ntchito powerengera zomwe zikuchitika malinga ndi momwe zilili komanso chilengedwe, wothandizira akhoza kuyang'ana ndikusankha dziko lina loyenera kwambiri nthawi iliyonse. Izi ndizofanana ndi FSM, kupatula pomwe kusintha kumatsimikiziridwa ndi chiyerekezo cha dera lililonse lomwe lingatheke, kuphatikiza lomwe lili pano. Chonde dziwani kuti timasankha chinthu chofunikira kwambiri kuti tipitirize (kapena kukhala ngati tamaliza kale). Kwa mitundu yambiri, izi zitha kukhala zosankhidwa bwino koma mwachisawawa kuchokera pamndandanda wawung'ono.

Dongosololi limapereka kuchuluka kwazinthu zofunikira - mwachitsanzo, kuchokera pa 0 (zosafunikira konse) mpaka 100 (zofunika kotheratu). Chochita chilichonse chimakhala ndi magawo angapo omwe amakhudza kuwerengera kwa mtengowu. Kubwerera ku chitsanzo chathu cha woyang'anira:

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Kusintha pakati pa zochita kumakhala kosamvetsetseka-boma lirilonse likhoza kutsatira lina lililonse. Zofunikira pakuchitapo kanthu zimapezeka m'magawo omwe abwezedwa. Ngati mdani akuwoneka, ndipo mdaniyo ali wamphamvu, ndipo thanzi la khalidweli ndi lochepa, ndiye kuti Kuthawa ndi KupezaHelp kudzabwezeretsanso zikhalidwe zapamwamba zopanda ziro. Pankhaniyi, FindingHelp idzakhala yapamwamba nthawi zonse. Momwemonso, zochitika zosamenya nkhondo sizibwereranso kupitilira 50, kotero nthawi zonse zimakhala zotsika kuposa zankhondo. Muyenera kuganizira izi popanga zochita ndikuwerengera zofunikira zawo.

Muchitsanzo chathu, zochitazo zimabweretsa mtengo wokhazikika kapena chimodzi mwazinthu ziwiri zokhazikika. Dongosolo lowoneka bwino lingabweretse kuyerekeza kuchokera kumagulu osiyanasiyana osalekeza. Mwachitsanzo, Kuthawa kumabweretsanso zinthu zabwino kwambiri ngati thanzi la wothandizirayo liri lotsika, ndipo Attacking action imabweretsa zotsika mtengo ngati mdaniyo ali wamphamvu kwambiri. Chifukwa cha ichi, Kuthawa kuchitapo kanthu kumakhala patsogolo pa Kuukira muzochitika zilizonse pamene wothandizira akuwona kuti alibe thanzi lokwanira kuti agonjetse mdani. Izi zimalola kuti zochita zikhale zofunikira kwambiri potengera chiwerengero chilichonse, zomwe zimapangitsa kuti njirayi ikhale yosinthika komanso yosinthika kusiyana ndi mtengo wamakhalidwe kapena FSM.

Chochita chilichonse chimakhala ndi zinthu zambiri zowerengera pulogalamu. Akhoza kulembedwa m'chinenero cholembera kapena monga masamu angapo. The Sims, yomwe imatsanzira chizolowezi cha tsiku ndi tsiku, imawonjezera mawerengedwe owonjezera - wothandizira amalandira "zolimbikitsa" zingapo zomwe zimakhudza mawerengedwe ogwiritsira ntchito. Ngati munthu ali ndi njala, amamva njala pakapita nthawi, ndipo phindu la EatFood liwonjezeka mpaka wotchulidwayo achite, kuchepetsa njala ndikubwezeretsa mtengo wa EatFood kukhala ziro.

Lingaliro la kusankha zochita potengera ma rating system ndi losavuta, kotero kuti Utility-based system ingagwiritsidwe ntchito ngati gawo la njira zopangira zisankho za AI, m'malo molowa m'malo mwawo. Mtengo wosankha ukhoza kupempha kuti muwunikire ma node awiri a ana ndikusankha yapamwamba. Mofananamo, mtengo wamakhalidwe ukhoza kukhala ndi mfundo zophatikizira za Utility kuti ziwunikire momwe mungagwiritsire ntchito kuti musankhe mwana woti apereke.

Kuyenda ndi kuyenda

M'zitsanzo zam'mbuyomu, tinali ndi nsanja yomwe tinkasunthira kumanzere kapena kumanja, ndi mlonda yemwe amalondera kapena kuwukira. Koma kodi timagwira bwanji ntchito ndi ma agent kwa nthawi yayitali? Kodi timayika bwanji liwiro, timapewa bwanji zopinga, ndipo timakonzekera bwanji njira pamene kukafika komwe tikupita kumakhala kovuta kuposa kungoyenda molunjika? Tiyeni tione izi.

Malamulo

Pachiyambi choyamba, tidzaganiza kuti wothandizira aliyense ali ndi mtengo wothamanga, womwe umaphatikizapo kuthamanga kwake komanso momwe akulowera. Ikhoza kuyesedwa mu mamita pamphindi, makilomita pa ola, ma pixel pamphindi, etc. Kukumbukira Sense / Ganizirani / Act loop, tikhoza kulingalira kuti Ganizirani gawo limasankha liwiro, ndipo Gawo la Act limagwiritsa ntchito liwiro limenelo kwa wothandizira. Nthawi zambiri masewera amakhala ndi fizikisi yomwe imakuchitirani ntchitoyi, kuphunzira kuthamanga kwa chinthu chilichonse ndikuchisintha. Chifukwa chake, mutha kusiya AI ndi ntchito imodzi - kusankha liwiro lomwe wothandizira ayenera kukhala nalo. Ngati mukudziwa komwe wothandizira ayenera kukhala, ndiye kuti muyenera kusuntha njira yoyenera pa liwiro lokhazikika. Equation yocheperako kwambiri:

wishd_travel = destination_position - agent_position

Ingoganizirani dziko la 2D. Wothandizirayo ali pamalo (-2,-2), komwe akupita ali kwinakwake kumpoto chakum'mawa pomwe (30, 20), ndipo njira yofunikira kuti wothandizila akafike kumeneko ndi (32, 22). Tinene kuti malowa amayezedwa m'mamita - ngati titenga liwiro la wothandizira kukhala 5 metres pamphindikati, ndiye kuti tidzakulitsa mayendedwe athu ndikupeza liwiro la pafupifupi (4.12, 2.83). Ndi magawo awa, wothandizira amatha kufika komwe akupita pafupifupi masekondi 8.

Mutha kuwerengeranso ma values ​​nthawi iliyonse. Ngati wothandizirayo anali pakati pa chandamale, kusuntha kudzakhala theka la kutalika, koma popeza liwiro la wothandizira ndi 5 m / s (tinaganiza izi pamwambapa), liwiro lidzakhala lofanana. Izi zimagwiranso ntchito kusuntha zolinga, kulola wothandizira kusintha pang'ono pamene akuyenda.

Koma tikufuna kusinthika kwina - mwachitsanzo, kukulitsa liwiro pang'onopang'ono kuti tiyesere munthu yemwe akuyenda kuchoka pa kuyima kupita ku kuthamanga. Zomwezo zikhoza kuchitika kumapeto musanayime. Izi zimadziwika kuti ndi machitidwe owongolera, omwe ali ndi mayina enieni: Fufuzani, Thawani, Kufika, ndi zina zotero. kuti agwiritse ntchito njira zosiyanasiyana zopitira ku cholinga.

Khalidwe lililonse lili ndi cholinga chosiyana pang'ono. Kufunafuna ndi Kufika ndi njira zosunthira wothandizira kupita komwe akupita. Kupewa Zopinga ndi Kupatukana kusintha kayendedwe ka wothandizira kuti apewe zopinga panjira yopita ku cholinga. Kuyanjanitsa ndi Kugwirizana kumapangitsa othandizira kuyenda limodzi. Makhalidwe osiyanasiyana owongolera amatha kufotokozedwa mwachidule kuti apange vekitala imodzi yoganizira zinthu zonse. Wothandizira yemwe amagwiritsa ntchito machitidwe a Kufika, Kupatukana, ndi Kupewa Zopinga kuti asakhale kutali ndi makoma ndi othandizira ena. Njirayi imagwira ntchito bwino m'malo otseguka popanda zambiri zosafunikira.

M'mikhalidwe yovuta kwambiri, kuwonjezera kwa machitidwe osiyanasiyana kumagwira ntchito moyipa - mwachitsanzo, wothandizira amatha kukakamira khoma chifukwa cha mkangano pakati pa Kufika ndi Kupewa Zopinga. Chifukwa chake, muyenera kuganizira zosankha zomwe zimakhala zovuta kwambiri kuposa kungowonjezera zikhalidwe zonse. Njira ndi iyi: m'malo mowonjezera zotsatira za khalidwe lililonse, mukhoza kuganizira za kuyenda mosiyanasiyana ndikusankha njira yabwino kwambiri.

Komabe, m'malo ovuta omwe ali ndi malekezero akufa komanso zosankha za njira yoti tipite, tidzafunikira china chapamwamba kwambiri.

Kupeza njira

Makhalidwe owongolera ndi abwino kuyenda kosavuta pamalo otseguka (bwalo la mpira kapena bwalo) komwe kuchoka ku A kupita ku B ndi njira yowongoka yokhala ndi zokhota zazing'ono pozungulira zopinga. Panjira zovuta, timafunikira kufufuza njira, yomwe ndi njira yowonera dziko lapansi ndikusankha njira yodutsamo.

Chosavuta ndikuyika gridi pabwalo lililonse pafupi ndi wothandizira ndikuwunika omwe amaloledwa kusuntha. Ngati imodzi mwa izo ndi kopita, tsatirani njira yochokera pabwalo lililonse kupita kumalo am'mbuyomu mpaka mukafike poyambira. Iyi ndi njira. Apo ayi, bwerezani ndondomekoyi ndi mabwalo ena apafupi mpaka mutapeza komwe mukupita kapena mutatha mabwalo (kutanthauza kuti palibe njira yotheka). Izi ndi zomwe zimadziwika kuti Breadth-First Search kapena BFS (breadth-first search algorithm). Pamasitepe aliwonse amayang'ana mbali zonse (motero m'lifupi, "m'lifupi"). Malo ofufuzira ali ngati mafunde omwe amayenda mpaka kukafika pamalo omwe akufunidwa - malo osaka amakula pa sitepe iliyonse mpaka mapeto aphatikizidwa, pambuyo pake akhoza kutsatiridwa kuyambira pachiyambi.

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Zotsatira zake, mudzalandira mndandanda wamabwalo omwe njira yomwe mukufuna imapangidwa. Iyi ndi njira (chifukwa chake, kufufuza njira) - mndandanda wa malo omwe wothandizira adzayendera akutsatira komwe akupita.

Popeza tikudziwa malo a mabwalo aliwonse padziko lapansi, titha kugwiritsa ntchito machitidwe owongolera kuyenda m'njira - kuchokera pa mfundo 1 mpaka 2, kenako kuchokera pa 2 mpaka 3, ndi zina zotero. Njira yosavuta ndiyo kulunjika pakati pa bwalo lotsatira, koma njira yabwinoko ndikuyimitsa pakati pamphepete pakati pa lalikulupo ndi lotsatira. Pachifukwa ichi, wothandizirayo adzatha kudula ngodya zokhotakhota zakuthwa.

BFS algorithm ilinso ndi zovuta - imasanthula mabwalo ambiri munjira "yolakwika" monga "koyenera". Apa ndipamene ma algorithm ovuta kwambiri otchedwa A * (nyenyezi) amayamba. Zimagwira ntchito mofananamo, koma m'malo moyang'ana mwachimbulimbuli mabwalo oyandikana nawo (ndiye oyandikana nawo oyandikana nawo, ndiye oyandikana nawo oyandikana nawo, ndi zina zotero), amasonkhanitsa mfundozo m'ndandanda ndikuzikonza kuti nodi yotsatira ifufuzidwe nthawi zonse. yomwe imatsogolera ku njira yachidule kwambiri. Ma Node amasanjidwa potengera njira yomwe imaganizira zinthu ziwiri - "mtengo" wa njira yongopeka yopita kumalo omwe akufunidwa (kuphatikiza ndalama zilizonse zoyendera) komanso kuyerekezera kuti sikweyayo ili kutali bwanji ndi komwe mukupita (kutengera kusakira komwe mukupita. njira yoyenera).

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Chitsanzochi chikuwonetsa kuti wothandizira amafufuza masikweya amodzi nthawi imodzi, nthawi iliyonse akusankha yoyandikana nayo yomwe ili yodalirika kwambiri. Njira yotsatila ndi yofanana ndi BFS, koma mabwalo ochepera omwe adaganiziridwa panthawiyi - zomwe zimakhudza kwambiri masewera.

Kuyenda popanda grid

Koma masewera ambiri samayikidwa pa gridi, ndipo nthawi zambiri zimakhala zosatheka kutero popanda kusiya zenizeni. Kunyengerera kumafunika. Kodi mabwalo ayenera kukhala saizi yanji? Zazikulu kwambiri ndipo sizingathe kuyimira bwino makonde ang'onoang'ono kapena makhoti, ang'onoang'ono kwambiri ndipo padzakhala mabwalo ambiri oti mufufuze, zomwe zidzatenga nthawi yambiri.

Chinthu choyamba kumvetsetsa ndikuti mauna amatipatsa graph ya node zolumikizidwa. Ma algorithms a A * ndi BFS amagwiradi ntchito pama graph ndipo samasamala za mauna athu konse. Titha kuyika ma node paliponse pamasewera amasewera: bola ngati pali kulumikizana pakati pa mfundo ziwiri zolumikizidwa, komanso pakati pa zoyambira ndi zomaliza komanso osachepera amodzi mwa node, algorithm idzagwira ntchito monga kale. Izi nthawi zambiri zimatchedwa waypoint system, popeza mfundo iliyonse imayimira malo ofunika kwambiri padziko lapansi omwe angakhale mbali ya njira zongopeka.

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene
Chitsanzo 1: mfundo pabwalo lililonse. Kusaka kumayambira pa mfundo yomwe wothandizirayo ali ndipo kumathera pa mfundo ya lalikulu lomwe mukufuna.

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene
Chitsanzo 2: Manodi ang’onoang’ono. Kusaka kumayambira pamalo a wothandizirayo, kumadutsa pamagawo ofunikira, kenako kumapitilira komwe akupita.

Iyi ndi dongosolo losinthika komanso lamphamvu. Koma kusamala kumafunika posankha malo ndi momwe mungayikitsire njira, apo ayi othandizira sangawone malo omwe ali pafupi ndipo sangathe kuyambitsa njirayo. Zingakhale zosavuta ngati titha kungoyika ma waypoints motengera ma geometry a dziko lapansi.

Apa ndipamene ma navigation mesh kapena navmesh (navigation mesh) amawonekera. Izi nthawi zambiri zimakhala 2D mesh ya makona atatu yomwe imakutidwa pa geometry ya dziko - kulikonse komwe wothandizira amaloledwa kuyenda. Iliyonse ya makona atatu mu mauna imakhala mfundo mu graph, ndipo imakhala ndi makona atatu oyandikana omwe amakhala moyandikana ndi graph.

Chithunzichi ndi chitsanzo cha injini ya Unity - idasanthula geometry padziko lapansi ndikupanga navmesh (pazithunzi zowala buluu). Polygon iliyonse mu navmesh ndi malo omwe wothandizira amatha kuyima kapena kusuntha kuchoka pa polygon kupita ku polygon ina. Mu chitsanzo ichi, ma polygons ndi ang'onoang'ono kuposa apansi omwe ali - izi zimachitika kuti aganizire kukula kwa wothandizira, zomwe zidzapitirira kupitirira malo ake.

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Titha kusaka njira yodutsa maunawa, pogwiritsanso ntchito A* algorithm. Izi zidzatipatsa njira yabwino kwambiri padziko lonse lapansi, yomwe imaganizira ma geometry onse ndipo sichifuna ma node osafunikira komanso kupanga ma waypoints.

Kufufuza njira ndi mutu waukulu kwambiri womwe gawo limodzi la nkhani silili lokwanira. Ngati mukufuna kuphunzira mwatsatanetsatane, izi zidzakuthandizani Webusayiti ya Amit Patel.

Kupanga

Taphunzira ndi kufufuza njira kuti nthawi zina sikokwanira kungosankha komwe tikupita ndikuyenda - tiyenera kusankha njira ndikusintha pang'ono kuti tikafike komwe tikufuna. Titha kulinganiza lingaliro ili: kukwaniritsa cholinga si gawo lotsatira chabe, koma mndandanda wonse pomwe nthawi zina muyenera kuyang'ana m'tsogolo masitepe angapo kuti mudziwe chomwe choyamba chiyenera kukhala. Izi zimatchedwa kukonzekera. Kupeza njira kumatha kuganiziridwa ngati imodzi mwazowonjezera zingapo pakukonza. Pakuzungulira kwathu kwa Sense / Ganizirani / Kuchita, apa ndipamene Gawo la Ganizani limakonzekera magawo angapo a mtsogolo.

Tiyeni tiwone chitsanzo cha masewera a board Magic: The Gathering. Timapita koyamba ndi makadi otsatirawa m'manja mwathu:

  • Dambo - Amapereka 1 mana wakuda (land card).
  • Forest - imapereka 1 mana obiriwira (khadi lamtunda).
  • Wizard Wothawa - Pamafunika mana 1 abuluu kuti ayitanitse.
  • Elvish Mystic - Amafunika mana obiriwira kuti ayitanitsa.

Timanyalanyaza makhadi atatu otsala kuti zikhale zosavuta. Malingana ndi malamulo, wosewera mpira amaloledwa kusewera 1 khadi lamtunda pamtundu uliwonse, akhoza "kujambula" khadi ili kuti atenge mana kuchokera pamenepo, kenako amalodza (kuphatikizapo kuitanitsa cholengedwa) malinga ndi kuchuluka kwa mana. Zikatere, wosewera mpira wamunthu amadziwa kusewera Forest, dinani 1 mana obiriwira, kenako ndikuyitanitsa Elvish Mystic. Koma masewera AI angadziwe bwanji izi?

Kukonzekera kosavuta

Njira yaing'ono ndiyo kuyesa chinthu chilichonse motsatizana mpaka palibe oyenerera otsala. Poyang'ana makhadi, AI amawona zomwe Swamp imatha kusewera. Ndipo amasewera. Kodi pali zochita zina zomwe zatsala panjirayi? Sizingatchule Elvish Mystic kapena Fugitive Wizard, chifukwa amafunikira mana obiriwira ndi abuluu motsatana kuti awayitane, pomwe Swamp imangopereka mana wakuda. Ndipo sadzathanso kusewera Forest, chifukwa adasewera kale Swamp. Choncho, masewera AI anatsatira malamulo, koma sanachite bwino. Ikhoza kusinthidwa.

Kukonzekera kungapeze mndandanda wazinthu zomwe zimabweretsa masewerawa kumalo omwe mukufuna. Monga momwe bwalo lililonse panjira linali ndi oyandikana nawo (popeza njira), chilichonse chomwe chili mu dongosolo chimakhalanso ndi oyandikana nawo kapena olowa m'malo. Titha kuyang'ana izi ndi zochita zotsatila mpaka titafika pamalo omwe tikufuna.

Muchitsanzo chathu, zotsatira zomwe tikufuna ndi "kuitana cholengedwa ngati n'kotheka." Kumayambiriro kwa kutembenuka, tikuwona zochitika ziwiri zokha zomwe zimaloledwa ndi malamulo amasewera:

1. Sewerani Swamp (zotsatira: Nthambi mumasewera)
2. Play Forest (zotsatira: Forest in the game)

Chilichonse chomwe chingachitike chikhoza kutsogolera kuzinthu zina ndikutseka ena, kachiwiri malinga ndi malamulo a masewerawo. Tangoganizani kuti tidasewera Swamp - izi zidzachotsa Swamp ngati sitepe yotsatira (tidasewera kale), ndipo izi zidzachotsanso Forest (chifukwa molingana ndi malamulo mutha kusewera khadi imodzi yamtunda panjira iliyonse). Pambuyo pake, AI imawonjezera kupeza 1 mana wakuda ngati sitepe yotsatira chifukwa palibe njira zina. Ngati apita patsogolo ndikusankha Tap the Swamp, adzalandira 1 unit ya black mana ndipo sadzatha kuchita chilichonse.

1. Sewerani Swamp (zotsatira: Nthambi mumasewera)
1.1 Chidambo cha "Tap" (zotsatira: Chidambo "choponyedwa", +1 unit of black mana)
Palibe zochita - END
2. Play Forest (zotsatira: Forest in the game)

Mndandanda wa zochita unali waufupi, tinafika pamapeto. Timabwereza ndondomekoyi pa sitepe yotsatira. Timasewera Forest, tsegulani "kupeza 1 mana obiriwira", omwe adzatsegule chachitatu - itanani Elvish Mystic.

1. Sewerani Swamp (zotsatira: Nthambi mumasewera)
1.1 Chidambo cha "Tap" (zotsatira: Chidambo "choponyedwa", +1 unit of black mana)
Palibe zochita - END
2. Play Forest (zotsatira: Forest in the game)
2.1 "Tap" Forest (zotsatira: Nkhalango "yaponyedwa", +1 unit ya green mana)
2.1.1 Summon Elvish Mystic (zotsatira: Elvish Mystic akusewera, -1 mana obiriwira)
Palibe zochita - END

Pomaliza, tidasanthula zonse zomwe tingathe ndipo tidapeza dongosolo lomwe limayitanitsa cholengedwa.

Ichi ndi chitsanzo chosavuta. Ndikoyenera kusankha ndondomeko yabwino kwambiri, osati ndondomeko iliyonse yomwe ikukwaniritsa zofunikira zina. Nthawi zambiri zimakhala zotheka kuwunika zomwe zingatheke potengera zotsatira kapena phindu lonse la kukhazikitsidwa kwawo. Mutha kudzipangira 1 point pakusewera khadi yakumtunda ndi ma point 3 poyitana cholengedwa. Kusewera Swamp kungakhale pulani ya 1 point. Ndipo kusewera Forest → Dinani Nkhalango → itanani Elvish Mystic ipereka mfundo 4 nthawi yomweyo.

Umu ndi momwe kukonzekera kumagwirira ntchito mu Matsenga: Kusonkhanitsa, koma malingaliro omwewo amagwiranso ntchito nthawi zina. Mwachitsanzo, kusuntha chiboliboli kuti apatse malo bishopu kuti asamuke mu chess. Kapena bisani kumbuyo kwa khoma kuti muwombere bwino mu XCOM motere. Mwambiri, mumapeza lingaliro.

Kukonzekera bwino

Nthawi zina pali zochita zambiri zomwe zingatheke kuti muganizire njira iliyonse yomwe ingatheke. Kubwereranso ku chitsanzo ndi Matsenga: Kusonkhanitsa: tinene kuti mumasewera ndi m'manja mwanu muli makhadi angapo amtunda ndi zolengedwa - kuchuluka kwa kuphatikizika komwe kungasunthike kumatha kukhala ambiri. Pali njira zingapo zothetsera vutoli.

Njira yoyamba ndikumangirira kumbuyo. M'malo moyesera zosakaniza zonse, ndi bwino kuyamba ndi zotsatira zomaliza ndikuyesera kupeza njira yolunjika. M’malo mochoka ku muzu wa mtengowo kupita ku tsamba linalake, timapita kosiyana – kuchokera pa tsamba kupita ku muzu. Njirayi ndi yosavuta komanso yachangu.

Ngati mdani ali ndi thanzi limodzi, mutha kupeza dongosolo la "deal 1 kapena zambiri". Kuti izi zitheke, zinthu zingapo ziyenera kukwaniritsidwa:

1. Kuwonongeka kungayambitsidwe ndi spell - iyenera kukhala m'manja.
2. Kuti ulodze umafunika mana.
3. Kuti mupeze mana, muyenera kusewera ndi land card.
4. Kuti musewere khadi la Land, muyenera kukhala nalo m'manja mwanu.

Njira ina ndiyo kufufuza kopambana. M’malo moyesa njira zonse, timasankha yoyenerera kwambiri. Nthawi zambiri, njira iyi imapereka dongosolo labwino kwambiri popanda ndalama zosafunikira zosafunikira. A* ndi mtundu wakusaka koyambirira kopambana - poyang'ana njira zabwino kwambiri kuyambira pachiyambi, imatha kupeza kale njira yabwino popanda kuyang'ana njira zina.

Njira yosangalatsa komanso yotchuka kwambiri yosakira koyamba ndi Monte Carlo Tree Search. M'malo mongoganiza kuti ndi mapulani ati omwe ali abwino kuposa ena posankha chotsatira chilichonse, algorithm imasankha olowa m'malo mwachisawawa pa sitepe iliyonse mpaka itafika kumapeto (pamene dongosololo lidapambana kapena kugonja). Chotsatira chomaliza chimagwiritsidwa ntchito kuwonjezera kapena kuchepetsa kulemera kwa zomwe zasankhidwa kale. Pobwereza ndondomekoyi kangapo motsatizana, ndondomekoyi imapereka chithunzithunzi chabwino cha zomwe kusuntha kwina kuli bwino, ngakhale zinthu zitasintha (ngati mdani achitapo kanthu kuti asokoneze wosewera mpira).

Palibe nkhani yokhudza kukonzekera m'masewera yomwe ingakhale yokwanira popanda Goal-Oriented Action Planning kapena GOAP (kukonza zochita motsata zolinga). Iyi ndi njira yogwiritsidwa ntchito kwambiri komanso yokambidwa, koma kupatula tsatanetsatane wowerengeka, kwenikweni ndi njira yakumbuyo yomwe tidakambirana kale. Ngati cholinga chake chinali "kuwononga wosewera mpira" ndipo wosewerayo ali kumbuyo kwa chivundikirocho, dongosolo likhoza kukhala: kuwononga ndi bomba → pezani → kuponyera.

Nthawi zambiri pamakhala zolinga zingapo, chilichonse chili ndi cholinga chake. Ngati cholinga chachikulu kwambiri sichingakwaniritsidwe (palibe kuphatikiza zochita kumapanga dongosolo la "kupha wosewera mpira" chifukwa wosewerayo sakuwoneka), AI ibwerera ku zolinga zocheperako.

Maphunziro ndi kusintha

Tanena kale kuti masewera a AI nthawi zambiri sagwiritsa ntchito makina ophunzirira chifukwa siwoyenera kuyang'anira othandizira munthawi yeniyeni. Koma izi sizikutanthauza kuti simungabwereke kanthu m’derali. Tikufuna mdani mu chowombera kuti tingaphunzirepo kanthu. Mwachitsanzo, fufuzani za malo abwino kwambiri pamapu. Kapenanso wotsutsa pamasewera omenyera nkhondo yemwe angatseke mayendedwe a combo omwe amagwiritsidwa ntchito pafupipafupi, zomwe zimamulimbikitsa kugwiritsa ntchito ena. Chifukwa chake kuphunzira pamakina kumatha kukhala kothandiza muzochitika zotere.

Ziwerengero ndi Zomwe Zingatheke

Tisanalowe m’zitsanzo zovuta, tiyeni tione mmene tingapitirire potenga miyeso yopepuka pang’ono ndi kuigwiritsa ntchito popanga zosankha. Mwachitsanzo, njira zenizeni zenizeni - timadziwa bwanji ngati wosewera akhoza kuwukira mphindi zingapo zoyambirira zamasewera ndi chitetezo chotani chokonzekera kulimbana ndi izi? Titha kuphunzira zomwe wosewera adakumana nazo m'mbuyomu kuti timvetsetse zomwe zingachitike mtsogolo. Poyambira, tilibe data yaiwisi yotere, koma titha kusonkhanitsa - nthawi iliyonse AI ikasewera ndi munthu, imatha kulemba nthawi yakuukira koyamba. Pambuyo pa magawo angapo, tidzapeza nthawi yomwe idzatenge kuti wosewerayo adzaukire mtsogolomu.

Palinso vuto ndi zikhalidwe zapakati: ngati wosewera adathamanga maulendo 20 ndikusewera pang'onopang'ono maulendo 20, ndiye kuti zofunikirazo zidzakhala penapake pakati, ndipo izi sizidzatipatsa chilichonse chothandiza. Njira imodzi ndiyo kuchepetsa deta yolowera - zidutswa 20 zomaliza zikhoza kuganiziridwa.

Njira yofananayi imagwiritsidwa ntchito poyesa kuthekera kwa zochita zina poganiza kuti zomwe wosewerayo amakonda m'mbuyomu zidzakhala chimodzimodzi m'tsogolomu. Ngati wosewera mpira atiukira kasanu ndi mpira wamoto, kawiri ndi mphezi, ndipo kamodzi ndi melee, zikuwonekeratu kuti amakonda mpira wamoto. Tiyeni tiwonjezere ndikuwona kuthekera kogwiritsa ntchito zida zosiyanasiyana: fireball = 62,5%, mphezi = 25% ndi melee = 12,5%. Masewera athu AI ayenera kukonzekera kuti adziteteze ku moto.

Njira ina yosangalatsa ndikugwiritsa ntchito Naive Bayes Classifier kuti aphunzire zambiri zolowera ndikuyika zinthu m'magulu kuti AI achite momwe akufunira. Magulu a Bayesian amadziwika bwino chifukwa chogwiritsa ntchito zosefera za sipamu za imelo. Kumeneko amasanthula mawuwo, kuwafanizira ndi pomwe mawuwo adawonekera kale (mu sipamu kapena ayi), ndikupeza malingaliro okhudza maimelo omwe akubwera. Titha kuchita zomwezo ngakhale ndi zolowetsa zochepa. Kutengera zidziwitso zonse zothandiza zomwe AI ​​amawona (monga zomwe zida za adani zimapangidwira, kapena mawu omwe amagwiritsa ntchito, kapena matekinoloje omwe adafufuza), ndi zotsatira zomaliza (nkhondo kapena mtendere, kuthamanga kapena kuteteza, ndi zina zambiri). - tidzasankha khalidwe lofunidwa la AI.

Njira zonse zophunzitsira izi ndizokwanira, koma ndizoyenera kuzigwiritsa ntchito potengera deta yoyesera. AI iphunzira kuzolowera njira zosiyanasiyana zomwe osewera anu agwiritsa ntchito. AI yomwe imagwirizana ndi wosewera mpira ikatulutsidwa imatha kukhala yodziwikiratu kapena yovuta kwambiri kuti igonjetse.

Kusintha kotengera mtengo

Poganizira zomwe zili m'masewera athu komanso malamulo, titha kusintha zomwe zimakhudza kupanga zisankho, m'malo mongogwiritsa ntchito zomwe zalowa. Timachita izi:

  • Lolani AI asonkhanitse zambiri za dziko lapansi ndi zochitika zazikulu pamasewera (monga pamwambapa).
  • Tiyeni tisinthe zinthu zingapo zofunika kutengera deta iyi.
  • Timakhazikitsa zisankho zathu potengera kukonza kapena kuunika izi.

Mwachitsanzo, wothandizira ali ndi zipinda zingapo zoti asankhe pa mapu owombera munthu woyamba. Chipinda chilichonse chili ndi mtengo wake, womwe umatsimikizira momwe kuli kofunikira kuyendera. AI imasankha mwachisawawa chipinda chomwe angapite kutengera mtengo wake. Wothandizirayo ndiye amakumbukira chipinda chomwe adaphedwa ndikuchepetsa mtengo wake (mwayi woti abwererako). Momwemonso pazochitika zowonongeka - ngati wothandizira awononga otsutsa ambiri, ndiye kuti mtengo wa chipindacho ukuwonjezeka.

Markov chitsanzo

Nanga bwanji ngati titagwiritsa ntchito zomwe zasonkhanitsidwa kuti tilosere? Ngati tikumbukira chipinda chilichonse chomwe timawona wosewera mpira kwa nthawi inayake, tidzadziwiratu chipinda chomwe wosewerayo angapite. Mwa kutsatira ndi kujambula mayendedwe a wosewera mpira kudutsa zipinda (zofunika), tikhoza kudziwiratu.

Tiyeni titenge zipinda zitatu: zofiira, zobiriwira ndi zabuluu. Komanso zowonera zomwe tidajambula powonera gawo lamasewera:

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Chiwerengero cha zowonera m'chipinda chilichonse chimakhala chofanana - sitikudziwabe komwe tingapange malo abwino obisalira. Kusonkhanitsa ziwerengero kumasokonekera chifukwa cha kuyambikanso kwa osewera, omwe amawoneka mofanana pamapu onse. Koma zambiri za chipinda chotsatira chomwe amalowa pambuyo powonekera pamapu ndizothandiza kale.

Zitha kuwoneka kuti chipinda chobiriwira chimagwirizana ndi osewera - anthu ambiri amachoka ku chipinda chofiyira kupita kwa icho, 50% mwa iwo amakhalabe pamenepo. Chipinda cha buluu, m'malo mwake, sichidziwika; pafupifupi palibe amene amapitako, ndipo ngati atero, sakhala nthawi yayitali.

Koma deta imatiuza chinthu chofunika kwambiri - pamene wosewera mpira ali m'chipinda cha buluu, chipinda chotsatira chomwe timamuwona chidzakhala chofiira, osati chobiriwira. Ngakhale chipinda chobiriwira chimakhala chodziwika kwambiri kuposa chipinda chofiira, zinthu zimasintha ngati wosewera mpira ali mu chipinda cha buluu. Chigawo chotsatira (ie chipinda chomwe wosewerayo apite) chimadalira momwe adakhalira (ie chipinda chomwe wosewerayo alimo). Chifukwa timafufuza zodalira, tidzalosera zolondola kuposa ngati tingowerengera zomwe tawona patokha.

Kulosera zam'tsogolo zomwe zimachokera ku dziko lakale zimatchedwa chitsanzo cha Markov, ndipo zitsanzo zotere (zokhala ndi zipinda) zimatchedwa maunyolo a Markov. Popeza machitidwewa akuyimira kuthekera kwa kusintha pakati pa zigawo zotsatizana, amawonetsedwa ngati FSMs ndi mwayi wozungulira kusintha kulikonse. M'mbuyomu, tidagwiritsa ntchito FSM kuyimira mkhalidwe womwe wothandizila analimo, koma lingaliroli limafikira kudera lililonse, kaya likugwirizana ndi wothandizirayo kapena ayi. Pankhaniyi, mayiko akuyimira chipinda chomwe wothandizira amakhala:

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Iyi ndi njira yosavuta yoyimira kutheka kwa kusintha kwa boma, kupatsa AI kuthekera kodziwiratu dziko lotsatira. Mutha kuyembekezera masitepe angapo kutsogolo.

Ngati wosewera ali m'chipinda chobiriwira, pali mwayi wa 50% kuti adzakhalabe komweko nthawi ina akadzawonedwa. Koma ndi mwayi wotani kuti iye adzakhalabe kumeneko ngakhale pambuyo pake? Sikuti pali mwayi woti wosewera mpirayo adakhalabe m'chipinda chobiriwira pambuyo poyang'ana kawiri, koma palinso mwayi woti adachoka ndikubwerera. Nali tebulo latsopano poganizira za data yatsopano:

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene

Zimasonyeza kuti mwayi wowona wosewera mpira mu chipinda chobiriwira pambuyo paziwonetsero ziwiri udzakhala wofanana ndi 51% - 21% kuti adzakhala kuchokera ku chipinda chofiira, 5% mwa iwo kuti wosewera mpira adzachezera chipinda cha buluu pakati pawo, ndi 25% yomwe wosewerayo sangachoke m'chipinda chobiriwira.

Gome ndi chida chowonera - njirayo imangofunika kuchulukitsa mwayi pa sitepe iliyonse. Izi zikutanthauza kuti mutha kuyang'ana m'tsogolo ndi chenjezo limodzi: timaganiza kuti mwayi wolowa m'chipinda umadalira kwathunthu chipinda chomwe chilipo. Izi zimatchedwa Markov Property - tsogolo lamtsogolo limadalira pakalipano. Koma izi sizolondola. Osewera amatha kusintha zisankho kutengera zinthu zina: thanzi kapena kuchuluka kwa zida. Chifukwa sitilemba zinthuzi, zolosera zathu sizikhala zolondola.

N-Gram

Nanga bwanji chitsanzo cha masewera omenyera nkhondo ndikulosera ma combo a osewera? Momwemonso! Koma m'malo mwa gawo limodzi kapena chochitika, tiwona zonse zomwe zimapanga chiwopsezo cha combo.

Njira imodzi yochitira izi ndikusunga zolowetsa zilizonse (monga Kick, Punch kapena Block) mu buffer ndikulemba buffer yonse ngati chochitika. Chifukwa chake wosewerayo amakankhira mobwerezabwereza Kick, Kick, Punch kuti agwiritse ntchito SuperDeathFist kuukira, dongosolo la AI limasunga zolowa zonse mu buffer ndikukumbukira atatu omaliza omwe amagwiritsidwa ntchito pagawo lililonse.

Momwe mungapangire masewera a AI: kalozera kwa oyamba kumene
(Mizere yakuda kwambiri ndi pamene wosewera mpira akuyambitsa kuwukira kwa SuperDeathFist.)

AI idzawona zosankha zonse pamene wosewera mpira akusankha Kick, kutsatiridwa ndi Kick ina, ndiyeno zindikirani kuti chotsatira chotsatira chimakhala Punch nthawi zonse. Izi zidzalola wothandizira kulosera za SuperDeathFist's combo kusuntha ndikuletsa ngati n'kotheka.

Kutsatizana kwa zochitikazi kumatchedwa N-grams, pamene N ndi chiwerengero cha zinthu zosungidwa. Mu chitsanzo chapitacho chinali 3-gram (trigram), kutanthauza: zolemba ziwiri zoyambirira zimagwiritsidwa ntchito kulosera chachitatu. Chifukwa chake, mu magalamu 5, zolemba zinayi zoyambirira zimaneneratu chachisanu ndi zina zotero.

Wopangayo ayenera kusankha kukula kwa N-grams mosamala. N yaying'ono imafuna kukumbukira kochepa komanso imasunga mbiri yochepa. Mwachitsanzo, 2-gram (bigram) idzajambulitsa Kick, Kick kapena Kick, Punch, koma sichidzatha kusunga Kick, Kick, Punch, kotero AI sidzayankha ku SuperDeathFist combo.

Kumbali ina, ziwerengero zazikulu zimafunikira kukumbukira kwambiri ndipo AI idzakhala yovuta kwambiri kuphunzitsa popeza padzakhala zina zambiri zomwe zingatheke. Mukadakhala ndi zolowetsa zitatu za Kick, Punch kapena Block, ndipo tidagwiritsa ntchito magalamu 10, zitha kukhala zosankha pafupifupi 60.

Mtundu wa bigram ndi unyolo wosavuta wa Markov - gulu lililonse lakale / lapano ndi bigram, ndipo mutha kudziwiratu dziko lachiwiri kutengera woyamba. Ma gramu atatu ndi ma N-gramu akuluakulu amathanso kuganiziridwa ngati maunyolo a Markov, pomwe zinthu zonse (kupatula chomaliza mu N-gram) palimodzi zimapanga gawo loyamba ndi gawo lomaliza lachiwiri. Chitsanzo cha masewera omenyera nkhondo chikuwonetsa mwayi wosintha kuchokera ku Kick ndi Kick kupita ku boma la Kick ndi Punch. Potengera zolemba zambiri za mbiri yakale ngati gawo limodzi, tikusintha magawo olowa kukhala gawo la dziko lonse. Izi zimatipatsa katundu wa Markov, zomwe zimatilola kugwiritsa ntchito maunyolo a Markov kulosera zomwe zidzachitike ndikulingalira zomwe combo isuntha.

Pomaliza

Tinakambirana za zida zodziwika bwino komanso njira zopangira nzeru zopangira. Tidawonanso mikhalidwe yomwe iyenera kugwiritsidwa ntchito komanso komwe imakhala yothandiza kwambiri.

Izi ziyenera kukhala zokwanira kumvetsetsa zoyambira zamasewera AI. Koma, ndithudi, izi si njira zonse. Zochepa zotchuka, koma zosagwira bwino kwambiri ndi monga:

  • kukhathamiritsa ma algorithms kuphatikiza kukwera mapiri, kutsika kwa gradient ndi ma genetic algorithms
  • kusaka kwa mdani/kukonza ma aligorivimu (kudulira kochepa ndi alpha-beta)
  • njira zamagulu (ma perceptron, ma neural network ndi makina othandizira ma vector)
  • machitidwe opangira malingaliro ndi kukumbukira kwa othandizira
  • njira zomangira za AI (machitidwe osakanizidwa, kamangidwe kagawo kakang'ono ndi njira zina zokutira machitidwe a AI)
  • zida zamakanema (kukonzekera ndi kugwirizanitsa zoyenda)
  • magwiridwe antchito (mulingo watsatanetsatane, nthawi iliyonse, ndi ma aligorivimu anthawi)

Zothandizira pa intaneti pamutuwu:

1. GameDev.net ili gawo lokhala ndi zolemba ndi maphunziro pa AIndipo msonkhano.
2. AiGameDev.com ili ndi zowonetsera zambiri ndi zolemba pamitu yambiri yokhudzana ndi chitukuko cha masewera a AI.
3. Chithunzi cha GDC Vault ikuphatikiza mitu ya GDC AI Summit, yambiri yomwe ilipo kwaulere.
4. Zinthu zothandiza zitha kupezekanso patsamba Gulu la AI Game Programmers.
5. Tommy Thompson, wofufuza wa AI ndi wopanga masewera, amapanga mavidiyo pa YouTube AI ndi Masewera ndi kufotokozera komanso kuphunzira kwa AI mumasewera azamalonda.

Mabuku pamutuwu:

1. Mndandanda wa mabuku a Game AI Pro ndi zolemba zazifupi zomwe zimafotokoza momwe mungagwiritsire ntchito zinthu zinazake kapena momwe mungathetsere mavuto enaake.

Game AI Pro: Nzeru Zosonkhanitsa za akatswiri a Game AI
Masewera AI Pro 2: Nzeru Zosonkhanitsidwa za akatswiri a Game AI
Masewera AI Pro 3: Nzeru Zosonkhanitsidwa za akatswiri a Game AI

2. Mndandanda wa AI Game Programming Wisdom ndiwotsogolera mndandanda wa Game AI Pro. Lili ndi njira zakale, koma pafupifupi zonse ndi zofunika ngakhale lero.

AI Game Programming Nzeru 1
AI Game Programming Nzeru 2
AI Game Programming Nzeru 3
AI Game Programming Nzeru 4

3. Artificial Intelligence: Njira Yamakono ndi imodzi mwamalemba ofunikira kwa aliyense amene akufuna kumvetsetsa zanzeru zopanga. Ili si buku lachitukuko chamasewera - limaphunzitsa zoyambira za AI.

Source: www.habr.com

Kuwonjezera ndemanga