Adaptivní oponenti
Adaptivita je zajišťována různými způsoby. Je zajímavé, že přes rozsáhlé informace o implementaci neuronových oponentů do her různých typů (simulátory, strategie) na začátku roku 1997 je odhadovaný počet reálných implementací mnohem nižší.
Při implementaci pomocí adaptivních technik - obzvláště neuronových sítí - se narazilo na řadu obtížných problémů:
* Rychlost. Pokud vezmeme rozhodovací strom, u kterého adaptivně měníme ohodnocení hran, dostaneme kvalitní výsledek také a stojí to nepoměrně méně času. Odhaduje se, že na umělou inteligenci by ve hře běžící v reálném čase nemělo padnout víc než 20% času CPU (jde o hrubý odhad, do nějž není započítán mechanismus RT managementu entit a může být značně modifikován použitím akcelerátorů). U tahových strategií je akceptovatelné mnohem větší množství času. Obvyklá strategie při tvorbě neuronového oponenta je natrénování a v případě, že bylo neúspěšné, zvětšuje se počet neuronů. To vede k nárůstu nutného času CPU a i kdyby byl dosažen adekvátní výsledek, rychlost může být značně neuspokojivá. Rychlost je nejzávažnějším problémem implementace neuronových sítí. Příkladem mohou být Creatures, u kterých je na P120 mez zhruba 8.000 neuronů se zhruba 56.000 spoji (při rychlosti simulace jeden krok za sekundu), zatímco u engine Quake 2 se za mez pokládá zhruba 80.000 volání funkce TRACE (sloužící k výpočtu vzdálenosti zdi v daném směru) za sekundu.
* Učení. U učení narážíme na problém času v ještě exponovanější podobě, neboť je náročnější na čas CPU než exekuce sítě. Dále se objevuje řada dalších otázek: Jak se učit? To je možné buď v průběhu hry a nebo až potom. V průběhu hry získáváme možnost vyšší plasticity oponenta, který může měnit své chování v průběhu partie, ztrácíme ale velké množství času CPU a navíc se objevuje otázka, zda je hráčem předváděná strategie opravdu dobrá a má se ji smysl učit. Pokud zvolíme učení až po partii, je zde otázka, zda hráč bude tolerovat rozsáhlý výpočet ještě po hře a také otázky týkající se souboru vzorů. Uvážíme-li, že těžší partie hry, která je dostatečně komplikovaná aby nás zajímala, může trvat 3 - 4 hodiny, máme problém s rozsahem učícího souboru. Je jasné, že u rozsáhlých partií je nezbytné provádět pre-filtering ukládaných informací během partie a nebo post-filtering po jejím ukončení, který poslouží k eliminaci nezajímavých případů a selekci vlastního učícího setu.
* Otázka učitele. Je ale otázkou, zda je adaptace podle vzoru hráče obecně dobrý nápad. Hráči se kterými adaptivní oponent hraje delší dobu mohou být špatní a vlastně adaptivního oponenta učí chyby. Je třeba zvolit rafinovanější strategii, ta ale vyžaduje nějaké vnější kritérium "kvality učitele". Je třeba také vyloučit klasickou představu, kdy by síť byla na začátku nastavena náhodnými parametry a učila se i zcela elementární strategie. Je třeba vytvořit oponenta dostatečným způsobem předtrénovaného, který se dokáže vylepšovat v parciálních schopnostech. Pokud by snad měl být oponent trénován pouze výrobcem a v průběhu hry se nedoučovala, postrádá pochopitelně idea implementace neuronové sítě smysl a může být nahrazena pevným algoritmem.
* Otázka obtížnosti. Smyslem hry je hráče pobavit, nikoliv natrénovat nejlepšího neuronového oponenta na světě. Pokud kvalita oponenta značně přesáhne hráče, může být hra považována za frustrujícím způsobem obtížnou. Jako příklad bývá uváděn Battlecruiser 3000AD, ve kterém byla údajně implementována neuronová síť pro pilotování nepřátelských kosmických stíhaček. Adaptivní oponent byl tak dobrý, že se v pilotáži stále zlepšoval a po několikáté misi už nad ním bylo možné zvítězit jen s krajními obtížemi.
* Sklouznutí k "superoptimální" strategii. Adaptivní oponent může objevit nějakou "superoptimální" strategii, která může být ale nechtěná. Adaptivní boti v Quake např. objeví, že nejúčinnější způsob jak zabíjet jiné boty je telefrag (zabití bota stojícího v cílovém prostoru teleportu právě přiteleportovávaným botem), protože zabíjí okamžitě bez ohledu na výzbroj vlastní ani oponentovu. Adaptivní algoritmus je pak vede k tomu, že se nepřetržitě teleportují a zabíjejí navzájem u nejbližšího teleportu, kde znovu ožívají (respawn) a nebo přímo v respawn bodu. Takto naučená adaptivní inteligence po chvíli většinou odmítá podnikat cokoliv jiného, což hráče znechucuje. Přitom je velmi těžké nějakým způsobem zabránit podobným jevům, protože algoritmus nalezl velmi hluboké lokální optimum. Zdá se, že "herně optimální" stav naučenosti odpovídá spíše nějakému poměrně dobrému, ale oscilujícímu stavu, kdy adaptivní systém může opustit nalezenou strategii a začít se učit znovu.
Otázky spojené s nezbytnou pamětí se pokládají za minoritní problém, mnohem větší zátěží pro požadavky na paměť představuje rozsáhlá 24bitová grafika.
V současné době je pokládána za nejschůdnější cestu implementace rozhodovacích stromů s adaptivně měněnou váhou hran. Takové řešení nemá flexibilitu neuronových sítí, ale zajišťuje dostatečně dobré výsledky i jistou adaptivitu. Obecně vzato hráči spíše oceňují případ, kdy AI nedělá hrubé chyby a není příliš adaptivní než obráceně. Zjevně je to demonstrováno větší oblibou rychlého ale neadaptivního Reaper Bota nad pokročilejším Omicron Botem v Quake (popsáno dále). Není mi známo jediné čistě neuronové řešení, i Battlecruiser 3000AD používá hybridní řešení, které používá neuronové sítě jen k vybraným úlohám a zbytek představují pravidla. Podle slov člena vývojového týmu se v Battlecruiseru 3000AD experimentovalo se supervidovaným i nesupervidovaným učením, nakonec bylo vybráno hybridní řešení [Woodcock 1998].
Poloexperimentální počítačové hry
Mezi softwarovými tituly se objevují produkty, které není možné považovat za hry v pravém smyslu slova. Obvykle se rozlišuje "computer game" a "computer toy". Tyto pojmy odrážejí rozdíl v cíli činnosti hráče, v češtině krásně rozlišované slovesy "hrát" a "hrát si" a podstatnými jmény "hra" a "hračka".
Experimentální tituly ale už v prvním kontaktu informují o to, že obsahují nové a nevyzkoušené prvky, jako například "skutečný digitální život a digitální DNA" u Creatures nebo využití genetických algoritmů u systému Tierra, který modeluje virtuální evoluci v prostředí virtuálního počítačového systému a je na něm možné ukázat efekty tvorby diverzity, vývojové divergence, geneze ekologických vztahů a podobně. Podrobně se budu zabývat pouze hrou Creatures, Tierra přesahuje hranice obecně herní tématiky.
(Link - Článek o Creatures)
Inteligentní animace
Autonomní robot je vlastně fyzikálně implementovaný model organismu. Pro experimenty bývá ale z cenových a technologických důvodů výhodnější používat pouze počítačový model bytosti, která se pohybuje ve virtuálním prostředí. Mimo cenové aspekty je vynikající možnost dynamické změny rychlosti toku času v simulovaném světě, takže je možné detailně pozorovat on-line běžící procesy v simulované bytosti.
Animace bytosti vytváří jen iluzi umělého života, pouze kopíruje vnější (pozorovatelné) chování a jeho model popisuje pouze právě a jen právě pozorovatelné. Postrádá tedy komplexnost a hloubku a nesimuluje endogenní procesy modelovaného tvora.
Základním pojmem u inteligentních animací je přirozenost. Osobně jsem používal "umělou přirozenost", na homepage Andrewa Sterna, tvůrce PetZ2 jsem objevil estetičtější anglický pojem "believability". Believability je v podstatě výsměch ideji Turingova testu, který při hledání kritéria identifikace inteligence smísil objektivní a subjektivní, což je z filozofického hlediska značně podezřelé. Jde o konstrukci agentu, který dovede dostatečně dokonale napodobovat přirozené jednání, aniž by inteligentní ve skutečnosti byl.
Jedním z oblíbených příkladů jsou grafické modely hromadného chování ryb nebo hmyzu. I poměrně jednoduché modely vykazují překvapivě složité chování, vykazují jev emergence. Na Internetu jsou velmi hojné demo příklady hromadného chování ve formě Java apletů, příkladem jmenujme 2D model Swarm Matthewa Caryla nebo 3D model Java Boids Reynoldse Craiga. V mnoha případech - jako u Carylova Swarmu - jsou zdrojové kódy k dispozici. Z obrovského množství podobných projektů lze zdůraznit například simulace ryb, jako například MOPy Fish distribuovaná firmou Hewlett-Packard.
Velkou iniciativu v oblasti animací vyvíjí dle všeho v poslední době Japonsko.
PetZ: CatZ 2 & DogZ 2
Vzhledem k rozsahu práce se podrobněji zaměříme pouze na jediný významný projekt z oblasti inteligentních animací a tím je PetZ: CatZ 2 & DogZ 2. Jde o "software toy", tj. nikoliv počítačovou hru v běžném smyslu, ale o "hračku" z oblasti virtuálního života. Autorem je již zmiňovaný Andrew Stern, projekt byl vyvíjen v rámci PF Magic. PetZ představují virtuální kočky nebo psy pobíhající po desktopu, kteří si hrají s uživatelem. Důraz byl kladen na pokročilou 2D animaci, která není složena z jednotlivých frames, ale je založena na pohybové kostře. Ta spojuje jednotlivé překrývající se dvourozměrné komponenty těla a pohyby jednotlivých komponent se dosahuje změny postur a výrazů zvířat.
Popsaný systém dvourozměrné animace se skrytou kostrou umožňuje vytváření částečně randomizovaných postur, které dávají animaci neobyčejně živý a přirozený vzhled. Experimentálně jsem snímal frames spící kočky a napočítal jsem v několikavteřinovém záznamu se zhruba třemi jasně odlišitenými polohami živočicha minimálně padesát odlišných frames s drobnými odchylkami konfigurace jednotlivých komponent. Dokonale je zajištěno například dýchání, u kterého se prokázal významný vliv na percepci životnosti chování. Například u hry Tomb Raider hlavní hrdinka tvořená polygonovým trojrozměrným modelem dýchá a lehce se pohybuje i v absolutním klidu, což hráč vnímá podprahově a umožňuje mu to hlubší pocit živosti postavy. Podobný fenomén byl poukázán u "chyb", nedokonalých pohybů modelů.
Velmi dobře byl propracován mechanismus kauzálních řetězců - živočichové nepřeskakují v chování zcela náhodně a ani nemění habitační mody přehnaně rychle, ale přes variabilní řetězec přechodových prvků chování včetně přeskokových mechanismů. Z hlediska etologického lze pokládat model za mimořádně pokročilý a pravděpodobně nenalezneme dostatečně kvalitní model ani mezi seriózními vědeckými simulacemi. I zde se objevují drobné nedostatky jako například nedostatečná habituace a přizpůsobení se změnám a přehnaně lidské grimasy zvířat.
Nepodařilo se mi bohužel získat podrobnější informace o principu, na němž je založen interní model zvířat. Jde ale jasně o adaptivní agenty, které mohou být pozitivně i negativně podmiňovány a učeny např. k provádění různých kousků jako je žonglování nebo panáčkování. Není ale jasné, zda je základem nějaký pevně ohraničený počet aktivit, které jsou během "výchovy" zvířat postupně zpřístupňovány a nebo zda je možné vytvářet i zcela nové situace.
PetZ mají i ontogenetický a metabolický model, v obou případech jde ale o výrazně jednodušší záležitost než u Creatures. Slouží spíše pro udržení přirozenosti prostředí. Hlavním smyslem stravování se Nornů z Creatures je získání glukózy pro udržení dostatečné energie a konzumace vody není simulována vůbec. PetZ se naopak živí kvůli animaci krmení - aby měl uživatel pocit, že krmí skutečné zvíře. Jistá dávka simulace metabolismu se projevuje u odměňování - pamlsky překrmovaná kočka nebo pes začne tloustnout a neběhá.
Autor bude o CatZ a DogZ podrobně referovat na Second International Conference on Autonomous Agents (Agents '98) v Minneapolisu, 9-13. květen 1998.
Externě programovatelné hry
Značný přelom znamenaly hry, které byly modifikovatelné nejen ve smyslu změny herních map, jednotek apod., ale umožňují také změnu kódu chování objektů. Jde o velmi výjimečnou záležitost, se kterou přišla firma iD software v produktech Quake a Quake 2. Výsledek byl impresivní, protože umožnil tvorbu "robotických protivníků" nezávislými tvůrci a dokonce i "total rebuild" - takovou modifikaci funkce hry, že úplně přestala být "first-person shooter" a změnila dokonce herní žánr. Quake a zvláště Quake 2 mají tak rozsáhlé možnosti přeprogramování, že je lze pokládat za programovatelný 3D grafický engine, který je možné velmi efektivně využít i k účelu seriózních vědeckých simulací nebo klientských řešení.
Zcela výjimečnou charakteristikou iD software je uveřejňování zdrojových kódů jejich her (o dvě generace zpět a k nekomerčnímu využití). Dnes jsou k dispozici zdrojové kódy Wolfensteina 3D a DOOMu.
Quake
Z hlediska umělé inteligence je Quake nejzajímavější dodatečně implementovanými automatickými deathmachovými bojovníky, boty (bots). Boti simulují lidského hráče a chovají se tedy zcela odlišně než běžná monstra, proti kterým hráč bojuje v single player módu. Boti byli vytvořeni v Last Rites, neoficiálně přidáni do Duke Nukema 3D od 3D Realms (Atomic a Plutonium Pack 1.4) a Shadow Warriora od 3D Realms. Největšího úspěchu ale dosáhli právě v Quake a Quake 2 a to proto, že je díky modularitě těchto her mohl naprogramovat každý zkušený nezávislý vývojář.
Vlastní kód se nachází v souboru PROGS.DAT a je ho možné bezproblémově dekompilovat pomocí speciálních nástrojů, jako např. QcAPE (autor Mustafa Ata) včetně symbolických konstant. Quake C je někde na půl cestě mezi plnohodnotným C a skriptovým jazykem. Co do výrazových prostředků je Quake C slabší (neumožňuje např. volání funkce v parametru jiné funkce a to se vztahuje i na operátory (!!!)) a potom jsou další omezení daná konkrétní verzí Quake engine (např. počet entities) a limity dané systémem řídícím realtime-engine Quakovského světa - např. limit 100.000 interpretovaných příkazů - poté je běh procedury násilím ukončen, neboť je řídícím enginem pokládána za nekonečnou smyčku. Tak je RT mechanismem simulace zajišťováno, aby si některý proces "nekradl" čas na úkor ostatních a aby ho bylo možné v případě nutnosti odstavit. To jsou dost silné prostředky zajištění bezpečnosti, které ale značným způsobem omezují možnosti psaní kódů.
Limit timeslotu bývá zkušenými tvůrci obcházen tak, že si vytváří vlastní miniaturní systém pro řízení procesů a timeslot dělí na vždy vykonávanou část akční, ve které si bot vybírá cíle, střílí, chodí apod. a na pozadí dělený proces sloužící pro optimalizaci, hledání cest, vyhodnocování strategie a podobně. Dělení umožňuje spouštět náročné výpočty bez rizika jejich přerušení RT mechanismem Quake, klade ale větší důraz na kvalitu algoritmů, protože např. hledání cesty probíhá "za chodu", kdy se bot pohybuje. Zde je patrno, že je třeba značně vylepšit mechanismus odhadování náročnosti vlastních optimalizací, protože některé je možné provádět při pohybu bota snadno, u jiných je to ale nemožné a optimalizační proces musí být ukončen předtím, než si bot vybere některou z cest a vyrazí po ní. Jediné štěstí pro vývojáře je fakt, že u akčních her na osamělé chybě ve strategickém úsudku nezáleží a živý hráč ji v zápalu boje obvykle ani nepostřehne. Quake C chybí podpora pro řetězcové operace a ani podpora složitějších datových typů není dobrá. Velkou nevýhodou je absence nástrojů pro práci se soubory, což je pro tvorbu adaptivních agentů téměř fatální. Tento limit byl obcházen různými způsoby, např. byly upravovány soubory s mapami a byly do nich autory bojových robotů (bots) vkládány speciální neviditelné značky, podle nichž se orientují algoritmy pro hledání cesty. Mapy musely být upravovány ručně, což byla velká nevýhoda a překonal ji až Omicron bot.
Další potíže se vztahují k percepci botů. Bot snadno nalezne entitu (předmět, protihráč...), pro orientaci v naprosto 3D prostředí ale disponuje pouze funkcí TRACE, která mu sdělí, jak daleko je nejbližší stěna v daném směru. Pro programování chození lze využít přímo zabudovaných příkazů, které se používají pro pohyb monster, ale to v žádném případě neřeší problém preprocesingu a odhadu bota. V podstatě je nemožné dekomponovat obraz na model scény a takticky nad scénou uvažovat - to by zabralo mnoho času. Boti se proto častěji učí metodou pokus - omyl: Někam vlezou, skočí a pokud to byla chyba, pokus neopakují. Interní reprezentace prostoru pro inferenční systém bota tedy vypadá zcela jinak než lidský mentální model bludiště.V některých případech (Reaper Bot) je orientace zlepšena tak, že navigační značky pro Reapera klade (nevědomky) hráč sám a navíc jeho polohu bot zná v každém okamžiku.
Vzhledem ke stotisícovému limitu je v podstatě nezbytné psát kód co nejoptimálněji a je nemožné napsat pravidlový systém jinak než hard-wired rozhodovací funkci.
Nejvýznamnější boti pro Quake
Reaper bot
Autor Steven Polge. Nejznámější a nejpoužívanější bot pro trénink deathmatche. Ve srovnání s pokročilými boty jako je například Omicron disponuje mnohem horší umělou inteligencí, těží ale ze tří podstarných výhod, kterými převyšuje lidského hráče:
* Přesnost. Reaper střílí absolutně přesně, s předměřováním apod. čímž značně převyšuje běžného hráče.
* Rychlost reakce. Reaper střílí okamžitě když spatří protivníka.
* Absolutní informace o pohybu hráčů. Reaper má kopletní informaci o poloze hráče, i když není v pásmu viditelnosti.
Kombinace těchto faktorů z něj dělá těžkého protivníka, který je ale s oblibou používán pokročilými hráči pro trénink. Navádí se systémem kladení waypoints, jeho navigace a hlavně explorace ale není příliš dobrá.
V současné době Polge vyvíjí umělou inteligenci pro hru Unreal, která by měla být vydána do poloviny roku 1998.
Zeus bot
Autor Jonathan Wright. Zeus bot je kooperativní bot a slouží primárně jako průvodce a spoluhráč s lidským hráčem. Lze ho považovat za jistý druh polointeligentní drone, která hráče doprovází a střílí po jeho nepřátelích. Zeus bot má velmi slabé schopnosti vlastní navigace a v podstatě se řídí podle hráče. Absence možnosti zadávání rozumných taktických příkazů ho poněkud znehodnocuje - bot umí střelbu, strafing, ale není mu možné např. vydat příkazy aby v omezených prostorách úzkých chodeb šel záměrně před nebo za hráčem nebo k tomu aby uvolnil palebný prostor. Poměrně špatně vyhodnocuje vlastní síly. Umí sbírat zbraně, lékárničky a brnění a odevzdat je na příkaz hráči. Zdrojové kódy k Zeus botovi jsou autorem poskytovány k nekomerčnímu použití zdarma. Autor zpracoval rovněž bota Cujo, podle rottwailera z Kingovy knihy "Cujo". Podobně jako Zeus Cujo doprovází hráče a bojuje s ním.
V současné době vyvíjí Jonathan Wright AI pro kooperativní počítačem řízené spoluhráče ve hře Daikatana, s očekávaným datem vydání 3. kvartál 1998. Daikatana je první hra, která je designována speciálně s ohledem na současnou kooperative hru s počítačem řízenými spoluhráči.
Omicron bot
Autor Mr. Elusive. Poslední významný bot pro původní Quake. Není bojově nejobtížnější, ale má nejpokročilejší systém chození pokládáním dynamických značek. Důraz byl kladen na zlepšení interakce s prostředím, jako je lepší využívání teleportů, tlačítek, výtahů, nástřelových tlačítek. Dokáže najít tajné skrýše, systematicky využívá zbraně, lékárničky i brnění. Má velmi efektivní systém hledání cesty, který umožňuje procházení teleporty, hledání zkratek, dobrého skákání včetně ohledu na momentálně nastavenou gravitaci. Adaptivita je skryta právě přímo modifikací značek v mapě, kde si robot ukládá informace o blízkých zdrojích.
Znovu pozorujeme nejfatálnější chybu botů a to je absence asociování komplexních vztahů. Omicron si dokáže otevřít tlačítkem dveře, ale už to nedokáže u dveří vzdálených a ani u vzdálenějších výtahů. Dokáže provést cílený rocketjump. Omicrona je možné dodatečně učit nové úrovně spuštěním speciálního předváděcího módu, kdy hráč předvádí pohybové trajektorie a nechá je zapsat do BSP souboru dané mapy.
Quake 2
Quake 2 byl implementován v podstatě pouze pro Windows 95 a byla v něm již organicky zabudována podpora akcelerátorů prostřednictvím OpenGL. V rámci rozšiřování modularity návrhu byla změněna i koncepce zajištění programovatelné modularity. Síla návrhu Quake 2 je již taková, že využít i pro seriózní zákaznická řešení. Umožňuje přidání funkcí nikoliv pouze v pseudointerpretované podobě, ale dokáže využít přímo knihovnu DLL Windows. To s sebou nese některé výhody a některé nevýhody: Programování DLL je z hlediska stability hry méně bezpečné, neboť programátor může přistupovat ke všem systémovým prostředkům a způsobit zhroucení systému. Naproti tomu získává volnost nad použitými prostředky a může implementovat mnohem více.
V Quake 2 jsou implementováni noví boti, z nichž jmenujme Eraser Bota, autor Ryan "Ridah" Feltrin, CTF Bota od Drewa "BZ" Davidsona a českého Crusader Bota autora Marka Rabase. Ve spolupráci s Markem Rabasem plánuji do Crusadera implementovat pokročilý adaptivní systém pro orientaci a učení se bojovým taktikám, přičemž v úvahu zatím připadají technologie knowledge discovery, neuronové sítě a adaptivně ohodnocované rozhodovací stromy.
Ideový postup práce při tvorbě zákaznického řešení:
Je třeba mít Quake 2, zdrojové kódy knihovny GAMEX86.DLL poskytované iDem, překladač C++ (např. MSVC 5.0). Tento aparát umožňuje změnit vlastnosti chování objektů v Quake v podstatě libovolným způsobem, pokud přitom nejsou zvláštní požadavky na změnu vlastního prostředí hry. Pokud takové požadavky existují, je třeba ještě použít speciální editory 3D map (jako je například Qoole), editory na změnu vzhledu objektů a podobně.
V DLL knihovně je možné použít i standardní knihovny kódů např. pro DAO, ODBC apod. a napojit se tak na standardní zdroje dat. Využívání těchto prostředků je ale limitováno jejich rychlostí - pokud existuje potřeba na zachování plné interaktivity a rychlosti, musí být datové zdroje dostatečně rychlé a nebo je třeba implementovat možnost asynchronního zpracování dat. Quake 2 se po modifikaci chování v podstatě změní na výkonný grafický a simulační engine, schopný zajistit jednak bezproblémové interaktivní prohlížení výsledků simulace a zároveň poskytující elementární funkce pro management 3D simulací (zajištění časové fronty, událostí, chování objektů v 3D světě - vlastnosti povrchů, průchodnost nebo neprůchodnost zdí, funce zjišťování vzdáleností, základní 3D vektorové operace).
Na Quake 2 je pak možné nahlížet jako na velmi efektivní prostředí pro experimenty s agenty v 3D prostředí, pro demonstrace technologií a podobně. Vzhledem k tomu, že je do standardního C++ možné naimportovat oblíbené C++ knihovny z oblastí knowledge discovery, neuronových sítí apod. a je pouze nutné zajistit, aby nedošlo ke kolizi se sytémem Quake 2, může být vývoj při využití předpřipravených koster kódů mimořádně efektivní. To zvláště vyniká při srovnání cen s profesionálními programy podobného typu - hra ("runtime") Quake 2 stojí 60 USD, vývojové komponenty iDu jsou zdarma a pro kompilaci lze použít v podstatě libovolný C++ kompilátor.
Je ale jasné, že v případě požadavků na rozsáhlé změny chování objektů je třeba systém Quake 2 podrobně prostudovat - systém je optimalizován spíše na rychlost a efektivitu než na bezpečnost.
-----------------------------------------------------
Na offline verzi stránky chybí článek o Creatures (link) a ilustrační obrázky.
Jméno autora a původní zdroj z něhož tento článek pochází se snad dozvíte dotazem na některého z členů týmu FuzzyLogic.
Emaily na ně najdete na: www.flogic.org
Článek pro Narsil vybral a upravil (z HTML na ASCII text s kódováním češtiny podle bratří Kamenických) JS.