Úvod
Prvky umělé inteligence používaných v počítačových hrách mají za sebou dlouhou cestu. Na začátku byly vyvinuty systémy založené na souborech pravidel napsaných přímo v kódu hry nebo na chování skripty interpretovány kódem, s celou věc na základě nejčastěji na vhodném výběru významu náhodného faktoru Proces výběru vhodného chování. V té době se zrodila takových památných her, jako je nesmrtelné řeka-RAID, Donkey-Kong, Boulder Dash,-a mnohé další předměty, fascinací pro uživatele osmibitových strojů, již v roce 1970.
Dalším krokem v procesu vývoje bylo zavedení jednoduchých metod informatiky, jako je například stále populární a často používané stroje státní konečných metody, do popisující chování počítačem řízených nepřátel. Nicméně, jak na požadavky hráčů rostla každým dnem, hry čím dál složitější, a to díky využití stále více a více pokročilé výpočetní algoritmů. Úsvit éry RTS typu hry (Real Time Strategy) způsobil výrazný posun zájmu (z hlediska četnosti použití) do algoritmů, které určují optimální cestu mezi dvěma zadanými body na mapě.
Rychlý technický pokrok a rychlé zvýšení výpočetního výkonu domácích počítačů byly také katalyzátorem pro vývoj aplikací využívajících umělou inteligenci v počítačových hrách. První hry a algoritmy umělé inteligence se musel spokojit s omezenými schopnostmi strojů jsou k dispozici v té době, s frekvencí procesoru není vyšší než 2 MHz. První PC přinesla nové možnosti a nové aplikace. Po PC s 386/486 procesorů se stal standardem pro domácí počítače, byly vzhledem k tomu, programátoři nové možnosti, které vedly k začátku závodu mezi společnostmi vývoj her. Po dlouhou dobu, především ukazatel počítačové hry kvalita byla kvalita trojrozměrné grafice to představovalo, ale realizace se brzy přišel, pěkná grafika, zvuk a charakter animace není všechno. V poslední době jedním z nejdůležitějších prvků počítačových her byly identifikovány jako umělé inteligence – jako primární faktor za tzv. hratelnosti dnešních videoher.
Proces výroby počítačových her prošel významné změny také. I když programování umělé inteligenci hry slouží k zachází poněkud nespravedlivě a jeho provádění inklinovaly přimět, aby ke konci výroby herním motoru, v současné době plánování moduly umělé inteligence a jejich spolupráci s ostatní složky hry je jedním z nejdůležitějších prvků v procesu plánování.
Stále častěji se alespoň jeden z členů programátorského týmu určen k, na plný úvazek a od té doby na začátku projektu, zpracování návrhu a programování modulů umělé inteligence.
V současné době, kdy ve většině domácností, je možné najít PC třídy počítačů s procesory Pentium IV s frekvencí v rozmezí 3 až 4 GHz, je považován nechat počítačové hry využít nejmodernějších a sofistikované metod umělé inteligence : neuronové sítě, genetické algoritmy a fuzzy logika. Ve věku internetu a síťových her, se systémy umělé inteligence ve hře dostali nové úkoly: počítačový hráč by měl ve svém chování a strategie hraní, být k nerozeznání od skutečného hráče na druhé straně připojení k internetu.
Milníky ve vývoji umělé inteligence ve hrách
Při diskusi vývoj umělé inteligence v počítačových hrách, jeden by rozhodně mělo být uvedeno, jaké hry, které se ukázaly jako milníky ve vývoji inteligentního chování ve hrách.
Jedna z nejpopulárnějších her roku 1990 byl Warcraft – hra vyvinutá studia Blizzard. Byl to první hra zaměstnat cesta-najít algoritmy v tak velkém měřítku, za stovky jednotek ve hře zabývající se masivních bitev. SimCity, vytvořený firmou Maxis, byla první hra prokázat proveditelnost využití-Life technologií v oblasti počítačových her. Dalším mezníkem se ukázalo být hra Black & White, vytvořený v roce 2001 Lionhead Studios, ve kterém technologie učení počítačem řízených postav použité poprvé.
AI v FPS typu her
FPS typu her obvykle realizují ve vrstvách strukturu systému umělé inteligence. Vrstvy se nachází na samém dně zvládnout ty základní úkoly, jako je stanovení optimální cestu k cíli (určený vrstvu výš v hierarchii) nebo hraní vhodné sekvence animace postav. Vyšší úrovně jsou zodpovědné za taktické uvažování a chování, které výběru zástupce AI by měla převzít v souladu se současnou strategií.
Cesta vyšetřovací systémy jsou obvykle založeny na grafech, které popisují svět. Každý vrchol grafu představuje logickou polohu (například místnosti v budově, nebo fragment na bitevním poli). Když nařídil cestovat do daného bodu, zástupce AI získává pomocí grafů, v následujících navigačních bodů by mělo postupně vydáme za účelem dosažení určené cílové umístění. Přesun mezi body navigaci, může systém AI také využít místní cesty, které umožňují určit přesnou cestu mezi dvěma navigačních bodů, stejně jako aby se zabránilo dynamicky se objevit překážky.
Animační systém hraje příslušnou posloupnost animace na nastavenou rychlost. Měl by mít také možnost přehrávání různých animovaných sekvencí pro různé části těla: například, může voják spustit a zaměřit se na nepřítele a střílet a znovu zbraň, zatímco stále běží. Hry tohoto typu se často používají na obrácenou kinematiky systému. IK animační systém může vhodně vypočítat parametry animace rameno polohy tak, aby ruka může chytit objekt nachází např. o stůl nebo police. Úkolem moduly z vyšších vrstev, je zvolit si vhodné chování na situaci – například, zda zástupce by měl hlídat oblast, zadat boj, nebo spustit přes mapě při hledání soupeře.
Jakmile je systém AI, která se rozhodla chování je nejvhodnější pro danou situaci, nižší úrovně modul musí vybrat nejlepší taktiku pro splnění tohoto úkolu. Po obdržení informace, že agent by měl, například, boj, snaží se zjistit přístup, který je nejlepší v současné době – např., zda bychom měli plížit na soupeře, schovat v koutě a čekat na soupeře, aby předložila cíl sám o sobě, nebo možná stačí spustit na něj střílet naslepo.
AI v RTS typu her
V RTS typu her je možné rozlišit několik modulů z umělé inteligence systému a jeho rovin. Jedním ze základních modulů je efektivní cesta-nález systém – někdy se musí najít řešení pro pohyb stovek jednotek na mapě, v desetinách sekundy – a tam je víc, než jen nalezení cesty z bodu A do bodu B, je také důležité zjistit kolize a zpracování jednotek v bitevním poli navzájem vyhýbají. Tyto algoritmy jsou obvykle založeny na herní mapě je zastoupená obdélníkové mřížky, s oky představuje pevné velikosti prvků oblasti. Na vyšších úrovních systému AI hierarchii, jsou moduly odpovědné za hospodářství, rozvoj nebo velmi důležité, modul pro analýzu herní mapu. To je to, že modul, který analyzuje vlastnosti v terénu, a dohoda je postaven na základě posouzení, např. zda je osada se nachází na ostrově, což vyžaduje vyšší tlak na stavbě námořnictvo. Terén Analyzátor se rozhodne, kdy by měl být postaven města a jak opevnění by měly být umístěny.
Obrázek 1. Zastoupení ve světě v RTS typu hry
Obrázek 2. Zastoupení ve světě ve FPS typu hry
AI ve sportovních hrách
Zjednodušeně řečeno, v případě většiny sportovních her se jedná o rozsáhlé podvádění. Vezměte hry auta závodní, například. Pro potřeby AI, od geometrie herní mapy, by jen a jen polygony, které patří do trati počítačem řízené soupeře cestovat a dostat odlišit. Dvě křivky jsou pak vyznačeny na této trati: První představuje optimální jízdní stopu, druhá dráha používá při předjíždění soupeře. Celá skladba dostane rozdělena do sektorů a přiměřeně malých, přičemž se vezmou parametry povrchu v úvahu, každý prvek rozdělené trati dostane jeho délka počítá. Tyto fragmenty jsou pak použity k vytvoření graf popisující dráhu, a získat vlastnosti na silnici v nejbližším okolí vozidla. Ve skutečnosti, ví, že počítač by měl zpomalit, protože je to blíží křivku, nebo ví, že je to blíží křižovatky a může například trvat zástupce. Dvě důležité vlastnosti umělé inteligence systémů v těchto hrách je schopen analyzovat terénu s cílem odhalit překážky ležící na silnici, a přísné spolupráci s modulem fyziky. Modul fyzika může poskytnout informace, že auto je smyku, který po obdržení umělé inteligence systém by měl reagovat přiměřeně a pokusit se získat trakci vozu zpět pod kontrolu.
Obrázek 3. Způsob prezentace reality v automobilovém závodu (segmentace a optimalizace trati)
Obrázek 4. Způsob prezentace reality v automobilovém závodě
Podobné podvádění lze najít také v jiných sportovních hrách. Ve většině případů, počítačem řízený hráč má kompletní chování stanovený ještě před začátkem přelomu – to je, že např. spadnout při přistání (akrobacie, skoky na lyžích, atd.), mají špatnou rychlost, start falešné atd. Navíc ve hrách simulujících sporty a vyhodnocování ze strany soudců, jsou výsledky byly získány podle pravidel stanovených příslušnými sportovními orgány.
Předdefinované scénář počítačem řízené hráče je pak jednal v systému animace postav.
Nejoblíbenější AI algoritmy v počítačových hrách
V následující části článku bych chtěl diskutovat o dvou nejpopulárnějších algoritmy používané v programování počítačových her. Mít znalosti o nich, lze úspěšně navrhnout jednoduchý systém umělé inteligence, která splňuje potřeby jednoduchých FPS nebo RTS her. První z těchto dvou je-Star algoritmus, který se používá při provádění rychlé vyhledávání optimální cesty spojující dva body na mapě (graf) ze hry. Na druhé straně je konečný automat, užitečné, např. při přípravě scénáře pro chování počítačem řízených protivníků, obvykle delegování svých low-level úkolů na cestu vyšetřovací modulu.
* Algoritmus
Problém najít cestu z bodu A do bodu B na mapě je klíčový problém téměř v každé počítačové hry (možná nepočítaje některé sportovní hry a některé další typy her, které lze spočítat pomocí číslice jedné ruky). Ve stejné době, algoritmy této skupiny patří k nižší úrovni olympijské AI, která slouží jako základ pro konstrukci složitější a inteligentnější typy chování, jako je strategické plánování, pohybující se ve formacích nebo skupin, a mnoho dalších. Tato otázka již byla důkladně hodnoceny ve světě počítačových her, s jedním algoritmem – A * – poté, co se dnešní standard.
Zastoupení světa hry
Svět téměř každé počítačové hry může být reprezentován s grafem, její tvar v závislosti na druhu hry. V RTS typu her je na světě Typickým dvourozměrné pole, každý z jeho prvků odpovídajících fragmentů herního světa obdélníkové mapy. Každý prvek (kromě těch okrajových) má osm sousedů. Použití takového zastoupení světa RTS, můžeme vytvořit graf, ve kterém každý prvek 2D pole bude odpovídal jeden vrchol grafu. Hrany grafu (obvykle přítomen pouze mezi nejbližšími sousedy) znázorňují možnost (nebo jeho nedostatku) stěhovat se z jednoho z prvků mapy do sousedního prvku. V real-time strategií, obvykle přiřadit jeden vrchol grafu do oblasti, nejmenší jednotka ve hře se vejde do.
V FPS typu hry, vrcholy grafu jsou obvykle umístění / ubytování v soukromí, s grafem z vrcholů označující existenci přímé spojení mezi dvěma místnostmi.
Výběr algoritmu
Existuje mnoho algoritmů pro hledání optimální cesty v grafu. Nejjednodušší z těchto algoritmů, běžně nazývaná palbu na prérii, pracuje tím, že postaví po sobě jdoucích kruhy kolem výchozího bodu, přičemž každý krok algoritmu budovy další, širší okruh. Po sobě jdoucích kruhy a prvky, které patří k nim jsou přiřazeny větší a větší indexy. Jak je vidět na obrázku 5, kruh s indexem 4 prochází naší cílového bodu.
Obrázek 5. Jednoduchá cesta Vyšetřovací algoritmus
Nyní míří opačným směrem a po pravidlo, že v každém kroku jsme se přejít na nejbližší bodu na mapě se nachází na kružnici s menším indexem, se dostaneme na výchozí bod; prvky naší mapě jsme se vrátili přes tvoří nejkratší Cesta mezi výchozí bod a cíl.
Zkoumání, jak tento algoritmus funguje, jeden může vidět, že kromě jeho velkou výhodu – jednoduchost – to také má hroznou nevýhodu. Cesta algoritmus v našem příkladu se skládá z pěti prvků herního světa, i když 81 polí na mapě, bude muset být přezkoumány v nejhorším případě. V případě, že mapy se skládá z 256×256 polí, může to znamenat, musel zkoumat 65536 mapové prvky!
Zadejte A * a jeho hlavní výhoda – minimalizace oblastech, které jsou podrobeny kontrole ze strany vědomě orientovat na vyhledávání směrem k cíli. Zachováním stručnosti bych mohl říci, že při výpočtu nákladů na dosažení bod na mapě, * algoritmus přidává k ní nějaké heuristiky s uvedením odhadované náklady na dosažení cíle, tato funkce je obvykle vzdálenost k cíli od pozorovací bod v současné době prověřuje.
Požadavky na algoritmus
Mnohé požadavky jsou uvedeny na optimální cesta-nález systémů. Optimální nemusí nutně znamenat, nejkratší, algoritmus může vzít v úvahu takové faktory, jako další typ terénu (např. bude nádrž ve hře RTS projít bažinu rychleji děje kolem něj, než posuvné to), úhel natočení omezení, počet nepřátel v oblasti, a mnoho dalších prvků v závislosti na konkrétní hru. Algoritmus by se měly vyhnout Nepřekonatelná oblasti na mapě, nebo například, udržovat odstup od přátelských jednotek. Především požadavkem je, aby algoritmus vždy měli být schopni najít optimální cestu, jak dlouho jako cesta mezi dvěma body existuje. Výpis 1 ukazuje pseudokódu popisující A * algoritmus.
Výpis 1. * Algoritmus
Optimalizace
Algoritmus se přímo může ukázat jako neúčinné v důsledku, jak dlouho operace na konstrukce z prioritní fronty ( OpenList ) a ClosedList může trvat. Více programovací metody existují, které pracují v okolí těchto nedostatků. Optimalizační problémy lze přistupovat ze dvou způsobů:
optimalizace pro vyhledávání samotný algoritmus,
optimalizace datových struktur.
V prvním případě se často používá metoda dělení celý svět (mapa) do regionů a dělení algoritmu do dvou částí: první, hledáme cestu kontrolou, které oblasti bychom měli projít, a pak pro každý region jsme přesunout z místa vstupu k východu. V každém regionu jsme se najít optimální cestu pomocí A * místně pro oblast jsme dovnitř Tak jsme výrazně omezit oblast hledání, čímž se snižuje množství prostředků potřebných pro výpočty.
Ve skutečnosti je tato metoda silně založený na tom, jak člověk vypadá na cestě k cíli – při cestách na druhý konec velkého města, chodec nemá v plánu celou cestu se stejnou přesností, místo toho, on / ona cestuje mezi známé orientační body, plánování přesně tak, jak mezi jednotlivými dvěma body, a to až na ulici, on / ona bude chodit.
Dalším faktorem je optimalizace vhodný výběr funkcí a parametrů pro heuristiku, protože to je to, co rozhoduje, jak velký oblast hledání se rozšíří na herní mapě.
Konečné automaty
Konečné automaty jsou jedním z nejméně komplikované, zatímco ve stejné době, jeden z nejúčinnějších a nejčastěji používané metody programování umělé inteligence. Pro každý objekt v počítačové hře, to je možné rozeznat řadu států, je v průběhu jeho života. Například: rytíř může být zapnutí sám, hlídat, útočit, nebo odpočinek po bitvě, rolník je možné sbírat dřevo, stavět dům, nebo se bránit proti útokům. V závislosti na jejich stavu, in-game předměty reagovat různými způsoby v konečný soubor) vnější podněty, nebo by měl existovat žádný, provádět různé aktivity. Stát konečný stroj metoda nám umožňuje snadno rozdělit provádění každého herního chování objektu na menší fragmenty, které jsou snadnější ladění a rozšířit. Každý stát má kód zodpovědný za počáteční nastavení a deinitialisation objektu v tomto stavu (často také označované jako státní přechodu kódu), kód proveden ve hře je každý snímek (např. ke splnění potřeb umělé inteligence funkcí, nebo nastavit příslušný snímek animace), a kód pro zpracování a interpretaci zprávy pocházející z okolního prostředí.
Konečné automaty jsou obvykle realizovány pomocí jednoho ze dvou následujících metod:
konečný automat jazyk – realizován v jazyce C jako soubor maker preprocesoru,
stav návrhový vzor – speciální objektově-orientovaný projekt vzor.
Ve věku objektově orientovaného návrhu a programování, je první metoda je vyřazen ze strany druhé, tedy strojů realizovaných na základě stavu projektu vzor. Zde je příklad takového objektově orientovaného stroje, popisující částečně možného chování rytíře, každý stav objektu je reprezentován abstraktní základní třídy:
Collapse | Copy Code
třída CGameObjectState {
veřejnost:
virtual void OnEnter () {return;}
virtual void OnLeave () {return;}
virtual void OnUpdate () {return;}
virtual void OnMessage (CMsg * pMessage) {return;}
};
Všechny třídy vyplývající z této třídě definovat chování v každém státě (zápisy 2, 3 a 4). In-game objekt má ukazatel na objekt v dnešní době je základní třídy a metody pomoc státní přechodu (seznam 5). Třída rytíř pochází z hlavního objektu a inicializuje jeho výchozí stav v konstruktoru:
Collapse | Copy Code
třída CKnightObject: public CGameObject {
CKnightObject () {
Setstate (nové CKnightPatrolState ());
}
};
Výpis 2. Stav: rytíř pod útokem
Collapse | Copy Code
třída CKnightAttackState: public CGameObjectState {
void OnUpdate () {
/ / Pokud je nepřítel viděl, se změní na „hlídkové“ stavu
if (CanSeeEnemy () == FALSE)
Setstate (nové CKnightPatrolState ());
/ / Zde je kód manipulaci útok, např. přiblížit dle potřeby
/ / K cíli, pokud je příliš daleko, použijte meč, pokud je v blízkosti
if (IsEnemyCloseEnough () == FALSE)
MoveToEnemy (enemyID);
jiný
HitTheEnemy (enemyID);
}
void OnEnter () {
/ / Alert spojenecká vojska, že jste pod útokem
CallForReinforcement ();
}
void OnLeave () {
/ / Příkaz Informujte obdržených ran
CallForMedic ();
}
void OnMessage (CMsg * pMsg) {
/ / Podívejte se na typ pokynu, přijmout příslušná opatření, je-li
/ / „Opřít“, aby
CMsgGetBack * pGetBackMsg = dynamic_cast <CMsgGetBack*> pMsg;
if (pGetBackMsg! = NULL)
Setstate (nové CKnightRunAwayState ());
}
};
Výpis 3. Stav: rytíř na hlídce
Collapse | Copy Code
třída CKnightPatrolState: public CGameObjectState {
void OnUpdate () {
/ / Zde je kód pro ověření, zda můžeme vidět nepřítele
if (CanSeeEnemy () == true) {
Setstate (nové CKnightAttackState ());
}
else {
/ / Pokračovat v pochodu přes dalších traťových bodů na hlídku
GoToNextPatrolPoint ();
}
}
void OnLeave () {
/ / Informujte se nejedná o nic víc hlídat, může být nutná substituční
NotifyOneLessInPatrol ();
}
};
Výpis 4. Stav: rytíř utíkat před nepřítelem
Collapse | Copy Code
třída CKnightRunAwayState: public CGameObjectState {
void OnUpdate () {
/ / Zde je kód pro ověření, zda můžeme vidět nepřítele
if (CanSeeEnemy () == false) {
Setstate (CKnightPatrolState ());
}
/ / Spustit jako nejdále od nejbližšího nepřítele
RunFarAwayFromNearestEnemy ();
}
};
Výpis 5. Současný stav a změna stavu objektu
Collapse | Copy Code
třída CGameObject {
CGameObjectState * m_pMyState;
veřejnost:
Setstate (CGameObjectState * pNewState) {
/ / Volání metody deinitialisation a zničit objekt
m_pMyState-> OnLeave ();
m_pMyState odstranit;
/ / Přiřazení nového státu k objektu
/ / A volání metody inicializaci ji
m_pMyState = pNewState;
m_pMyState-> OnEnter ();
}
OnUpdate () {
/ / Plnit úkoly, jak jsou definovány pro současného stavu
m_pMyState-> OnUpdate ();
/ / Nyní provádět další, za rám úkoly objektu
}
void OnMessage (CMsg * pMsg) {
/ / Plnit úkoly, jak jsou definovány pro současného stavu
m_pMyState-> OnMessage (pMsg);
/ / Nyní zpracovávat zprávy, bez ohledu na stav objektu
}
};
Umělé neuronové sítě a pokročilé algoritmy v počítačových hrách
Problematika umělých neuronových sítí a jejich aplikace v počítačových her se stal jedním z nejmódnější témat posledních dnů v oblasti počítačových her. Mnoho bylo řečeno roky o jejich potenciální aplikace v počítačových hrách, v mnoha časopisech a na mnoha webových portálech. V „neuronové sítě v počítačových hrách“ problém byl projednán, několikrát na GDC (konference Game Developers – každoroční událost odehrává v Londýně a San Jose). Zároveň jsme museli čekat dlouho vidět hry vstoupit na trh, jehož motor by běžel založen, alespoň minimálně, o možnostech umělé neuronové sítě, teorie.
Hra Collin McRae Rally 2 je jednou z prvních aplikací neuronových sítí v počítačových hrách, který se stal celkem úspěch. Vyškolený umělé neuronové sítě je zodpovědný za udržování počítačového hráče auto na trati a současně vám, že jednat o trať co nejrychleji. V této hře, stejně jako jsem popsal v AI ve sportovních her části, každá dráha reprezentována souborem rozbitých tratí tvořících graf. V hrubé zjednodušení, neuronové sítě o příspěvek parametry jsou informace jako: zakřivení vozovky ohybu, vzdálenost od zatáčky, typ povrchu, rychlosti, nebo na vozidle vlastnosti. Je na neuronové sítě pro generování výstupních dat mají být předány dále k fyzické vrstvy modulu, že údaje, které byly vybrány tak, aby vůz cestuje a vyjednává překážky nebo křivky na rychlost optimální pro dané podmínky. Díky tomu počítačového hráče styl jízdy se zdá, na rozdíl od jiných her tohoto typu, velmi přirozené. Počítač může vyhnout malé překážky, řezané ohyby, začnou otáčet vhodně brzy, když na kluzkém povrchu, atd. Hra využívá vícevrstvou perceptron model, zjednodušená forma, která je vidět na obrázku 6.
Obrázek 6. Vícevrstvý perceptron modelu
Umělé neuronové sítě by, teoreticky, být aplikován na většinu řešení úkoly, které provádějí umělé inteligence v počítačových hrách. Bohužel, v praxi řada překážek existují který omezují neuronových sítí států ve hrách. Mezi ně patří:
problémy s volbou vhodného vstup pro neuronových sítí,
Citlivost neuronových sítí států na změny ve hře akčního logiky, a potřeba rekvalifikaci sítě vždy, když taková situace nastane,
poměrně komplikované teorie, a potíže s ladění v případě problémů
časově náročný a složitý proces vzdělávání do sítě.
Jaké kroky je třeba podniknout, aby se využít umělé neuronové sítě v jednoduché počítačové hry? Pojďme se krátce podívat:
Chcete-li začít, musíme odpovědět na vlastní otázky o druhu informací neuronová síť by měla poskytovat nám, aby nám pomohli vyřešit daný problém. Například, uvažujme hru, v níž neuronová síť řídí letu našeho soupeře stíhačku. Informace, které by mělo být získání z neuronové sítě by pak bylo, např., optimální vektory rychlosti a zrychlení, které stanoví-li tak do modulu fyziky, bude vodítkem pro nepřátelskou stíhačku do našeho letadla. Dalším příkladem může být neuronová síť slouží k volbě nejlepší strategie v RTS typu hry. Na základě situační analýzy, sítě rozhodne, jak výrazně se soustředit na rozvoj, zbrojní výroba opravy po bitvách atd. Všechny parametry požadované hry bude zajišťovat neuronové sítě na jeho výstupu.
Při definování účinek neuronové sítě akcí je poměrně jednoduché (protože přesně víme, co chceme dosáhnout), výběr sítě je vstupní parametry je mnohem závažnější problém. Tyto parametry by měly být zvoleny tak, aby její různé kombinace umožní neuronová síť naučí řešit složité situace, které dosud vyšly v příkladu souboru signálů. Obecné pravidlo říká, že vstupní data (proměnné) by byly zastoupeny jak hodně informace o herním světě je to možné, by to mohlo být například vektory relativních pozic nejbližší překážku a nejbližší soupeře, nepřátelské síly, nebo současné stav výzbroje a poškození.
Dalším krokem je získat soubor vstupních údajů, které budou použity k vlaku do sítě. Přímá metoda by mohlo znamenat, např. při vzpomínce několik několik stovek vzorků, úspěšných útoků a akcí lidského hráče, a poskytuje zaznamenané údaje do neuronové sítě. Obvykle se však používá proces je automatizovaný, tj. vzorky sám jsou počítačově generovanou – což vyžaduje další, často velmi významný, úsilí ze strany programátorů.
Posledním krokem je školení neuronové sítě. Příprava, algoritmus může být používán tady. Tréninkového procesu by měly být propojeny se simultánním zkoušek za účelem, aby se ujistil hra není stále příliš obtížné nebo naopak, pokud to není příliš jednoduché a je třeba vyvinout další vzdělávání a optimalizace.
Použití neuronových sítí v praxi, není snadný úkol. To vyžaduje hodně času, zkušeností a trpělivosti. Kromě toho jsou neuronové sítě se často používá v kombinaci s fuzzy logic, díky němuž je možné převést v počítači tradiční nula-jedna úvahy do něčeho silně připomínající způsob, jak člověk myslí. Logika nám umožňuje rozhodnout, zda a do jaké míry daný výrok pravdivý. Ačkoli současné použití obou technologií je obtížný úkol, pokud je úspěšná, výsledky jsou prostě úchvatný, a nesrovnatelné s tím, co můžeme dosáhnout pomocí pravidel pevně do kódu s algoritmy a tradiční logiky. Technologie, jako jsou neuronové sítě, genetické algoritmy a fuzzy logiky je budoucnost počítačových her – a budoucnost, která není tak vzdálená víc.
AI Knihovny
Rozvoj moderní umělé inteligence motoru vyžaduje čas i zkušený tým programátorů. Pokud Development Studio nemůže přidělit dostatek lidských zdrojů na vybudování umělé inteligence systém, má možnost zakoupení již existující systém AI, z nichž mnohé jsou k dispozici na trhu. Zde bych chtěl poskytnout podrobný popis jedné z nejpopulárnějších knihoven na trhu – Renderware AI, stejně jako jeden z novějších knihoven tam, který by se mohl stát levnější alternativou k Renderware AI – AI.Implant.
Renderware AI
Renderware je komerční, multiplatformní počítačové herní engine. Motor Renderware se skládá z několika modulů, mezi nimi, jeden v zájmu nás zde – Renderware AI umělá inteligence modulu.
Modul Renderware lze použít jak ve hře zcela založených na motoru Renderware, a ve hrách, které používají vlastní nebo jiné motory, pouze ochotny využít Renderware AI jako základ pro vyspělé umělé inteligence systému.
Renderware AI knihovny navazuje na filozofii vrstvami stavebních systémů umělé inteligence. Renderware AI rozlišuje tři vrstvy:
vnímání vrstva zodpovědná za analýzu situace – především pro analýzu statickou (např. terénu) a dynamický (nepřátelé, výtahy atd.) okolí.
Rozhodnutí vrstva, zodpovědný za strategické rozhodování zakládat na informacích poskytnutých vnímání modulu. Nízkoúrovňové akce, jako je útok, cesta-nálezu, úniky atd. jsou prováděny akce modulu.
akce vrstva.
Nejdůležitějším prvkem celé knihovny reprezentuje vnímání světa, jak je to, co další vrstvy hry základny na AI. V Renderware AI, je tento modul nazvaný PathData (poněkud zavádějící název, s ohledem na cestu analýzy je pouze jednou z funkcí vnímání modul $), a používá nástroj nazvaný PathData generátor. Modul PathData úspěšně analyzovat herní svět s ohledem na jeho vlastnosti topologické, s streaming metody bylo použito, aby bylo možné získat informace potřebné pro modul AI i pro velmi velké herní mapy. PathData vede i celkovou analýzu terénu je topologie a analýzu na přístroji nejbližším okolí. Výsledky analýzy pak může být, pokud je taková potřeba vznikne, předmětem dalšího ručního zpracování.
Globální analýza poskytuje takové informace jako místo na mapě zajímavé z hlediska svých vlastností topological. Tyto informace mohou zahrnovat údaje o: dobře skrytých místech na mapě, umístění, ze kterých mohou být velké oblasti na mapě se dobře vidět, kde by mohla být kamera umístěna tak, aby jeho názor bude nesmí být zakryty menší prvek scény atd. Místní analýza může odhalit nám zdi, překážky, které musí být obešel nebo přeskočil, a spoustu dalších důležitých prvků na místní úrovni.
Renderware AI je dalším důležitým prvkem je modul zodpovědný za funkci široce rozuměl plánování a provádění pohybu jednotek. S využitím dat poskytovaných modulem world analýzy, případně graf je postavený, který je pak používán A * algoritmu předběžného plánu optimální cestu z bodu A do bodu B. Mezi další vlastnosti patří typ jednotky závislé na cesty, cesta vyhlazením, aby nedošlo dynamické objekty dostat se do jednotky tak, koordinace s animačním systému a mnoho dalších velmi důležitá v praxi.
Motor je k dispozici pro mnoho platforem, od Sony Playstation nebo Xbox přes Nintendo, Sony Playstation 2 a PC. Knihovny jsou optimalizovány pro každou platformu, a aby bylo možné vytvořit neuvěřitelně pokročilé AI systémy. To stojí za zvážení jako alternativu k časově náročnému vývoji vlastních řešení v oblasti umělé inteligence.
AI.Implant
Tento motor, demonstroval poprvé v roce 2002 na konferenci Game Developers, okamžitě vyvrcholil široký zájem vývojářů počítačových her. Mezi nejdůležitější vlastnosti tohoto systému patří pokročilé algoritmy, hierarchické cesty plánování, rozhodování modul založený na binárních rozhodovacích stromů a přátelské uživatelské rozhraní umožňující jejich vydání. Kromě toho je jedním z jeho velkých výhod je úzká integrace s takovými programy jako je 3DStudio Max a Maya, která umožňuje intuitivní manipulaci s daty kontrolu objektu chování, jak již ve fázi jejich rozvoje v grafických balíčků. Mezi mnoha dalšími vlastnostmi AI.Implant balení, jeden stojí za zmínku, je pokročilá skupina chování modul, což umožňuje velmi realisticky simulovat davy. AI.Implant je multiplatformní balík k dispozici pro PC, GameCube, Xbox, PlayStation a Sony architektury.
Co teď?
Umělá inteligence je velmi široká a ve stejné době, fascinující část počítačové vědy. V tomto článku jsem uvedl čtenáře na některých algoritmů a metod umělé inteligence používaných v počítačových hrách programování, ale to je jen malý fragment znalostí nějaké reálné počítačové hry programátor musí zvládnout. Nejdůležitější otázky, které nebyly předmětem tohoto dokumentu patří: genetické programování, fuzzy logika, dopadu mapa metoda, plemenné algoritmy, a mnoho, mnoho dalších, seznámení se s nimi, já vřele doporučit všem čtenářům. Na závěr jsem, že poskytuje seznam knih a odkazů na webové stránky, které mohou být užitečné pro každého, kdo by chtěl bez pomoci zvýšit něčí znalosti na poli umělé inteligence v počítačových hrách.