Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Deuthum ar draws peth deunydd diddorol am ddeallusrwydd artiffisial mewn gemau. Gydag esboniad o bethau sylfaenol am AI gan ddefnyddio enghreifftiau syml, a thu mewn mae yna lawer o offer a dulliau defnyddiol ar gyfer ei ddatblygiad a'i ddyluniad cyfleus. Mae sut, ble a phryd i'w defnyddio yno hefyd.

Mae'r rhan fwyaf o'r enghreifftiau wedi'u hysgrifennu mewn ffuggod, felly nid oes angen gwybodaeth raglennu uwch. O dan y toriad mae 35 tudalen o destun gyda lluniau a gifs, felly paratowch.

UPD. Ymddiheuraf, ond rwyf eisoes wedi gwneud fy nghyfieithiad fy hun o'r erthygl hon ar Habré ClafZero. Gallwch ddarllen ei fersiwn yma, ond am ryw reswm aeth yr erthygl heibio i mi (defnyddiais y chwiliad, ond aeth rhywbeth o'i le). A chan fy mod yn ysgrifennu ar flog sy'n ymroddedig i ddatblygu gêm, penderfynais adael fy fersiwn o'r cyfieithiad i danysgrifwyr (mae rhai pwyntiau wedi'u fformatio'n wahanol, cafodd rhai eu hepgor yn fwriadol ar gyngor y datblygwyr).

Beth yw AI?

Mae Gêm AI yn canolbwyntio ar ba gamau y dylai gwrthrych eu cyflawni yn seiliedig ar yr amodau y mae wedi'i leoli ynddynt. Cyfeirir at hyn yn gyffredin fel rheolaeth "asiant deallus", lle mae asiant yn gymeriad chwaraewr, yn gerbyd, yn bot, neu weithiau'n rhywbeth mwy haniaethol: grŵp cyfan o endidau neu hyd yn oed gwareiddiad. Ym mhob achos, mae'n beth y mae'n rhaid iddo weld ei amgylchedd, gwneud penderfyniadau yn seiliedig arno, a gweithredu yn unol â nhw. Gelwir hyn yn gylchred Synnwyr/Meddwl/Gweithredu:

  • Synnwyr: Mae'r asiant yn darganfod neu'n derbyn gwybodaeth am bethau yn ei amgylchedd a allai ddylanwadu ar ei ymddygiad (bygythiadau gerllaw, eitemau i'w casglu, lleoedd diddorol i'w harchwilio).
  • Meddyliwch: Mae'r asiant yn penderfynu sut i ymateb (ystyried a yw'n ddigon diogel i gasglu eitemau neu a ddylai ymladd / cuddio yn gyntaf).
  • Deddf: mae'r asiant yn cyflawni gweithredoedd i weithredu'r penderfyniad blaenorol (yn dechrau symud tuag at y gelyn neu'r gwrthrych).
  • ...nawr mae'r sefyllfa wedi newid oherwydd gweithredoedd y nodau, felly mae'r gylchred yn ailadrodd gyda data newydd.

Mae AI yn tueddu i ganolbwyntio ar ran Sense y ddolen. Er enghraifft, mae ceir ymreolaethol yn tynnu lluniau o'r ffordd, yn eu cyfuno â data radar a lidar, ac yn eu dehongli. Gwneir hyn fel arfer trwy ddysgu peirianyddol, sy'n prosesu data sy'n dod i mewn ac yn rhoi ystyr iddo, gan dynnu gwybodaeth semantig fel “mae car arall 20 llath o'ch blaen chi.” Dyma'r problemau dosbarthu fel y'u gelwir.

Nid oes angen system gymhleth ar gemau i echdynnu gwybodaeth gan fod y rhan fwyaf o'r data eisoes yn rhan annatod ohono. Nid oes angen rhedeg algorithmau adnabod delweddau i benderfynu a oes gelyn o'n blaenau - mae'r gêm eisoes yn gwybod ac yn bwydo'r wybodaeth yn uniongyrchol i'r broses gwneud penderfyniadau. Felly, mae rhan Synnwyr y cylch yn aml yn llawer symlach na'r rhan Meddwl a Gweithredu.

Cyfyngiadau Gêm AI

Mae gan AI nifer o gyfyngiadau y mae'n rhaid eu dilyn:

  • Nid oes angen hyfforddi AI ymlaen llaw, fel pe bai'n algorithm dysgu peiriant. Nid yw'n gwneud unrhyw synnwyr i ysgrifennu rhwydwaith niwral yn ystod datblygiad i fonitro degau o filoedd o chwaraewyr a dysgu'r ffordd orau i chwarae yn eu herbyn. Pam? Oherwydd nad yw'r gêm wedi'i rhyddhau ac nid oes chwaraewyr.
  • Dylai'r gêm fod yn hwyl ac yn heriol, felly ni ddylai asiantau ddod o hyd i'r ymagwedd orau yn erbyn pobl.
  • Mae angen i asiantau edrych yn realistig fel bod chwaraewyr yn teimlo eu bod yn chwarae yn erbyn pobl go iawn. Perfformiodd rhaglen AlphaGo yn well na phobl, ond roedd y camau a ddewiswyd yn bell iawn o ddealltwriaeth draddodiadol y gêm. Os yw'r gêm yn efelychu gwrthwynebydd dynol, ni ddylai'r teimlad hwn fodoli. Mae angen newid yr algorithm fel ei fod yn gwneud penderfyniadau credadwy yn hytrach na rhai delfrydol.
  • Rhaid i AI weithio mewn amser real. Mae hyn yn golygu na all yr algorithm fonopoleiddio defnydd CPU am gyfnodau hir o amser i wneud penderfyniadau. Mae hyd yn oed 10 milieiliad yn rhy hir, oherwydd dim ond 16 i 33 milieiliad sydd ei angen ar y mwyafrif o gemau i wneud yr holl brosesu a symud ymlaen i'r ffrâm graffeg nesaf.
  • Yn ddelfrydol, dylai o leiaf ran o'r system gael ei gyrru gan ddata, fel bod y rhai nad ydynt yn godwyr yn gallu gwneud newidiadau ac addasiadau yn gallu digwydd yn gyflymach.

Gadewch i ni edrych ar ddulliau AI sy'n cwmpasu'r cylch Synnwyr / Meddwl / Gweithredu cyfan.

Gwneud Penderfyniadau Sylfaenol

Gadewch i ni ddechrau gyda'r gêm symlaf - Pong. Nod: symudwch y padl fel bod y bêl yn bownsio oddi arni yn hytrach na hedfan heibio iddi. Mae fel tennis, lle rydych chi'n colli os nad ydych chi'n taro'r bêl. Yma mae gan yr AI dasg gymharol hawdd - penderfynu i ba gyfeiriad i symud y platfform.

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Datganiadau amodol

Ar gyfer yr AI yn Pong, yr ateb mwyaf amlwg yw ceisio gosod y platfform o dan y bêl bob amser.

Algorithm syml ar gyfer hyn, wedi'i ysgrifennu mewn ffuggod:

pob ffrâm / diweddariad tra bod y gêm yn rhedeg:
os yw'r bêl i'r chwith o'r padl:
symud padl i'r chwith
arall os yw'r bêl i'r dde o'r padl:
symud padl i'r dde

Os yw'r platfform yn symud ar gyflymder y bêl, yna dyma'r algorithm delfrydol ar gyfer yr AI yn Pong. Nid oes angen cymhlethu unrhyw beth os nad oes cymaint o ddata a chamau gweithredu posibl i'r asiant.

Mae'r dull hwn mor syml fel mai prin y gellir gweld y cylch Synnwyr/Meddwl/Gweithredu cyfan. Ond mae yno:

  • Mae rhan Sense mewn dau os datganiadau. Mae'r gêm yn gwybod ble mae'r bêl a ble mae'r platfform, felly mae'r AI yn edrych ato am y wybodaeth honno.
  • Mae'r rhan Meddwl hefyd wedi'i chynnwys yn y ddau os datganiadau. Maent yn ymgorffori dau ateb, sydd yn yr achos hwn yn annibynnol ar ei gilydd. O ganlyniad, dewisir un o dri cham gweithredu - symudwch y platfform i'r chwith, ei symud i'r dde, neu peidiwch â gwneud dim os yw eisoes wedi'i leoli'n gywir.
  • Mae rhan y Ddeddf i'w chael yn y datganiadau Symud Padlo i'r Chwith a Symud Padlo i'r Dde. Yn dibynnu ar ddyluniad y gêm, gallant symud y platfform ar unwaith neu ar gyflymder penodol.

Gelwir ymagweddau o'r fath yn adweithiol - mae yna set syml o reolau (yn yr achos hwn os yw datganiadau yn y cod) sy'n ymateb i gyflwr presennol y byd ac yn gweithredu.

Coeden benderfynu

Mae enghraifft Pong mewn gwirionedd yn cyfateb i gysyniad AI ffurfiol o'r enw coeden benderfynu. Mae'r algorithm yn mynd drwyddo i gyrraedd “deilen” - penderfyniad ynghylch pa gamau i'w cymryd.

Gadewch i ni wneud diagram bloc o'r goeden benderfynu ar gyfer algorithm ein platfform:

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Gelwir pob rhan o'r goeden yn nod - mae AI yn defnyddio theori graff i ddisgrifio strwythurau o'r fath. Mae dau fath o nodau:

  • Nodau penderfynu: dewis rhwng dau ddewis arall yn seiliedig ar brofi rhyw gyflwr, lle mae pob dewis arall yn cael ei gynrychioli fel nod ar wahân.
  • Nodau diwedd: Y weithred i'w chyflawni sy'n cynrychioli'r penderfyniad terfynol.

Mae'r algorithm yn cychwyn o'r nod cyntaf ("gwraidd" y goeden). Mae naill ai'n gwneud penderfyniad ynghylch pa nod plentyn i fynd iddo, neu mae'n cyflawni'r weithred sydd wedi'i storio yn y nod a'r allanfeydd.

Beth yw'r fantais o gael coeden benderfyniadau i wneud yr un gwaith â'r datganiadau yn yr adran flaenorol? Mae yna system gyffredinol yma lle mai dim ond un cyflwr a dau ganlyniad posibl sydd i bob penderfyniad. Mae hyn yn caniatáu i'r datblygwr greu AI o ddata sy'n cynrychioli penderfyniadau mewn coeden heb orfod ei godio'n galed. Gadewch i ni ei gyflwyno ar ffurf tabl:

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Ar ochr y cod fe gewch system ar gyfer darllen llinynnau. Creu nod ar gyfer pob un ohonynt, cysylltu rhesymeg penderfyniad yn seiliedig ar yr ail golofn, a nodau plentyn yn seiliedig ar y drydedd a'r bedwaredd golofn. Mae angen i chi raglennu'r amodau a'r camau gweithredu o hyd, ond nawr bydd strwythur y gêm yn fwy cymhleth. Yma rydych chi'n ychwanegu penderfyniadau a chamau gweithredu ychwanegol, ac yna'n addasu'r AI cyfan trwy olygu'r ffeil testun diffiniad coeden. Nesaf, byddwch chi'n trosglwyddo'r ffeil i ddylunydd y gêm, a all newid yr ymddygiad heb ail-grynhoi'r gêm na newid y cod.

Mae coed penderfynu yn ddefnyddiol iawn pan fyddant yn cael eu hadeiladu'n awtomatig o set fawr o enghreifftiau (er enghraifft, gan ddefnyddio'r algorithm ID3). Mae hyn yn eu gwneud yn arf effeithiol a pherfformiad uchel ar gyfer dosbarthu sefyllfaoedd yn seiliedig ar y data a gafwyd. Fodd bynnag, rydym yn mynd y tu hwnt i system syml i asiantau ddewis camau gweithredu.

Senarios

Fe wnaethom ddadansoddi system coeden benderfynu a oedd yn defnyddio amodau a chamau gweithredu a grëwyd ymlaen llaw. Gall y person sy'n dylunio'r AI drefnu'r goeden sut bynnag y mae ei eisiau, ond mae'n dal i orfod dibynnu ar y codydd a raglennodd y cyfan. Beth pe gallem roi'r offer i'r dylunydd greu eu hamodau neu eu gweithredoedd eu hunain?

Fel nad oes rhaid i'r rhaglennydd ysgrifennu cod ar gyfer yr amodau A yw Ball i'r Chwith O'r Padlo ac A yw'r Ball i'r Dde O Paddle, gall greu system lle bydd y dylunydd yn ysgrifennu amodau i wirio'r gwerthoedd hyn. Yna bydd data’r goeden benderfynu yn edrych fel hyn:

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Mae hyn yn ei hanfod yr un fath ag yn y tabl cyntaf, ond mae gan yr atebion ynddynt eu hunain eu cod eu hunain, ychydig yn debyg i ran amodol datganiad if. Ar ochr y cod, byddai hyn yn darllen yn yr ail golofn ar gyfer y nodau penderfyniad, ond yn hytrach na chwilio am amod penodol i'w weithredu (Is Ball Left Of Paddle), mae'n gwerthuso'r mynegiant amodol ac yn dychwelyd yn wir neu'n anghywir yn unol â hynny. Gwneir hyn gan ddefnyddio iaith sgriptio Lua neu Angelscript. Gan eu defnyddio, gall datblygwr gymryd gwrthrychau yn ei gêm (pêl a padlo) a chreu newidynnau a fydd ar gael yn y sgript (ball.position). Hefyd, mae'r iaith sgriptio yn symlach na C ++. Nid oes angen cam llunio llawn, felly mae'n ddelfrydol ar gyfer addasu rhesymeg gêm yn gyflym ac mae'n caniatáu i “ddi-godwyr” greu'r swyddogaethau angenrheidiol eu hunain.

Yn yr enghraifft uchod, dim ond i werthuso'r mynegiant amodol y defnyddir yr iaith sgriptio, ond gellir ei defnyddio hefyd ar gyfer gweithredoedd. Er enghraifft, gallai'r data Move Paddle Right ddod yn ddatganiad sgript (ball.position.x + = 10). Fel bod y weithred hefyd wedi'i diffinio yn y sgript, heb fod angen rhaglennu Move Paddle Right.

Gallwch fynd hyd yn oed ymhellach ac ysgrifennu'r goeden penderfyniadau gyfan mewn iaith sgriptio. Bydd hwn yn god ar ffurf datganiadau amodol cod caled, ond byddant yn cael eu lleoli mewn ffeiliau sgript allanol, hynny yw, gellir eu newid heb ail-grynhoi'r rhaglen gyfan. Yn aml gallwch chi olygu'r ffeil sgript yn ystod gameplay i brofi gwahanol adweithiau AI yn gyflym.

Ymateb Digwyddiad

Mae'r enghreifftiau uchod yn berffaith ar gyfer Pong. Maent yn rhedeg y cylch Synnwyr/Meddwl/Gweithredu yn barhaus ac yn gweithredu yn seiliedig ar gyflwr diweddaraf y byd. Ond mewn gemau mwy cymhleth mae angen i chi ymateb i ddigwyddiadau unigol, a pheidio â gwerthuso popeth ar unwaith. Mae Pong yn yr achos hwn eisoes yn enghraifft wael. Gadewch i ni ddewis un arall.

Dychmygwch saethwr lle mae'r gelynion yn ddisymud nes eu bod yn canfod y chwaraewr, ac ar ôl hynny maen nhw'n gweithredu yn dibynnu ar eu "arbenigedd": bydd rhywun yn rhedeg i "ruthro", bydd rhywun yn ymosod o bell. Mae'n dal i fod yn system adweithiol sylfaenol - "os yw chwaraewr yn cael ei weld, gwnewch rywbeth" - ond gellir ei rannu'n rhesymegol yn ddigwyddiad a Welwyd gan Chwaraewr ac yn Adwaith (dewiswch ymateb a'i weithredu).

Daw hyn â ni yn ôl at y cylch Synnwyr/Meddwl/Gweithredu. Gallwn godio rhan Sense a fydd yn gwirio pob ffrâm a yw'r AI yn gweld y chwaraewr. Os na, nid oes dim yn digwydd, ond os yw'n gweld, yna mae'r digwyddiad Chwaraewr Wedi'i Weld yn cael ei greu. Bydd gan y cod adran ar wahân sy'n dweud "pan fydd y digwyddiad Wedi'i Weld Chwaraewr yn digwydd, gwnewch" ble mae'r ymateb sydd ei angen arnoch i fynd i'r afael â'r rhannau Meddwl a Gweithredu. Felly, byddwch yn sefydlu ymatebion i ddigwyddiad Player Seen: ar gyfer y cymeriad “rhuthro” - ChargeAndAttack, ac ar gyfer y saethwr - HideAndSnipe. Gellir creu'r perthnasoedd hyn yn y ffeil ddata i'w golygu'n gyflym heb orfod ail-grynhoi. Gellir defnyddio iaith sgriptio yma hefyd.

Gwneud penderfyniadau anodd

Er bod systemau adwaith syml yn bwerus iawn, mae yna lawer o sefyllfaoedd lle nad ydyn nhw'n ddigon. Weithiau mae angen i chi wneud penderfyniadau gwahanol yn seiliedig ar yr hyn y mae'r asiant yn ei wneud ar hyn o bryd, ond mae'n anodd dychmygu hyn fel amod. Weithiau mae gormod o amodau i'w cynrychioli'n effeithiol mewn coeden benderfynu neu sgript. Weithiau mae angen i chi asesu ymlaen llaw sut y bydd y sefyllfa'n newid cyn penderfynu ar y cam nesaf. Mae angen dulliau mwy soffistigedig i ddatrys y problemau hyn.

Peiriant cyflwr cyfyngedig

Mae peiriant cyflwr cyfyngedig neu FSM (peiriant cyflwr meidraidd) yn ffordd o ddweud bod ein hasiant ar hyn o bryd mewn un o sawl cyflwr posibl, ac y gall drosglwyddo o un cyflwr i'r llall. Mae yna nifer penodol o daleithiau o'r fath - dyna pam yr enw. Yr enghraifft orau o fywyd yw golau traffig. Mae yna wahanol ddilyniannau o oleuadau mewn gwahanol leoedd, ond mae'r egwyddor yr un peth - mae pob cyflwr yn cynrychioli rhywbeth (stopio, cerdded, ac ati). Mae golau traffig mewn un cyflwr yn unig ar unrhyw adeg benodol, ac yn symud o un i'r llall yn seiliedig ar reolau syml.

Mae'n stori debyg gyda NPCs mewn gemau. Er enghraifft, gadewch i ni gymryd gwarchodwr gyda'r cyflyrau canlynol:

  • Patrolio.
  • Ymosod.
  • Ffoi.

A'r amodau hyn ar gyfer newid ei gyflwr:

  • Os yw'r gwarchodwr yn gweld y gelyn, mae'n ymosod.
  • Os yw'r gwarchodwr yn ymosod ond ddim yn gweld y gelyn mwyach, mae'n dychwelyd i batrolio.
  • Os bydd gard yn ymosod ond yn cael ei glwyfo'n ddrwg, mae'n rhedeg i ffwrdd.

Gallwch hefyd ysgrifennu datganiadau os gyda newidyn cyflwr gwarcheidwad a gwiriadau amrywiol: a oes gelyn gerllaw, beth yw lefel iechyd yr NPC, ac ati. Gadewch i ni ychwanegu ychydig mwy o daleithiau:

  • Segurdod - rhwng patrolau.
  • Chwilio - pan fydd y gelyn fraith wedi diflannu.
  • Dod o Hyd i Gymorth - pan welir gelyn, ond yn rhy gryf i ymladd ar ei ben ei hun.

Mae'r dewis ar gyfer pob un ohonynt yn gyfyngedig - er enghraifft, ni fydd y gwarchodwr yn mynd i chwilio am elyn cudd os oes ganddo iechyd isel.

Wedi'r cyfan, mae yna restr enfawr o "ifs" , Bod “ yn gallu mynd yn rhy feichus, felly mae angen i ni ffurfioli dull sy’n caniatáu inni gadw gwladwriaethau a thrawsnewidiadau rhwng taleithiau mewn cof. I wneud hyn, rydym yn cymryd i ystyriaeth yr holl daleithiau, ac o dan bob gwladwriaeth rydym yn ysgrifennu mewn rhestr yr holl drawsnewidiadau i wladwriaethau eraill, ynghyd â'r amodau sy'n angenrheidiol ar eu cyfer.

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Tabl pontio gwladwriaethol yw hwn - ffordd gynhwysfawr o gynrychioli PYDd. Gadewch i ni dynnu diagram a chael trosolwg cyflawn o sut mae ymddygiad NPC yn newid.

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Mae'r diagram yn adlewyrchu hanfod gwneud penderfyniadau ar gyfer yr asiant hwn yn seiliedig ar y sefyllfa bresennol. Ar ben hynny, mae pob saeth yn dangos trawsnewidiad rhwng gwladwriaethau os yw'r cyflwr nesaf ato yn wir.

Mae pob diweddariad rydym yn gwirio cyflwr presennol yr asiant, edrychwch drwy'r rhestr o drawsnewidiadau, ac os bodlonir yr amodau ar gyfer y cyfnod pontio, mae'n derbyn y wladwriaeth newydd. Er enghraifft, mae pob ffrâm yn gwirio a yw'r amserydd 10 eiliad wedi dod i ben, ac os felly, yna mae'r gard yn mynd o gyflwr Idling i Patrolling. Yn yr un modd, mae'r cyflwr Ymosod yn gwirio iechyd yr asiant - os yw'n isel, yna mae'n mynd i mewn i'r cyflwr Ffoi.

Mae hyn yn ymdrin â thrawsnewidiadau rhwng gwladwriaethau, ond beth am yr ymddygiad sy'n gysylltiedig â'r taleithiau eu hunain? O ran gweithredu'r ymddygiad gwirioneddol ar gyfer gwladwriaeth benodol, fel arfer mae dau fath o "fachyn" lle rydym yn aseinio camau gweithredu i'r PYDd:

  • Camau yr ydym yn eu cyflawni o bryd i'w gilydd ar gyfer y cyflwr presennol.
  • Y camau a gymerwn wrth drosglwyddo o un cyflwr i'r llall.

Enghreifftiau ar gyfer y math cyntaf. Bydd y wladwriaeth Patrolio yn symud yr asiant ar hyd y llwybr patrôl bob ffrâm. Bydd y Wladwriaeth Ymosodol yn ceisio cychwyn ymosodiad bob ffrâm neu drosglwyddo i gyflwr lle mae hyn yn bosibl.

Ar gyfer yr ail fath, ystyriwch y trawsnewidiad “os yw'r gelyn yn weladwy a'r gelyn yn rhy gryf, yna ewch i'r cyflwr Finding Help. Rhaid i'r asiant ddewis ble i fynd am help a storio'r wybodaeth hon fel bod y wladwriaeth Finding Help yn gwybod ble i fynd. Unwaith y deuir o hyd i help, mae'r asiant yn mynd yn ôl i'r cyflwr Ymosod. Ar y pwynt hwn, bydd am ddweud wrth y cynghreiriad am y bygythiad, felly gall y weithred NotifyFriendOfThreat ddigwydd.

Unwaith eto, gallwn edrych ar y system hon drwy lens y cylch Synnwyr/Meddwl/Gweithredu. Mae synnwyr wedi'i ymgorffori yn y data a ddefnyddir gan y rhesymeg trawsnewid. Meddyliwch - trawsnewidiadau sydd ar gael ym mhob gwladwriaeth. Ac mae Deddf yn cael ei chyflawni gan weithredoedd a gyflawnir o bryd i'w gilydd o fewn gwladwriaeth neu wrth drawsnewid rhwng taleithiau.

Weithiau gall amodau pontio pleidleisio parhaus fod yn gostus. Er enghraifft, os yw pob asiant yn gwneud cyfrifiadau cymhleth bob ffrâm i benderfynu a all weld gelynion a deall a all drosglwyddo o'r cyflwr Patrolio i Ymosod, bydd hyn yn cymryd llawer o amser CPU.

Gellir meddwl am newidiadau pwysig yng nghyflwr y byd fel digwyddiadau a fydd yn cael eu prosesu wrth iddynt ddigwydd. Yn lle bod y PYDd yn gwirio'r amod trosglwyddo "a all fy asiant weld y chwaraewr?" bob ffrâm, gellir ffurfweddu system ar wahân i wirio'n llai aml (e.e. 5 gwaith yr eiliad). A'r canlyniad yw cyhoeddi Player Seen pan fydd y siec yn pasio.

Mae hwn yn cael ei drosglwyddo i'r PYDd, a ddylai nawr fynd i'r amod a dderbyniwyd digwyddiad Player Seen ac ymateb yn unol â hynny. Mae'r ymddygiad sy'n deillio o hyn yr un fath ac eithrio ar gyfer oedi bron yn anganfyddadwy cyn ymateb. Ond mae perfformiad wedi gwella o ganlyniad i wahanu'r rhan Sense yn rhan ar wahân o'r rhaglen.

Peiriant cyflwr meidraidd hierarchaidd

Fodd bynnag, nid yw gweithio gyda PYDd mawr bob amser yn gyfleus. Os ydym am ehangu'r cyflwr ymosod i wahanu MeleeAttacking a RangedAttacking, bydd yn rhaid i ni newid y trawsnewidiadau o bob gwladwriaeth arall sy'n arwain at y cyflwr Ymosod (presennol a dyfodol).

Mae'n debyg eich bod wedi sylwi bod llawer o drawsnewidiadau dyblyg yn ein hesiampl. Mae'r rhan fwyaf o drawsnewidiadau yn nhalaith Idling yn union yr un fath â thrawsnewidiadau yn y wladwriaeth Patrôl. Byddai'n braf peidio ag ailadrodd ein hunain, yn enwedig os ydym yn ychwanegu mwy o daleithiau tebyg. Mae'n gwneud synnwyr i grwpio Idling a Patrolio o dan y label cyffredinol "di-frwydro", lle mai dim ond un set gyffredin o drawsnewidiadau i frwydro yn erbyn gwladwriaethau sydd. Os ydym yn meddwl am y label hwn fel gwladwriaeth, yna mae Idling a Patrolling yn dod yn is-wladwriaethau. Enghraifft o ddefnyddio tabl pontio ar wahân ar gyfer is-wladwriaeth di-frwydr newydd:

Prif wladwriaethau:
Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Y tu allan i statws ymladd:
Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Ac ar ffurf diagram:

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Yr un system ydyw, ond gyda chyflwr di-ymladd newydd sy'n cynnwys Segurdod a Phatrolio. Gyda phob gwladwriaeth yn cynnwys PYDd ag is-wladwriaethau (a'r is-wladwriaethau hyn, yn eu tro, yn cynnwys eu PYDd eu hunain - ac yn y blaen am gyhyd ag sydd ei angen arnoch), rydym yn cael Peiriant Cyflwr Terfynol Hierarchaidd neu HFSM (peiriant cyflwr meidraidd hierarchaidd). Drwy grwpio'r cyflwr di-ymladd, rydym yn torri allan criw o drawsnewidiadau diangen. Gallwn wneud yr un peth ar gyfer unrhyw wladwriaethau newydd gyda thrawsnewidiadau cyffredin. Er enghraifft, os byddwn yn ehangu'r cyflwr Ymosod yn y dyfodol i daleithiau MeleeAttacking a MissileAttacking, byddant yn is-wladwriaethau sy'n pontio rhwng ei gilydd yn seiliedig ar bellter i'r gelyn ac argaeledd ammo. O ganlyniad, gellir cynrychioli ymddygiadau ac is-ymddygiadau cymhleth gydag isafswm o drawsnewidiadau dyblyg.

Coeden ymddygiad

Gyda HFSM, crëir cyfuniadau cymhleth o ymddygiadau mewn ffordd syml. Fodd bynnag, mae ychydig o anhawster bod gwneud penderfyniadau ar ffurf rheolau pontio yn perthyn yn agos i'r cyflwr presennol. Ac mewn llawer o gemau dyma'n union beth sydd ei angen. A gall defnydd gofalus o hierarchaeth y wladwriaeth leihau nifer yr ailadroddiadau pontio. Ond weithiau mae angen rheolau arnoch sy'n gweithio ni waeth ym mha gyflwr rydych chi, neu sy'n berthnasol mewn unrhyw wladwriaeth bron. Er enghraifft, os bydd iechyd asiant yn gostwng i 25%, byddwch am iddo redeg i ffwrdd p'un a oedd yn ymladd, yn segur, neu'n siarad - bydd yn rhaid i chi ychwanegu'r amod hwn at bob gwladwriaeth. Ac os yw'ch dylunydd yn ddiweddarach am newid y trothwy iechyd isel o 25% i 10%, yna bydd yn rhaid gwneud hyn eto.

Yn ddelfrydol, mae'r sefyllfa hon yn gofyn am system lle mae penderfyniadau ynghylch “pa wladwriaeth i fod ynddi” y tu allan i'r taleithiau eu hunain, er mwyn gwneud newidiadau mewn un lle yn unig a pheidio â chyffwrdd â'r amodau trosglwyddo. Mae coed ymddygiad yn ymddangos yma.

Mae yna sawl ffordd i'w gweithredu, ond mae'r hanfod yn fras yr un peth i bawb ac mae'n debyg i goeden benderfynu: mae'r algorithm yn dechrau gyda nod "gwraidd", ac mae'r goeden yn cynnwys nodau sy'n cynrychioli penderfyniadau neu gamau gweithredu. Fodd bynnag, mae yna ychydig o wahaniaethau allweddol:

  • Mae nodau bellach yn dychwelyd un o dri gwerth: Wedi llwyddo (os yw'r swydd wedi'i chwblhau), Wedi methu (os na ellir ei chychwyn), neu Rhedeg (os yw'n dal i redeg ac nid oes canlyniad terfynol).
  • Nid oes mwy o nodau penderfynu i ddewis rhwng dau ddewis arall. Yn lle hynny, nodau Addurnwr ydyn nhw, sydd ag un nod plentyn. Os Llwyddant, byddant yn gweithredu eu hunig nod plentyn.
  • Mae nodau sy'n perfformio gweithredoedd yn dychwelyd gwerth Rhedeg i gynrychioli'r gweithredoedd sy'n cael eu cyflawni.

Gellir cyfuno'r set fach hon o nodau i greu nifer fawr o ymddygiadau cymhleth. Gadewch i ni ddychmygu'r gwarchodwr HFSM o'r enghraifft flaenorol fel coeden ymddygiad:

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Gyda'r strwythur hwn ni ddylai fod unrhyw drawsnewid amlwg o wladwriaethau segura/patrôl i Ymosod neu unrhyw gyflwr arall. Os bydd gelyn yn weladwy ac iechyd y cymeriad yn isel, bydd y dienyddiad yn dod i ben wrth y nôd Ffoi, ni waeth pa nôd yr oedd yn ei ddienyddio o'r blaen - Patrolio, Segur, Ymosod, neu unrhyw un arall.

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Mae coed ymddygiad yn gymhleth - mae yna lawer o ffyrdd i'w cyfansoddi, a gall dod o hyd i'r cyfuniad cywir o addurnwyr a nodau cyfansawdd fod yn heriol. Mae yna gwestiynau hefyd ynglŷn â pha mor aml i wirio’r goeden – ydyn ni am fynd drwy bob rhan ohoni neu dim ond pan fydd un o’r amodau wedi newid? Sut ydyn ni'n storio cyflwr nodau - sut ydyn ni'n gwybod pryd rydyn ni wedi bod yn segura am 10 eiliad, neu sut ydyn ni'n gwybod pa nodau oedd yn gweithredu y tro diwethaf er mwyn i ni allu prosesu'r dilyniant yn gywir?

Dyna pam mae yna lawer o weithrediadau. Er enghraifft, mae rhai systemau wedi disodli nodau addurno gydag addurnwyr mewnol. Maent yn ail-werthuso'r goeden pan fydd amodau'r addurnwr yn newid, yn helpu i uno nodau, ac yn darparu diweddariadau cyfnodol.

System sy'n seiliedig ar gyfleustodau

Mae gan rai gemau lawer o wahanol fecanegau. Mae'n ddymunol eu bod yn derbyn holl fanteision rheolau pontio syml a chyffredinol, ond nid o reidrwydd ar ffurf coeden ymddygiad gyflawn. Yn hytrach na chael set glir o ddewisiadau neu goeden o gamau gweithredu posibl, mae'n haws archwilio'r holl gamau gweithredu a dewis yr un mwyaf priodol ar hyn o bryd.

Bydd y system sy'n seiliedig ar Gyfleustodau yn helpu gyda hyn yn unig. Mae hon yn system lle mae gan yr asiant amrywiaeth o gamau gweithredu ac mae'n dewis pa rai i'w perfformio yn seiliedig ar ddefnyddioldeb cymharol pob un. Lle mae defnyddioldeb yn fesur mympwyol o ba mor bwysig neu ddymunol yw hi i'r asiant gyflawni'r weithred hon.

Mae defnyddioldeb cyfrifedig gweithred yn seiliedig ar y cyflwr presennol a'r amgylchedd, gall yr asiant wirio a dewis y cyflwr arall mwyaf priodol ar unrhyw adeg. Mae hyn yn debyg i PYDd, ac eithrio lle mae trawsnewidiadau'n cael eu pennu gan amcangyfrif ar gyfer pob cyflwr posibl, gan gynnwys yr un presennol. Sylwch ein bod yn dewis y cam mwyaf defnyddiol i symud ymlaen (neu aros os ydym eisoes wedi'i gwblhau). I gael mwy o amrywiaeth, gallai hwn fod yn ddetholiad cytbwys ond ar hap o restr fach.

Mae'r system yn pennu ystod fympwyol o werthoedd cyfleustodau - er enghraifft, o 0 (hollol annymunol) i 100 (hollol ddymunol). Mae gan bob gweithred nifer o baramedrau sy'n effeithio ar gyfrifo'r gwerth hwn. Dychwelyd at ein hesiampl gwarcheidwad:

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Mae'r trawsnewidiadau rhwng gweithredoedd yn amwys - gall unrhyw wladwriaeth ddilyn unrhyw un arall. Ceir blaenoriaethau gweithredu yn y gwerthoedd cyfleustodau a ddychwelwyd. Os yw gelyn yn weladwy, a bod y gelyn hwnnw'n gryf, a bod iechyd y cymeriad yn isel, yna bydd Fleeing a FindingHelp yn dychwelyd gwerthoedd di-sero uchel. Yn yr achos hwn, bydd FindingHelp bob amser yn uwch. Yn yr un modd, nid yw gweithgareddau nad ydynt yn ymwneud â brwydro byth yn dychwelyd mwy na 50, felly byddant bob amser yn is na rhai ymladd. Mae angen i chi gymryd hyn i ystyriaeth wrth greu gweithredoedd a chyfrifo eu defnyddioldeb.

Yn ein hesiampl, mae'r gweithredoedd yn dychwelyd naill ai gwerth cyson sefydlog neu un o ddau werth sefydlog. Byddai system fwy realistig yn dychwelyd amcangyfrif o ystod barhaus o werthoedd. Er enghraifft, mae'r weithred Ffoi yn dychwelyd gwerthoedd cyfleustodau uwch os yw iechyd yr asiant yn isel, ac mae'r weithred Ymosod yn dychwelyd gwerthoedd cyfleustodau is os yw'r gelyn yn rhy gryf. Oherwydd hyn, mae'r weithred Ffoi yn cael blaenoriaeth dros Ymosod mewn unrhyw sefyllfa lle mae'r asiant yn teimlo nad oes ganddo ddigon o iechyd i drechu'r gelyn. Mae hyn yn caniatáu i gamau gweithredu gael eu blaenoriaethu yn seiliedig ar unrhyw nifer o feini prawf, gan wneud y dull hwn yn fwy hyblyg ac amrywiol na choeden ymddygiad neu PYDd.

Mae gan bob cam gweithredu lawer o amodau ar gyfer cyfrifo rhaglen. Gellir eu hysgrifennu mewn iaith sgriptio neu fel cyfres o fformiwlâu mathemategol. Mae'r Sims, sy'n efelychu trefn ddyddiol cymeriad, yn ychwanegu haen ychwanegol o gyfrifo - mae'r asiant yn derbyn cyfres o "gymhellion" sy'n dylanwadu ar raddfeydd cyfleustodau. Os yw cymeriad yn newynog, byddant yn dod yn fwy newynog fyth dros amser, a bydd gwerth cyfleustodau'r weithred EatFood yn cynyddu nes bod y cymeriad yn ei berfformio, gan leihau'r lefel newyn a dychwelyd y gwerth EatFood i sero.

Mae'r syniad o ddewis camau gweithredu yn seiliedig ar system raddio yn eithaf syml, felly gellir defnyddio system sy'n seiliedig ar Gyfleustodau fel rhan o brosesau gwneud penderfyniadau AI, yn hytrach nag yn eu lle yn llwyr. Gall y goeden benderfynu ofyn am sgôr cyfleustodau o ddau nod plentyn a dewis yr un uchaf. Yn yr un modd, gall coeden ymddygiad gael nod Cyfleustodau cyfansawdd i werthuso defnyddioldeb gweithredoedd i benderfynu pa blentyn i'w gyflawni.

Symud a llywio

Yn yr enghreifftiau blaenorol, roedd gennym blatfform yr oeddem yn ei symud i'r chwith neu'r dde, a gwarchodwr a oedd yn patrolio neu'n ymosod. Ond sut yn union ydyn ni'n delio â symudiad asiant dros gyfnod o amser? Sut ydyn ni'n gosod cyflymder, sut ydyn ni'n osgoi rhwystrau, a sut ydyn ni'n cynllunio llwybr pan fydd cyrraedd cyrchfan yn anoddach na dim ond symud mewn llinell syth? Gadewch i ni edrych ar hyn.

Rheoli

Yn y cam cychwynnol, byddwn yn tybio bod gan bob asiant werth cyflymder, sy'n cynnwys pa mor gyflym y mae'n symud ac i ba gyfeiriad. Gellir ei fesur mewn metrau yr eiliad, cilomedr yr awr, picsel yr eiliad, ac ati Gan gofio'r ddolen Synnwyr/Meddwl/Gweithredu, gallwn ddychmygu bod y rhan Think yn dewis cyflymder, ac mae'r rhan Ddeddf yn cymhwyso'r cyflymder hwnnw i'r asiant. Yn nodweddiadol mae gan gemau system ffiseg sy'n gwneud y dasg hon i chi, gan ddysgu gwerth cyflymder pob gwrthrych a'i addasu. Felly, gallwch chi adael yr AI gydag un dasg - i benderfynu pa gyflymder y dylai'r asiant ei gael. Os ydych chi'n gwybod ble y dylai'r asiant fod, yna mae angen i chi ei symud i'r cyfeiriad cywir ar gyflymder penodol. Hafaliad dibwys iawn:

wish_travel = destination_position – agent_position

Dychmygwch fyd 2D. Mae'r asiant ar bwynt (-2,-2), mae'r cyrchfan rhywle yn y gogledd-ddwyrain ar bwynt (30, 20), a'r llwybr gofynnol i'r asiant gyrraedd yno yw (32, 22). Dywedwch fod y safleoedd hyn yn cael eu mesur mewn metrau - os cymerwn fod buanedd yr asiant yn 5 metr yr eiliad, yna byddwn yn graddio ein fector dadleoli ac yn cael buanedd o tua (4.12, 2.83). Gyda'r paramedrau hyn, byddai'r asiant yn cyrraedd ei gyrchfan mewn bron i 8 eiliad.

Gallwch ailgyfrifo'r gwerthoedd ar unrhyw adeg. Pe bai'r asiant hanner ffordd i'r targed, byddai'r symudiad yn hanner yr hyd, ond gan mai cyflymder uchaf yr asiant yw 5 m/s (penderfynasom ar hyn uchod), bydd y buanedd yr un peth. Mae hyn hefyd yn gweithio ar gyfer symud targedau, gan ganiatáu i'r asiant wneud newidiadau bach wrth iddynt symud.

Ond rydyn ni eisiau mwy o amrywiad - er enghraifft, cynyddu'n araf y cyflymder i efelychu cymeriad sy'n symud o sefyll i redeg. Gellir gwneud yr un peth ar y diwedd cyn stopio. Gelwir y nodweddion hyn yn ymddygiadau llywio, ac mae gan bob un ohonynt enwau penodol: Ceisio, Ffoi, Cyrraedd, ac ati Y syniad yw y gellir cymhwyso grymoedd cyflymu i gyflymder yr asiant, yn seiliedig ar gymharu safle'r asiant a chyflymder cyfredol â'r cyrchfan yn er mwyn defnyddio gwahanol ddulliau o symud at y nod.

Mae pwrpas ychydig yn wahanol i bob ymddygiad. Mae Ceisio a Chyrraedd yn ffyrdd o symud asiant i gyrchfan. Mae Osgoi a Gwahanu Rhwystrau yn addasu symudiad yr asiant i osgoi rhwystrau ar y ffordd i'r nod. Mae Aliniad a Chydlyniant yn cadw asiantau i symud gyda'i gilydd. Gellir crynhoi unrhyw nifer o wahanol ymddygiadau llywio i gynhyrchu fector un llwybr gan ystyried yr holl ffactorau. Asiant sy'n defnyddio'r ymddygiadau Cyrraedd, Gwahanu ac Osgoi Rhwystrau i gadw draw oddi wrth waliau ac asiantau eraill. Mae'r dull hwn yn gweithio'n dda mewn lleoliadau agored heb fanylion diangen.

Mewn amodau mwy anodd, mae ychwanegu gwahanol ymddygiadau yn gweithio'n waeth - er enghraifft, gall asiant fynd yn sownd mewn wal oherwydd gwrthdaro rhwng Cyrraedd ac Osgoi Rhwystrau. Felly, mae angen i chi ystyried opsiynau sy'n fwy cymhleth na dim ond ychwanegu'r holl werthoedd. Y ffordd yw hyn: yn lle adio canlyniadau pob ymddygiad, gallwch ystyried symud i wahanol gyfeiriadau a dewis yr opsiwn gorau.

Fodd bynnag, mewn amgylchedd cymhleth gyda phenderfynau a dewisiadau ynghylch pa ffordd i fynd, bydd angen rhywbeth hyd yn oed yn fwy datblygedig arnom.

Dod o hyd i ffordd

Mae ymddygiad llywio yn wych ar gyfer symudiad syml mewn man agored (cae pêl-droed neu arena) lle mae mynd o A i B yn llwybr syth gyda dim ond ychydig o ddargyfeiriadau o amgylch rhwystrau. Ar gyfer llwybrau cymhleth, mae angen braenaru arnom, sy’n ffordd o archwilio’r byd a phenderfynu ar lwybr drwyddo.

Y symlaf yw rhoi grid ar bob sgwâr wrth ymyl yr asiant a gwerthuso pa un ohonynt sy'n cael symud. Os yw un ohonynt yn gyrchfan, yna dilynwch y llwybr o bob sgwâr i'r un blaenorol nes i chi gyrraedd y dechrau. Dyma'r llwybr. Fel arall, ailadroddwch y broses gyda sgwariau eraill cyfagos nes i chi ddod o hyd i'ch cyrchfan neu os byddwch yn rhedeg allan o sgwariau (sy'n golygu nad oes llwybr posibl). Dyma'r hyn a elwir yn ffurfiol yn Chwiliad Eang-First neu BFS (algorithm chwilio ehangder-gyntaf). Ar bob cam mae'n edrych i bob cyfeiriad (felly ehangder, "lled"). Mae'r gofod chwilio fel blaen ton sy'n symud nes iddo gyrraedd y lleoliad a ddymunir - mae'r gofod chwilio yn ehangu ar bob cam nes bod y pwynt gorffen wedi'i gynnwys, ac ar ôl hynny gellir ei olrhain yn ôl i'r dechrau.

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

O ganlyniad, byddwch yn derbyn rhestr o sgwariau y mae'r llwybr a ddymunir yn cael ei lunio ar ei hyd. Dyma'r llwybr (felly, braenaru) - rhestr o leoedd y bydd yr asiant yn ymweld â nhw wrth ddilyn y cyrchfan.

O ystyried ein bod yn gwybod lleoliad pob sgwâr yn y byd, gallwn ddefnyddio ymddygiad llywio i symud ar hyd y llwybr - o nod 1 i nod 2, yna o nod 2 i nod 3, ac ati. Yr opsiwn symlaf yw anelu at ganol y sgwâr nesaf, ond opsiwn gwell fyth yw stopio yng nghanol yr ymyl rhwng y sgwâr presennol a'r sgwâr nesaf. Oherwydd hyn, bydd yr asiant yn gallu torri corneli ar droadau miniog.

Mae anfanteision i algorithm BFS hefyd – mae’n archwilio cymaint o sgwariau i’r cyfeiriad “anghywir” ag yn y cyfeiriad “cywir”. Dyma lle mae algorithm mwy cymhleth o'r enw A* (seren) yn dod i rym. Mae'n gweithio yr un ffordd, ond yn lle archwilio sgwariau cymdogion yn ddall (yna cymdogion cymdogion, yna cymdogion cymdogion cymdogion, ac yn y blaen), mae'n casglu'r nodau i restr ac yn eu didoli fel mai'r nod nesaf a archwilir bob amser yw'r un sy'n arwain at y llwybr byrraf. Mae nodau'n cael eu didoli ar sail hewristig sy'n ystyried dau beth - “cost” llwybr damcaniaethol i'r sgwâr dymunol (gan gynnwys unrhyw gostau teithio) ac amcangyfrif o ba mor bell yw'r sgwâr hwnnw o'r cyrchfan (gan ragfarnu'r chwiliad yn y cyfeiriad iawn).

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Mae'r enghraifft hon yn dangos bod yr asiant yn archwilio un sgwâr ar y tro, gan ddewis yr un cyfagos sydd fwyaf addawol bob tro. Mae'r llwybr canlyniadol yr un fath â BFS, ond ystyriwyd llai o sgwariau yn y broses - sy'n cael effaith fawr ar berfformiad gêm.

Symud heb grid

Ond nid yw'r rhan fwyaf o gemau wedi'u gosod ar grid, ac yn aml mae'n amhosibl gwneud hynny heb aberthu realaeth. Mae angen cyfaddawdau. Pa faint ddylai'r sgwariau fod? Yn rhy fawr ac ni fyddant yn gallu cynrychioli coridorau neu droeon bach yn gywir, yn rhy fach a bydd gormod o sgwariau i chwilio amdanynt, a fydd yn y pen draw yn cymryd llawer o amser.

Y peth cyntaf i'w ddeall yw bod rhwyll yn rhoi graff o nodau cysylltiedig i ni. Mae'r algorithmau A* a BFS mewn gwirionedd yn gweithio ar graffiau ac nid ydynt yn poeni am ein rhwyll o gwbl. Gallem roi nodau yn unrhyw le yn y byd gêm: cyn belled â bod cysylltiad rhwng unrhyw ddau nod cysylltiedig, yn ogystal â rhwng y pwyntiau cychwyn a diwedd ac o leiaf un o'r nodau, bydd yr algorithm yn gweithio cystal ag o'r blaen. Gelwir hyn yn aml yn system cyfeirbwynt, gan fod pob nod yn cynrychioli safle arwyddocaol yn y byd a all fod yn rhan o unrhyw nifer o lwybrau damcaniaethol.

Sut i greu AI hapchwarae: canllaw i ddechreuwyr
Enghraifft 1: cwlwm ym mhob sgwâr. Mae'r chwiliad yn dechrau o'r nod lle mae'r asiant wedi'i leoli ac yn gorffen ar nod y sgwâr a ddymunir.

Sut i greu AI hapchwarae: canllaw i ddechreuwyr
Enghraifft 2: Set lai o nodau (cyfeirbwyntiau). Mae'r chwiliad yn dechrau yn sgwâr yr asiant, yn mynd trwy'r nifer gofynnol o nodau, ac yna'n parhau i'r gyrchfan.

Mae hon yn system gwbl hyblyg a phwerus. Ond mae angen rhywfaint o ofal wrth benderfynu ble a sut i osod cyfeirbwynt, neu efallai na fydd asiantau yn gweld y pwynt agosaf ac ni fyddant yn gallu cychwyn ar y llwybr. Byddai'n haws pe gallem osod cyfeirbwyntiau yn awtomatig ar sail geometreg y byd.

Dyma lle mae'r rhwyll llywio neu navmesh (rhwyll llywio) yn ymddangos. Fel arfer mae hwn yn rwyll 2D o drionglau sy'n cael ei droshaenu ar geometreg y byd - lle bynnag y caniateir i'r asiant gerdded. Mae pob un o'r trionglau yn y rhwyll yn dod yn nod yn y graff, ac mae ganddo hyd at dri triongl cyfagos sy'n dod yn nodau cyfagos yn y graff.

Mae'r llun hwn yn enghraifft o injan Unity - dadansoddodd geometreg y byd a chreu navmesh (yn y sgrin mewn glas golau). Mae pob polygon mewn navmesh yn ardal lle gall asiant sefyll neu symud o un polygon i bolygon arall. Yn yr enghraifft hon, mae'r polygonau yn llai na'r lloriau y maent wedi'u lleoli arnynt - gwneir hyn er mwyn ystyried maint yr asiant, a fydd yn ymestyn y tu hwnt i'w safle enwol.

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Gallwn chwilio am lwybr drwy'r rhwyll hon, eto gan ddefnyddio'r algorithm A*. Bydd hyn yn rhoi llwybr perffaith bron i ni yn y byd, sy'n ystyried yr holl geometreg ac nad oes angen nodau diangen a chreu cyfeirbwyntiau.

Mae braenaru yn bwnc rhy eang nad yw un adran o erthygl yn ddigon ar ei gyfer. Os ydych chi am ei astudio'n fanylach, yna bydd hyn yn helpu Gwefan Amit Patel.

Cynllunio

Rydym wedi dysgu gyda braenaru nad yw weithiau'n ddigon i ddewis cyfeiriad a symud - mae'n rhaid i ni ddewis llwybr a gwneud ychydig o droeon i gyrraedd ein cyrchfan dymunol. Gallwn gyffredinoli'r syniad hwn: nid y cam nesaf yn unig yw cyflawni nod, ond dilyniant cyfan lle weithiau mae angen i chi edrych ymlaen sawl cam i ddarganfod beth ddylai'r cyntaf fod. Yr enw ar hyn yw cynllunio. Gellir meddwl am fraenaru fel un o sawl estyniad i gynllunio. O ran ein cylch Synnwyr/Meddwl/Gweithredu, dyma lle mae’r rhan Meddwl yn cynllunio rhannau lluosog o’r Ddeddf ar gyfer y dyfodol.

Gadewch i ni edrych ar enghraifft y gêm fwrdd Hud: The Gathering. Rydyn ni'n mynd gyntaf gyda'r set ganlynol o gardiau yn ein dwylo:

  • Cors - Yn rhoi 1 mana du (cerdyn tir).
  • Coedwig - yn rhoi 1 mana gwyrdd (cerdyn tir).
  • Dewin ar Ffo - Angen 1 mana glas i wysio.
  • Elvish Mystic - Angen 1 mana gwyrdd i alw.

Rydym yn anwybyddu'r tri cherdyn sy'n weddill i'w gwneud yn haws. Yn ôl y rheolau, caniateir i chwaraewr chwarae 1 cerdyn tir y tro, gall “tapio” y cerdyn hwn i dynnu mana ohono, ac yna bwrw swynion (gan gynnwys galw creadur) yn ôl faint o fana. Yn y sefyllfa hon, mae'r chwaraewr dynol yn gwybod chwarae Coedwig, tapio 1 mana gwyrdd, ac yna galw Elvish Mystic. Ond sut gall y gêm AI ddatrys hyn?

Cynllunio hawdd

Y dull dibwys yw rhoi cynnig ar bob cam yn ei dro nes nad oes unrhyw rai addas ar ôl. Trwy edrych ar y cardiau, mae'r AI yn gweld yr hyn y gall Swamp ei chwarae. Ac mae'n ei chwarae. A oes unrhyw gamau eraill ar ôl y tro hwn? Ni all alw naill ai Elvish Mystic neu Fugitive Wizard, gan fod angen mana gwyrdd a glas arnynt i'w galw, tra bod Swamp yn darparu mana du yn unig. Ac ni fydd yn gallu chwarae Forest mwyach, oherwydd ei fod eisoes wedi chwarae Swamp. Felly, dilynodd y gêm AI y rheolau, ond gwnaeth hynny'n wael. Gellir ei wella.

Gall cynllunio ddod o hyd i restr o gamau gweithredu sy'n dod â'r gêm i'r cyflwr dymunol. Yn union fel yr oedd gan bob sgwâr ar lwybr gymdogion (mewn braenaru), mae gan bob cam gweithredu mewn cynllun gymdogion neu olynwyr hefyd. Gallwn edrych am y gweithredoedd hyn a gweithredoedd dilynol nes i ni gyrraedd y cyflwr dymunol.

Yn ein hesiampl, y canlyniad a ddymunir yw “gwys creadur os yn bosibl.” Ar ddechrau'r tro, dim ond dwy weithred bosibl a welwn a ganiateir gan reolau'r gêm:

1. Chwarae Gors (canlyniad: Gors yn y gêm)
2. Chwarae Coedwig (canlyniad: Coedwig yn y gêm)

Gall pob cam a gymerir arwain at gamau pellach a chau eraill, eto yn dibynnu ar reolau'r gêm. Dychmygwch ein bod yn chwarae Swamp - bydd hyn yn cael gwared ar Swamp fel y cam nesaf (fe wnaethom ei chwarae eisoes), a bydd hyn hefyd yn cael gwared ar Goedwig (oherwydd yn ôl y rheolau gallwch chi chwarae un cerdyn tir fesul tro). Ar ôl hyn, mae'r AI yn ychwanegu cael 1 mana du fel y cam nesaf oherwydd nad oes unrhyw opsiynau eraill. Os bydd yn mynd yn ei flaen ac yn dewis Tap the Swamp, bydd yn derbyn 1 uned o mana du ac ni fydd yn gallu gwneud unrhyw beth ag ef.

1. Chwarae Gors (canlyniad: Gors yn y gêm)
1.1 Cors “Tap” (canlyniad: Cors “wedi ei dapio”, +1 uned o mana du)
Dim gweithredoedd ar gael - DIWEDD
2. Chwarae Coedwig (canlyniad: Coedwig yn y gêm)

Roedd y rhestr o gamau gweithredu yn fyr, fe gyrhaeddon ni ben draw. Rydym yn ailadrodd y broses ar gyfer y cam nesaf. Rydyn ni'n chwarae Coedwig, yn agor y weithred “get 1 green mana”, a fydd yn ei dro yn agor y drydedd weithred - galw Elvish Mystic.

1. Chwarae Gors (canlyniad: Gors yn y gêm)
1.1 Cors “Tap” (canlyniad: Cors “wedi ei dapio”, +1 uned o mana du)
Dim gweithredoedd ar gael - DIWEDD
2. Chwarae Coedwig (canlyniad: Coedwig yn y gêm)
2.1 Coedwig “Tap” (canlyniad: Coedwig yn cael ei “tapio”, +1 uned o mana gwyrdd)
2.1.1 Galw Elvish Mystic (canlyniad: Elvish Mystic yn chwarae, -1 mana gwyrdd)
Dim gweithredoedd ar gael - DIWEDD

Yn olaf, fe wnaethom archwilio pob cam posibl a dod o hyd i gynllun sy'n galw creadur.

Mae hon yn enghraifft syml iawn. Mae'n ddoeth dewis y cynllun gorau posibl, yn hytrach nag unrhyw gynllun sy'n bodloni rhai meini prawf yn unig. Yn gyffredinol, mae'n bosibl gwerthuso cynlluniau posibl yn seiliedig ar ganlyniad neu fudd cyffredinol eu gweithredu. Gallwch chi sgorio 1 pwynt am chwarae cerdyn tir a 3 phwynt am wysio creadur. Byddai chwarae cors yn gynllun 1 pwynt. A chwarae Coedwig → Tap the Forest → gwysio Elvish Mystic Bydd yn syth yn rhoi 4 pwynt.

Dyma sut mae cynllunio yn gweithio yn Hud: The Gathering, ond mae'r un rhesymeg yn berthnasol mewn sefyllfaoedd eraill. Er enghraifft, symud gwystl i wneud lle i'r esgob symud mewn gwyddbwyll. Neu cymerwch orchudd y tu ôl i wal i saethu'n ddiogel yn XCOM fel hyn. Yn gyffredinol, rydych chi'n cael y syniad.

Gwell cynllunio

Weithiau mae gormod o gamau gweithredu posibl i ystyried pob opsiwn posibl. Dychwelyd at yr enghraifft gyda Hud: The Gathering: gadewch i ni ddweud bod yna nifer o gardiau tir a chreadur yn y gêm ac yn eich llaw - gall nifer y cyfuniadau posibl o symudiadau fod yn y dwsinau. Mae yna nifer o atebion i'r broblem.

Y dull cyntaf yw cadwyno tuag yn ôl. Yn lle rhoi cynnig ar yr holl gyfuniadau, mae'n well dechrau gyda'r canlyniad terfynol a cheisio dod o hyd i lwybr uniongyrchol. Yn lle mynd o wraidd y goeden i ddeilen benodol, rydym yn symud i'r cyfeiriad arall - o'r ddeilen i'r gwreiddyn. Mae'r dull hwn yn haws ac yn gyflymach.

Os oes gan y gelyn 1 iechyd, gallwch ddod o hyd i'r cynllun "dêl 1 neu fwy o ddifrod". Er mwyn cyflawni hyn, rhaid bodloni nifer o amodau:

1. Gall difrod gael ei achosi gan swyn - mae'n rhaid ei fod mewn llaw.
2. I fwrw swyn, mae angen mana.
3. I gael mana, mae angen i chi chwarae cerdyn tir.
4. I chwarae cerdyn tir, mae angen i chi ei gael yn eich llaw.

Ffordd arall yw'r chwiliad gorau yn gyntaf. Yn lle rhoi cynnig ar yr holl lwybrau, rydyn ni'n dewis yr un mwyaf addas. Yn fwyaf aml, mae'r dull hwn yn rhoi'r cynllun gorau posibl heb gostau chwilio diangen. Mae A* yn fath o chwiliad cyntaf gorau - trwy archwilio'r llwybrau mwyaf addawol o'r dechrau, mae eisoes yn gallu dod o hyd i'r llwybr gorau heb orfod gwirio opsiynau eraill.

Opsiwn chwilio gorau-cyntaf diddorol a chynyddol boblogaidd yw Chwilio Coed Monte Carlo. Yn hytrach na dyfalu pa gynlluniau sy'n well nag eraill wrth ddewis pob cam dilynol, mae'r algorithm yn dewis olynwyr ar hap ar bob cam nes iddo gyrraedd y diwedd (pan arweiniodd y cynllun at fuddugoliaeth neu drechu). Yna defnyddir y canlyniad terfynol i gynyddu neu leihau pwysau opsiynau blaenorol. Trwy ailadrodd y broses hon sawl gwaith yn olynol, mae'r algorithm yn rhoi amcangyfrif da o beth yw'r symudiad nesaf gorau, hyd yn oed os yw'r sefyllfa'n newid (os yw'r gelyn yn cymryd camau i ymyrryd â'r chwaraewr).

Ni fyddai unrhyw stori am gynllunio mewn gemau yn gyflawn heb Gynllun Gweithredu sy'n Canolbwyntio ar Nodau neu GOAP (cynllunio gweithredu sy'n canolbwyntio ar nodau). Mae hwn yn ddull a ddefnyddir ac a drafodir yn eang, ond heblaw am ychydig o fanylion gwahaniaethol, yn ei hanfod dyma'r dull cadwyno tuag yn ôl y buom yn siarad amdano'n gynharach. Os mai'r amcan oedd "dinistrio'r chwaraewr" a bod y chwaraewr y tu ôl i'r clawr, gallai'r cynllun fod: dinistrio gyda grenâd → ei gael → ei daflu.

Fel arfer mae sawl nod, pob un â'i flaenoriaeth ei hun. Os na ellir cwblhau'r amcan blaenoriaeth uchaf (nid oes unrhyw gyfuniad o gamau gweithredu yn creu cynllun "lladd y chwaraewr" oherwydd nad yw'r chwaraewr yn weladwy), bydd yr AI yn disgyn yn ôl i amcanion blaenoriaeth is.

Hyfforddiant ac addasu

Rydym eisoes wedi dweud nad yw gêm AI fel arfer yn defnyddio dysgu peiriant oherwydd nid yw'n addas ar gyfer rheoli asiantau mewn amser real. Ond nid yw hyn yn golygu na allwch fenthyg rhywbeth o'r ardal hon. Rydyn ni eisiau gwrthwynebydd mewn saethwr y gallwn ddysgu rhywbeth ohono. Er enghraifft, dysgwch am y lleoliadau gorau ar y map. Neu wrthwynebydd mewn gêm ymladd a fyddai'n rhwystro symudiadau combo y chwaraewr a ddefnyddir yn aml, gan ei gymell i ddefnyddio eraill. Felly gall dysgu peirianyddol fod yn eithaf defnyddiol mewn sefyllfaoedd o'r fath.

Ystadegau a Tebygolrwydd

Cyn inni fynd i mewn i enghreifftiau cymhleth, gadewch i ni weld pa mor bell y gallwn fynd drwy gymryd ychydig o fesuriadau syml a'u defnyddio i wneud penderfyniadau. Er enghraifft, strategaeth amser real - sut ydyn ni'n penderfynu a all chwaraewr lansio ymosodiad yn ystod ychydig funudau cyntaf y gêm a pha amddiffyniad i'w baratoi yn erbyn hyn? Gallwn astudio profiadau chwaraewr yn y gorffennol i ddeall beth allai ymateb fod yn y dyfodol. I ddechrau, nid oes gennym ddata crai o'r fath, ond gallwn ei gasglu - bob tro y mae AI yn chwarae yn erbyn bod dynol, gall gofnodi amser yr ymosodiad cyntaf. Ar ôl ychydig o sesiynau, byddwn yn cael cyfartaledd o'r amser y bydd yn ei gymryd i'r chwaraewr ymosod yn y dyfodol.

Mae yna broblem hefyd gyda gwerthoedd cyfartalog: pe bai chwaraewr yn rhuthro 20 gwaith ac yn chwarae'n araf 20 gwaith, yna bydd y gwerthoedd gofynnol yn rhywle yn y canol, ac ni fydd hyn yn rhoi unrhyw beth defnyddiol i ni. Un ateb yw cyfyngu ar y data mewnbwn - gellir cymryd yr 20 darn olaf i ystyriaeth.

Defnyddir dull tebyg wrth amcangyfrif tebygolrwydd rhai gweithredoedd trwy dybio y bydd hoffterau'r chwaraewr yn y gorffennol yr un peth yn y dyfodol. Os yw chwaraewr yn ymosod arnom bum gwaith gyda phêl dân, ddwywaith gyda mellt, ac unwaith gyda melee, mae'n amlwg ei bod yn well ganddo bêl dân. Gadewch i ni allosod a gweld y tebygolrwydd o ddefnyddio gwahanol arfau: pelen dân = 62,5%, mellt = 25% a melee = 12,5%. Mae angen i'n gêm AI baratoi i amddiffyn ei hun rhag tân.

Dull diddorol arall yw defnyddio'r Naive Bayes Classifier i astudio llawer iawn o ddata mewnbwn a dosbarthu'r sefyllfa fel bod yr AI yn ymateb yn y ffordd a ddymunir. Mae dosbarthwyr Bayesaidd yn fwyaf adnabyddus am eu defnydd mewn hidlwyr sbam e-bost. Yno, maen nhw'n archwilio'r geiriau, yn eu cymharu â lle mae'r geiriau hynny wedi ymddangos o'r blaen (mewn sbam neu beidio), ac yn dod i gasgliadau am negeseuon e-bost sy'n dod i mewn. Gallwn wneud yr un peth hyd yn oed gyda llai o fewnbynnau. Yn seiliedig ar yr holl wybodaeth ddefnyddiol y mae'r AI yn ei weld (fel pa unedau gelyn sy'n cael eu creu, neu ba swynion maen nhw'n eu defnyddio, neu ba dechnolegau y maen nhw wedi ymchwilio iddynt), a'r canlyniad terfynol (rhyfel neu heddwch, rhuthro neu amddiffyn, ac ati) - byddwn yn dewis yr ymddygiad AI dymunol.

Mae'r holl ddulliau hyfforddi hyn yn ddigonol, ond fe'ch cynghorir i'w defnyddio yn seiliedig ar ddata profi. Bydd yr AI yn dysgu addasu i'r gwahanol strategaethau y mae eich profwyr chwarae wedi'u defnyddio. Gall AI sy'n addasu i'r chwaraewr ar ôl ei ryddhau ddod yn rhy rhagweladwy neu'n rhy anodd ei drechu.

Addasiad ar sail gwerth

O ystyried cynnwys ein byd gêm a’r rheolau, gallwn newid y set o werthoedd sy’n dylanwadu ar wneud penderfyniadau, yn hytrach na defnyddio’r data mewnbwn yn unig. Rydym yn gwneud hyn:

  • Gadewch i'r AI gasglu data ar gyflwr y byd a digwyddiadau allweddol yn ystod y gêm (fel uchod).
  • Gadewch i ni newid ychydig o werthoedd pwysig yn seiliedig ar y data hwn.
  • Rydym yn gweithredu ein penderfyniadau yn seiliedig ar brosesu neu werthuso'r gwerthoedd hyn.

Er enghraifft, mae gan asiant sawl ystafell i ddewis ohonynt ar fap saethwr person cyntaf. Mae gan bob ystafell ei gwerth ei hun, sy'n pennu pa mor ddymunol yw ymweld. Mae'r AI ar hap yn dewis pa ystafell i fynd iddi yn seiliedig ar y gwerth. Yna mae'r asiant yn cofio ym mha ystafell y cafodd ei ladd ac yn lleihau ei gwerth (y tebygolrwydd y bydd yn dychwelyd yno). Yn yr un modd ar gyfer y sefyllfa wrth gefn - os yw'r asiant yn dinistrio llawer o wrthwynebwyr, yna mae gwerth yr ystafell yn cynyddu.

Model Markov

Beth pe baem yn defnyddio'r data a gasglwyd i wneud rhagfynegiadau? Os ydym yn cofio pob ystafell y gwelwn y chwaraewr ynddi am gyfnod penodol o amser, byddwn yn rhagweld i ba ystafell y gallai'r chwaraewr fynd. Trwy olrhain a chofnodi symudiadau'r chwaraewr ar draws ystafelloedd (gwerthoedd), gallwn eu rhagweld.

Gadewch i ni gymryd tair ystafell: coch, gwyrdd a glas. A hefyd y sylwadau a gofnodwyd gennym wrth wylio'r sesiwn gêm:

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Mae nifer yr arsylwadau ym mhob ystafell bron yn gyfartal - dydyn ni dal ddim yn gwybod ble i wneud lle da ar gyfer cudd-ymosod. Mae casglu ystadegau hefyd yn cael ei gymhlethu gan ail-silio chwaraewyr, sy'n ymddangos yn gyfartal trwy'r map. Ond mae'r data am yr ystafell nesaf y maent yn mynd i mewn ar ôl ymddangos ar y map eisoes yn ddefnyddiol.

Gellir gweld bod yr ystafell werdd yn siwtio'r chwaraewyr - mae'r rhan fwyaf o bobl yn symud o'r ystafell goch iddi, gyda 50% ohonynt yn aros yno ymhellach. Nid yw'r ystafell las, i'r gwrthwyneb, yn boblogaidd; nid oes bron neb yn mynd iddi, ac os gwnânt hynny, nid ydynt yn aros yn hir.

Ond mae'r data yn dweud rhywbeth pwysicach wrthym - pan fydd chwaraewr mewn ystafell las, bydd yr ystafell nesaf y byddwn yn ei weld ynddi yn goch, nid yn wyrdd. Er bod yr ystafell werdd yn fwy poblogaidd na'r ystafell goch, mae'r sefyllfa'n newid os yw'r chwaraewr yn yr ystafell las. Mae'r cyflwr nesaf (h.y. yr ystafell y bydd y chwaraewr yn mynd iddi) yn dibynnu ar y cyflwr blaenorol (h.y. yr ystafell y mae'r chwaraewr ynddi ar hyn o bryd). Gan ein bod yn archwilio dibyniaethau, byddwn yn gwneud rhagfynegiadau mwy cywir na phe baem yn cyfrif arsylwadau yn annibynnol.

Gelwir rhagweld cyflwr yn y dyfodol yn seiliedig ar ddata o gyflwr y gorffennol yn fodel Markov, a gelwir enghreifftiau o'r fath (gydag ystafelloedd) yn gadwyni Markov. Gan fod y patrymau'n cynrychioli'r tebygolrwydd o newidiadau rhwng cyflyrau olynol, cânt eu harddangos yn weledol fel PYDd gyda thebygolrwydd o amgylch pob trawsnewidiad. Yn flaenorol, defnyddiwyd PYDd i gynrychioli'r cyflwr ymddygiadol yr oedd asiant ynddo, ond mae'r cysyniad hwn yn ymestyn i unrhyw gyflwr, p'un a yw'n gysylltiedig â'r asiant ai peidio. Yn yr achos hwn, mae'r taleithiau'n cynrychioli'r ystafell y mae'r asiant yn ei meddiannu:

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Mae hon yn ffordd syml o gynrychioli'r tebygolrwydd cymharol o newidiadau cyflwr, gan roi rhywfaint o allu i'r AI ragfynegi'r cyflwr nesaf. Gallwch chi ragweld sawl cam ymlaen.

Os yw chwaraewr yn yr ystafell werdd, mae siawns o 50% y bydd yn aros yno y tro nesaf y caiff ei arsylwi. Ond beth yw'r tebygolrwydd y bydd yn dal yno hyd yn oed ar ôl hynny? Nid yn unig mae siawns bod y chwaraewr wedi aros yn yr ystafell werdd ar ôl dau sylw, ond mae siawns hefyd iddo adael a dychwelyd. Dyma'r tabl newydd sy'n ystyried y data newydd:

Sut i greu AI hapchwarae: canllaw i ddechreuwyr

Mae'n dangos y bydd y siawns o weld y chwaraewr yn yr ystafell werdd ar ôl dau arsylwad yn hafal i 51% - 21% y bydd yn dod o'r ystafell goch, 5% ohonynt y bydd y chwaraewr yn ymweld â'r ystafell las rhyngddynt, a 25% na fydd y chwaraewr yn gadael yr ystafell werdd.

Offeryn gweledol yn unig yw'r tabl - dim ond lluosi'r tebygolrwydd ar bob cam y mae'r weithdrefn yn ei gwneud yn ofynnol. Mae hyn yn golygu y gallwch edrych ymhell i'r dyfodol gydag un cafeat: rydym yn cymryd bod y siawns o fynd i mewn i ystafell yn dibynnu'n llwyr ar yr ystafell bresennol. Gelwir hyn yn Eiddo Markov - mae cyflwr y dyfodol yn dibynnu ar y presennol yn unig. Ond nid yw hyn yn gant y cant yn gywir. Gall chwaraewyr newid penderfyniadau yn dibynnu ar ffactorau eraill: lefel iechyd neu faint o fwledi. Gan nad ydym yn cofnodi'r gwerthoedd hyn, bydd ein rhagolygon yn llai cywir.

N-Gramiau

Beth am yr enghraifft o gêm ymladd a rhagweld symudiadau combo y chwaraewr? Yr un! Ond yn lle un cyflwr neu ddigwyddiad, byddwn yn archwilio'r dilyniannau cyfan sy'n rhan o streic combo.

Un ffordd o wneud hyn yw storio pob mewnbwn (fel Kick, Punch neu Block) mewn byffer ac ysgrifennu'r byffer cyfan fel digwyddiad. Felly mae'r chwaraewr yn pwyso dro ar ôl tro Kick, Kick, Punch i ddefnyddio'r ymosodiad SuperDeathFist, mae'r system AI yn storio'r holl fewnbynnau mewn byffer ac yn cofio'r tri olaf a ddefnyddiwyd ym mhob cam.

Sut i greu AI hapchwarae: canllaw i ddechreuwyr
(Y llinellau mewn print trwm yw pan fydd y chwaraewr yn lansio ymosodiad SuperDeathFist.)

Bydd y AI yn gweld yr holl opsiynau pan fydd y chwaraewr yn dewis Kick, ac yna Kick arall, ac yna sylwi bod y mewnbwn nesaf bob amser yn Pwnsh. Bydd hyn yn galluogi'r asiant i ragweld symudiad combo SuperDeathFist a'i rwystro os yn bosibl.

Gelwir y dilyniannau hyn o ddigwyddiadau yn N-gramau, lle N yw nifer yr elfennau sy'n cael eu storio. Yn yr enghraifft flaenorol roedd yn 3-gram (trigram), sy'n golygu: defnyddir y ddau gofnod cyntaf i ragfynegi'r trydydd. Yn unol â hynny, mewn 5-gram, mae'r pedwar cofnod cyntaf yn rhagweld y pumed ac yn y blaen.

Mae angen i'r dylunydd ddewis maint N-gram yn ofalus. Mae angen llai o gof ar N llai ond mae hefyd yn storio llai o hanes. Er enghraifft, bydd 2-gram (bigram) yn cofnodi Kick, Kick or Kick, Punch, ond ni fydd yn gallu storio Kick, Kick, Punch, felly ni fydd yr AI yn ymateb i'r combo SuperDeathFist.

Ar y llaw arall, mae angen mwy o gof ar niferoedd mwy a bydd yr AI yn anoddach i'w hyfforddi gan y bydd llawer mwy o opsiynau posibl. Pe bai gennych dri mewnbwn posibl o Kick, Punch neu Block, a'n bod yn defnyddio 10-gram, byddai hynny tua 60 mil o opsiynau gwahanol.

Mae'r model bigram yn gadwyn Markov syml - mae pob cyflwr gorffennol / cyflwr presennol yn bigram, a gallwch chi ragweld yr ail gyflwr yn seiliedig ar y cyntaf. Gellir meddwl hefyd am y N-gram 3-gram a mwy fel cadwyni Markov, lle mae pob elfen (ac eithrio'r un olaf yn y N-gram) gyda'i gilydd yn ffurfio'r cyflwr cyntaf a'r elfen olaf yr ail. Mae enghraifft y gêm ymladd yn dangos y siawns o drosglwyddo o dalaith Kick and Kick i dalaith Kick and Punch. Trwy drin cofnodion hanes mewnbwn lluosog fel un uned, rydym yn y bôn yn trawsnewid y dilyniant mewnbwn yn rhan o'r cyflwr cyfan. Mae hyn yn rhoi eiddo Markov i ni, sy'n ein galluogi i ddefnyddio cadwyni Markov i ragweld y mewnbwn nesaf a dyfalu pa symudiad combo fydd nesaf.

Casgliad

Buom yn siarad am yr offer a'r dulliau mwyaf cyffredin o ddatblygu deallusrwydd artiffisial. Edrychwyd hefyd ar y sefyllfaoedd lle mae angen eu defnyddio a lle maent yn arbennig o ddefnyddiol.

Dylai hyn fod yn ddigon i ddeall hanfodion gêm AI. Ond, wrth gwrs, nid yw'r rhain i gyd yn ddulliau. Mae llai poblogaidd, ond heb fod yn llai effeithiol yn cynnwys:

  • algorithmau optimeiddio gan gynnwys dringo bryniau, disgyniad graddiant ac algorithmau genetig
  • algorithmau chwilio/amserlennu gwrthwynebol (tocio minimax ac alffa-beta)
  • dulliau dosbarthu (perceptronau, rhwydweithiau niwral a pheiriannau fector cymorth)
  • systemau ar gyfer canfyddiad a chof asiantau prosesu
  • ymagweddau pensaernïol at AI (systemau hybrid, pensaernïaeth is-setiau a ffyrdd eraill o droshaenu systemau AI)
  • offer animeiddio (cynllunio a chydlynu symudiadau)
  • ffactorau perfformiad (lefel manylder, unrhyw bryd, ac algorithmau amserlennu)

Adnoddau ar-lein ar y pwnc:

1. GameDev.net wedi adran gydag erthyglau a thiwtorialau ar AIAc y fforwm.
2. AiGameDev.com yn cynnwys llawer o gyflwyniadau ac erthyglau ar ystod eang o bynciau sy'n ymwneud â datblygu AI gêm.
3. Vault y CDC yn cynnwys pynciau o Uwchgynhadledd AI y CDC, y mae llawer ohonynt ar gael am ddim.
4. Gellir dod o hyd i ddeunyddiau defnyddiol ar y wefan hefyd Urdd Rhaglenwyr Gêm AI.
5. Mae Tommy Thompson, ymchwilydd AI a datblygwr gêm, yn gwneud fideos ar YouTube AI a Gemau gydag esboniad ac astudiaeth o AI mewn gemau masnachol.

Llyfrau ar y pwnc:

1. Mae cyfres lyfrau Game AI Pro yn gasgliad o erthyglau byr sy'n esbonio sut i weithredu nodweddion penodol neu sut i ddatrys problemau penodol.

Gêm AI Pro: Doethineb a Gasglwyd o Weithwyr Proffesiynol Gêm AI
Gêm AI Pro 2: Doethineb a Gasglwyd gan Weithwyr Proffesiynol Gêm AI
Gêm AI Pro 3: Doethineb a Gasglwyd gan Weithwyr Proffesiynol Gêm AI

2. Cyfres Wisdom Rhaglennu Gêm AI yw rhagflaenydd y gyfres Game AI Pro. Mae'n cynnwys dulliau hŷn, ond mae bron pob un yn berthnasol hyd yn oed heddiw.

Doethineb Rhaglennu Gêm AI 1
Doethineb Rhaglennu Gêm AI 2
Doethineb Rhaglennu Gêm AI 3
Doethineb Rhaglennu Gêm AI 4

3. Deallusrwydd Artiffisial: Dull Modern yn un o'r testunau sylfaenol i bawb sydd am ddeall maes cyffredinol deallusrwydd artiffisial. Nid llyfr am ddatblygiad gêm yw hwn - mae'n dysgu hanfodion AI.

Ffynhonnell: hab.com

Ychwanegu sylw