Chování duchů ve hře Pac-Man, část 2.
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Chování duchů ve hře Pac-Man, část 2.Chování duchů ve hře Pac-Man, část 2.

 

Chování duchů ve hře Pac-Man, část 2.

Google       17. 1. 2011       27 375×

V pokračování minisérie o chování duchů v kultovní hře Pac-Man se konečně podíváme na chování nepřátel a rozebereme osobnosti duchů.

V předchozí části jsme skončili tím, jaké režimy pohybu duchové mají, a nastínili jsme, že v každém okamžiku se snaží dostat na "cílové pole". Dosud nebyly popsány mechaniky, které řídí zaměřování cíle, a jak se projevují odlišnosti jednotlivých nepřátel. Na oboje dojde v této části.

Tento článek je překladem originálu „Understanding Pac-Man Ghost Behavior“, který napsal Chad Birch. Originál najdete na jeho blogu GameInternals.

Základní pravidla pohybu duchů

Pokusíme se porozumět, jakým způsobem se přesně duchové snaží dosáhnout svých cílových polí. Jejich AI (umělá inteligence) je velmi jednoduchá a krátkozraká, o to působivější je ale výsledné komplexní chování. Nepřátelé plánují vždy pouze jeden krok dopředu – jakmile duch přejde na nové políčko, podívá se na další v pořadí a rozhodne se, kterým směrem se na něm otočí. Tato rozhodnutí mají jedno velmi důležité omezení – duchové nesmí svůj aktuální směr obrátit o 180 stupňů. To znamená, že nemohou vstoupit na pole zleva, pak se rozhodnout, že půjdou na druhou stranu, a vrátit se zpět doleva. Pokud duch vstoupí na pole s dvěma východy, bude kvůli omezení pokračovat dál stejným směrem.

Pro toto pravidlo však existuje jedna výjimka – pokaždé, když se duchové přepínají z Chase nebo Scatter do jiného režimu, jsou nuceni se otočit, jakmile vstoupí na další pole. Tato instrukce přepíše jakékoliv dřívější rozhodnutí o směru pohybu, takže efektivně funguje i jako signál pro hráče, že duchové změnili režimy. Všimněte si, že nepřátelé nemění směr při opuštění režimu Frightened, protože tam je zřejmé, že skončil – jejich barva se vrátí z tmavě modré na původní.

Takže ten minule zmíněný Scatter, který od druhého levelu trvá jen 1/60 sekundy, zajistí, že se všichni duchové obrátí, ačkoliv jejich cíl zůstane stále stejný. Otáčecí efekt se aplikuje i na ty protivníky, kteří ještě neopustili domeček, takže pokud z něj nevylezli do první změny režimů, vystartují s instrukcí „otoč se hned, jakmile to bude možné“ a vydají se klasicky doleva, ale v podstatě okamžitě změní směr a půjdou doprava.

Diagram ukazuje zjednodušený tvar bludiště. Rozhodování je nutné pouze na zeleně vyznačených čtvercích, „křižovatkách“.

Když se duch potřebuje rozhodnout, kudy dál, změří u možných cest přímou vzdálenost od cílového pole a vybere tu, která je nejkratší. V situaci na obrázku vlevo se duch na křižovatce vydá nahoru.

V případě, že dvě nebo více potenciálních polí budou od cíle stejně daleko, provede se výběr v pořadí nahoru > doleva > dolů. Směr doprava má nejnižší prioritu a v této situaci se nikdy nezvolí.

Kvůli tomu, že se bere v potaz pouze přímá cesta k cíli, se může stát, že duch na křižovatce zvolí „špatný“ směr a celá trasa bude ve výsledku delší. Je to vidět na příkladu vpravo, kde měření vzdálenosti říká, že doleva je lepší volba, nicméně vyústí v cestu dlouhou 26 polí, zatímco vydat se doprava by znamenalo pouze polí 8.

Poslední zvláštní případ, na který je třeba dát si pozor, jsou čtyři křižovatky, které byly na diagramu bludiště označeny žlutě. Mají totiž jedno omezení navíc - duchové se na nich nesmí otočit nahoru. Když přijdou zleva, pokračují doprava, a naopak (kromě případů, kdy dojde k nucenému obrácení směru). Omezení neplatí pro režim Frightened - v něm duchové nahoru mohou, pokud tak rozhodne náhoda. Stejně tak duchové, kteří na tato pole přicházejí shora, se mohou otočit zpět, pokud zrovna v tu dobu dojde ke změně režimů. Restrikce tedy platí pouze pro „běžný“ rozhodovací proces. Pac-Man může získat náskok tím, že se na žlutých polích vydá nahoru a duchové jsou nuceni jít delší cestou okolo.

Osobnosti duchů

Tahle věc je srdcem celé hry. Chtěl jsem, aby každý strašidelný protivník měl svou povahu a vlastní specifické pohyby tak, aby se všichni nehnali za Pac-Manem v zástupu. To by bylo mdlé a fádní.

Toru Iwatani, tvůrce hry Pac-Man

Jak jsme zmínili dříve, duchové se liší pouze ve způsobu výběru cílových polí v režimech Chase a Scatter. Jediný oficiální popis osobností je jednoslovný výraz označený jako „character“. Nejprve se podíváme, jak se duchové chovají v režimu Scatter, protože je to extrémně přímočaré, a potom probereme hledání cíle v režimu Chase.

Scatter

Každý duch má předdefinované pevně dané cílové pole mimo rohy bludiště. Jakmile začne režim Scatter, všichni duchové se vydají ke svým „domovským“ rohům a používají při tom standardní metody hledání cesty. Ale protože pole jsou ve skutečnosti nedostupná a není dovoleno se zastavit nebo otočit, duchové jsou nuceni přejet cíl a zase se k němu stočit hned, jak je to možné. Nakonec všichni skončí v pevně daném kruhu ve svém rohu a kdyby v režimu Scatter zůstali, budou ve smyčce donekonečna. V praxi nikdy netrvá Scatter moc dlouho, takže duchové často nemají šanci se před návratem do režimu Chase do svého rohu vůbec dostat, natož se zvládnout obkroužit. Na diagramu jsou patrná cílová pole a konečné cesty duchů v rozích, rozlišené podle jejich barvy.

Červený duch

Červený duch začíná mimo domeček a většinou je první, koho hráč rozpozná jako hrozbu, protože se takřka okamžitě pustí za Pac-Manem. Jmenuje se „Blinky“ a hra popisuje jeho osobnost jako stín. V japonštině se mu říká 追いかけ, oikake, což se dá přeložit jako „pronásledovatel“ nebo „lovec“. Popisy v obou jazycích jsou přesné, protože v režimu Chase je Blinkyho cílem pole, na kterém se aktuálně nachází Pac-Man, což zajišťuje, že jej následuje v podstatě přímo (pokud se kvůli krátkozrakému rozhodovacímu mechanismu nevydá neefektivní cestou).

Ačkoliv je Blinkyho zaměřovací metoda velice prostá, duch je v něčem oproti ostatním výstřední - ve dvou pevně daných okamžicích každé úrovně (v závislosti na počtu zbývajících teček) zrychlí o 5 % a změní se jeho chování v režimu Scatter. Načasování změny rychlosti se liší level od levelu (objevuje se častěji, jak hráč postupuje do vyšších úrovní).

Změna zaměřování v režimu Scatter je ale asi významnější. Způsobuje, že Blinkyho cíl je stále Pac-Man a nikoliv pole v pravém horním rohu obrazovky, jak by bylo obvyklé. Díky tomu je vlastně neustále v režimu Chase, přestože při přepínání režimů pořád obrací směr. V tomto stavu je Blinky obecně označován za „Elroye, řízenou střelu“ (v originále „Cruise Elroy“, překad je tedy velmi volný), nicméně původ názvu se zdá neznámý. Dokonce ani všemocný Pac-Man Dossier jej nedokáže zdůvodnit. Jestliže Pac-Man zemře, když je Blinky v tomto režimu, duch se dočasně vrátí do původní podoby, ale až všichni ostatní opustí domeček, přepne zpět na Elroye.

Růžový duch

Růžový duch sice začíná v domečku, ale vždycky jej okamžitě opustí (i v prvním levelu). Jeho přezdívka je „Pinky“ a osobnost popisována jako rychlík, což je značná odchylka od japonského znění 待ち伏せ, machibuse, což přeloženo znamená „útočník ze zálohy“. Japonská verze sedí mnohem lépe, protože Pinky se nepohybuje rychleji než ostatní duchové (a pomaleji než Blinky v režimu Cruise Elroy), ale míří na místo, kam se Pac-Man blíží, nikoliv to, kde v dané chvíli je.

Cílové pole je určeno tak, že se Pinky podívá na Pac-Manovu akutální pozici a orientaci a vybere místo, které je čtyři pole před ním. Tak to bylo alespoň zamýšleno a volba funguje, když je Pac-Man natočen doleva, dolů nebo doprava. Jakmile se ale obrátí nahoru, způsobí chyba přetečení, že cílová dlaždice bude čtyři pole před Pac-Manem a čtyři pole nalevo od něj. Nerad bych vyděsil neprogramátory, ale pokud vás zajímají technické detaily, které se skrývají za tímto bugem, napsal Don Hodges vynikající vysvětlení (odkaz na Google cache, protože vysoký traffic neustále shazuje jeho server) včetně původního assemblerového kódu a jeho opravené verze.

Podstatným důsledkem zaměřovací metody je, že Pac-Man může často vyhrát hru „kdo s koho“ (game of chicken). Protože je cílové pole nastaveno čtyři dlaždice před ním, tak jakmile se vydá přímo proti Pinkymu, v určitou chvíli bude mít duch cíl za zády. Díky tomu Pinky použije nejbližší možnost odbočit a kruhem se dostat zpět k cíli. Z tohoto důvodu je běžnou strategií otočit se k Pinkymu čelem, když se dostane moc blízko. Často ho to pošle pryč jiným směrem.

Modrý duch

Modrý duch je přezdíván „Inky“ a v prvním levelu opustí domeček a zapojí se do honby až potom, co Pac-Man zkonzumuje alespoň 30 teček. Anglicky je jeho osobnost popisována jako stydlín, japonsky pak 気紛れ, kimagure neboli „nevyzpytatelný“. Inkyho pohyb se špatně předvídá, protože jako jediný z duchů používá k určení cílového pole další faktor (kromě pozice a orientace Pac-Mana) - přidává do svých výpočtů lokaci a směřování červeného ducha, Blinkyho. Abychom našli Inkyho cíl, musíme začít dvě dlaždice před Pac-Manem (tedy ve směru jeho natočení), potom si představit vektor, který vychází z pozice Blinkyho a končí v tomto místě, a nakonec jeho velikost zdvojnásobit. Inky směřuje tam, kde nový vektor končí.

Důsledkem je, že když bude Blinky dál od Pac-Mana, cíl modrého ducha se může divoce měnit, ale jakmile se přiblíží, dá se většinou spolehnout, že Inky bude také nedaleko.

Poznamenejme, že výpočet Inkyho „dvou dlaždic před Pac-Manem“ trpí stejnou chybou přetečení jako Pinkyho ekvivalent, takže když půjde Pac-Man nahoru, konec prvního vektoru bude ve skutečnosti dvě pole nahoře a dvě vlevo od něj.

Oranžový duch

Oranžový duch, „Clyde“, je poslední, kdo opouští domeček. V prvním levelu z něj nevyleze, dokud není snědena více než třetina teček. Anglicky je prý liknavý, zatímco japonsky je jeho osobnost popsána jako お惚け, otoboke neboli „předstíraný nezájem“. Typicky je Japonská verze přesnější, jelikož zaměřovací metoda, kterou Clyde používá, může vést k domnění, že si jenom hledí svých věcí a o Pac-Mana se vůbec nestará.

Jedinečnou vlastností jeho zaměřování je, že má dva oddělené režimy, které neustálé přepíná tam a zpět v závislosti na vzdálenosti od Pac-Mana. Kdykoliv potřebuje Clyde vypočítat nové cílové pole, zjistí nejprve, jak je daleko, a pokud mu vyjde více než osm polí, používá stejný způsob jako Blinky - cílem je aktuální Pac-Manova dlaždice. Nicméně v okamžiku, kdy se vzdálenost zmenší pod osm polí, nastaví se Clydův cíl na spodní levý roh hracího pole, stejně jako v režimu Scatter.

Kombinace těchto dvou metod vede ke konečnému efektu, že Clyde míří přímo k Pac-Manovi a najednou si to jakoby rozmyslí a vrací se zpět do svého rohu. Na obrázku nahoře označují křížky místa, kde došlo k přepnutí režimu určování cíle. Kdyby se Pac-Manovi podařilo nehnout se ze své pozice, Clyde by jezdil kolem dokola napořád. Dokud se hráč udrží mimo levý dolní roh, je možné se ducha zbavit jednoduše tak, že mu nezablokuje „únikovou cestu“ do jeho rohu. Dokud je Pac-Man v dosahu osmi polí od levého spodního rohu, zůstane Clyde ve stejné nekonečné smyčce, do jaké by se nakonec dostal v režimu Scatter.

Závěr

Pokud jste dočetli až sem, měli byste mít ucelenou představu o logice, která se skrývá za pohybem duchů ve hře Pac-Man. Porozumění chování nepřátel je nejspíš ten nejdůležitější krok, pokud se chcete stát schopným hráčem, a už jen základní představa o tom, kam se duchové v další chvíli hnou, může vaše schopnosti značně vylepšit. Pac-Man mi nikdy moc nešel, ale když jsem tvořil tento článek a zkoušel pár věcí, zjistil jsem, že mi utíkání jde mnohem lépe než dřív. I malé věci, jako rozeznání přepnutí na Scatter a vědomí, že máte několik sekund, kdy se vás duchové nebudou (vědomě) snažit zabít, mohou hodně pomoci.

Hra Pac-Man je dechberoucí ukázkou zdánlivě komplexního chování, které vychází jen z několika šikovně navržených pravidel. Výsledkem je hra, která je výzvou, a hráči se ji snaží pokořit i 30 let po vydání.

Zdroje

  • The Pac-Man Dossier, Jamey Pittman - prakticky jediný zdroj informací ohledně hry Pac-Man, který potřebujete. Udělal jsem pár vlastních experimentů, abych tu a tam potvrdil některá tvrzení, ale upřímně - většina tohoto článku je jen jiné uspořádání a přeformulování Jameyho fantastické práce. Tohle čtení hodně doporučuji, pokud se vám líbil můj článek a rádi byste se dozvěděli více o dalších aspektech hry.
  • Pac-Man’s Ghost Behaviour Analyzed and Fixed, Don Hodges - vysvětlení chyby zaměřování Pinkyho a Inkyho a trocha relevantního kódu Z80.
  • Všechny citáty Toru Iwataniho pocházejí z rozhovoru, který poskytl Susan M. Lammersové pro Programmers at Work. Celý rozhovor je k dispozici online v muzeu hry Pac-Man.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

4 názory  —  4 nové  
Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Martin ŠimečekPracuje v českém Microsoftu a zaměřuje se na technologie pro vývojáře. Jeho denním chlebem je setkávání s vývojáři velkých i menších firem, startupy a jednotlivci. Kromě toho přednáší, nahrává videa, píše a programuje. A ještě je i korektor, knihomol, geocacher, gamer, plavec a cyklista.
Web     Twitter     LinkedIn    

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý