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

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

 

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

Google       10. 1. 2011       20 546×

Pamatujete Pac-Mana? Jak by ne, nedávno jej vtisknul i Google do svého loga. Pohyb nepřátel v této hře řídí na pohled komplexní logika a my vám ji ve dvojici článků přiblížíme. V tomto prvním díle se seznámíte se základy, v druhém pak s "osobnostmi" jednotlivých duchů a možnými fintami pro boj s nimi.

Reklama
Reklama

Chad Birch si nedávno otevřel blog, na kterém by rád postupně odkrýval fungování herních mechanismů známých her. Nazval ho GameInternals a inspirací mu byl Jamey Pittman a jeho sbírka „Pac-Man Dossier“, která je fascinujícím rozborem mechanik hry Pac-Man. První článek tak má být, dle Chadových slov, i jakousi poklonou a pokusem o přístupnější vysvětlení komplexní umělé inteligence, která se za hrou schovává.

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

O hře

Všechny počítačové hry té doby byly násilné – buď válečné, nebo typu space invader. Neexistovaly žádné, které by si mohl užít kdokoliv, obzvlášť ženy. Chtěl jsem vytvořit „legrační“ hru, která by se líbila i něžnější polovině lidstva.

Toru Iwatani, tvůrce hry Pac-Man

Pac-Man je jedna z nejsymboličtějších videoher všech dob a alespoň zběžně se s ní setkala většina lidí (včetně „nehráčů“). Cíl hry je velice jednoduchý - hráč (reprezentovaný postavičkou zvanou Pac-Man) se nachází v bludišti plném jídla (které je znázorněno jako kuličky nebo tečky, chcete-li) a k postupu do další úrovně ho musí všechno sníst. Aby to nebylo tak jednoduché, jsou v bludišti čtyři duchové, kteří Pac-Mana pronásledují. Jakmile dojde ke kontaktu, hráč ztrácí život a Pac-Man i duchové se vrátí na výchozí pozici, snědené tečky se ale neobnovují.

Kromě prostého vyhýbání se má Pac-Man proti duchům jedinou obranu – čtyři větší kuličky, „budiče“, které se nacházejí v rozích bludiště. Když jeden z nich sní, duchové se na krátkou dobu vyděsí, začnou utíkat a v počátečních úrovních je může Pac-Man dokonce jíst a získat tak bonusové body. Sežraný duch není kompletně eliminován, pouze se vrací na výchozí pozici a pokračuje v pronásledování.

Vedle pojídání teček a duchů je ještě jeden způsob získávání bodů – ovoce. V průběhu každé úrovně se poblíž středu bludiště objevují dva kousky. První přijde na scénu po konzumaci 70 teček a druhý se objeví, když jich Pac-Man sní 170.

Každá úroveň používá stejný tvar bludiště, v kterém je 240 obyčejných teček a čtyři budiče. Tunely na krajích, které vedou mimo hrací plochu doleva a doprava, fungují jako zkratka a může je používat jak Pac-Man, tak duchové, jejichž rychlost je ale v tunelu značně omezená. Ačkoliv se rozložení nemění, jednotlivé úrovně jsou postupně čím dál obtížnější kvůli změnám Pac-Manovy rychlosti, rychlosti duchů a jejich chování. Po dosažení úrovně 21 už k žádným změnám nedochází a všechny další levely jsou identické.

Společné prvky chování duchů

Inu, ve hře o pojídání není zrovna moc zábavy, takže jsme se rozhodli vytvořit protivníky, kteří by přidali trochu vzrušení. Mají svou vlastní povahu a aby se hráč dostal k jídlu, musí s nimi bojovat. Nepřáteli jsou čtyři příšerky ve tvaru duchů, každý v jiné barvě - modrý, žlutý, růžový a červený. Použil jsem různé barvy hlavně proto, abych potěšil dámy, které by hru hrály - měl jsem za to, že se jim barvičky budou líbit.

Toru Iwatani, tvůrce hry Pac-Man

Každý z duchů je naprogramován tak, aby měl individuální „osobnost“, neboli odlišný algoritmus, který používá k určování způsobu pohybu bludištěm. Porozumění tomu, jak se duchové chovají, je extrémně důležité při efektivním unikání. Než se však pustíme do rozebírání jednotlivých modelů chování, prohlédneme si nejprve logiku, kterou mají protivníci společnou.

Domeček

Na začátku hry neútočí všichni duchové najednou. Jak ukazuje obrázek počáteční pozice, v prostoru bludiště začíná jenom jeden z duchů, ostatní jsou zavřeni na místě uprostřed, které je často označováno jako „domeček“ (v originále „ghost house“). Mimo zahájení levelu se na toto místo duchové vrací, jenom když je Pac-Man sežere při „nabuzení“ nebo v rámci resetu poté, co zemře. Domeček je jinak nepřístupný (jak duchům, tak hráči). Duchové se z něj vydají vždy doleva, ale mohou se takřka okamžitě otočit díky efektu, který bude popsán později.

Podmínky, určující kdy mají duchové povoleno opustit domeček, jsou ve skutečnosti docela komplexní, a proto je do tohoto článku nezahrnu (navíc se po dokončení prvních několika úrovní stávají stále méně relevantními). Pokud vás zajímají a chcete si o nich něco přečíst (a přijít na zajímavý způsob zneužití), zabývá se jimi do hloubky na začátku jmenovaný Pac-Man Dossier.

Cílová pole

Velká část návrhu hry a jejích mechanik se točí kolem představy hrací desky rozdělené na dlaždice. V tomto kontextu „dlaždice“ představuje čtverec o rozměrech 8×8 pixelů. Hra Pac-Man má rozlišení obrazovky 224×288 px, což nám dává celkovou velikost plochy 28×36 dlaždic, z nichž většina je ale nepřístupná (hráči i duchům). Jako ukázku vlivu dlaždic uveďme, že duch „chytí“ Pac-Mana v případě, že se oba nachází na stejném políčku, nebo že každá kulička je uprostřed své dlaždice.

Všimněte si, že obrázky (sprity) duchů a Pac-Mana mají větší rozměry než jednotlivá pole, takže se nikdy nenacházejí pouze v jednom z nich. Z pohledu hry je to řešeno tak, že za aktivní se považuje ta dlaždice, v níž je v daném okamžiku středový bod postavy. Tohle je důležité vědět při unikání duchům, protože ke kolizi dochází pouze v případě, že se jejich středový bod dostane na stejné pole jako ten Pac-Manův.

Klíčem k pochopení chování duchů je koncept cílového pole. Většinu doby má každý duch stanovenou dlaždici, na kterou se snaží z aktuální pozice dostat, a jeho chování je tomu podřízeno. Všichni duchové používají k cestování hracím polem stejné metody, ale při stanovení patřičného cílového pole se projevují jejich rozdílné osobnosti, protože každý má svůj unikátní způsob.

Neexistuje žádné omezení, které by říkalo, že cíl musí být dosažitelný - často je na nedostupné dlaždici a běžné chování duchů z toho vychází. Cílová pole budou rozebrána detailněji v dalších částech, nyní si zapamatujte pouze to, že motivací duchů je ve většině případů dostat se na určitou dlaždici.

Režimy pohybu duchů

Duchové se vždycky nacházejí v některém ze tří dovolených režimů: Chase (pronásledování), Scatter (rozptýlení) a Frightened (děs). Standardní režim je Chase - duchové v něm tráví nejvíc času a loví Pac-Mana. V tomto režimu je určení cílového pole ovlivněno pozicí Pac-Mana, ale u každého protivníka má jinou významnost.

Scatter se liší v tom, že má každý duch pevně danou dlaždici, která je vně jednoho z rohů bludiště. Důsledkem je, že v tomto režimu se duchové rozprchnou směrem ke „svým“ rohům.

Unikátní je režim Frightened, protože v něm duchové nemají určeno cílové pole, ale místo toho se na každé křižovatce pseudonáhodně rozhodují, kam se vydat. Navíc změní barvu na tmavě modrou, pohybují se mnohem pomaleji a Pac-Man je může jíst. Doba trvání tohoto režimu se ale při postupu úrovněmi krátí a od levelu 19 dál se už vůbec nevyskytuje.

Aby byla hra trošku napínavá, chtěl jsem, aby v určité fázi nepřátelé Pac-Mana obklíčili. Měl jsem ale pocit, že být neustále obklopován a udoláván by bylo pro lidskou bytost příliš stresující, takže jsem to zařídil tak, že nájezdy monster přicházejí ve vlnách. Zaútočí a stáhnou se. A postupem času se přeskupí, zaútočí a znovu rozprchnou. Takhle to vypadá mnohem přirozeněji než být pod neustálým útokem.

Toru Iwatani, tvůrce hry Pac-Man

Přechody mezi režimy Chase a Scatter nastávají na základě pevného časovače, který způsobuje efekt „vln“, jenž popsal Iwatani. Časovač je vynulován na začátku každé úrovně a kdykoliv hráč ztratí život. K jeho pozastavení dojde, když duchové přepnou do režimu Frightened (tj. když Pac-Man sní budič), a jakmile ten skončí, vrací se do předchozího režimu a časovač pokračuje, kde přestal. Duchové začínají ve Scatter a jsou definovány čtyři vlny výměn Scatter / Chase, po kterých zůstanou v režimu Chase, dokud se nevynuluje časovač. Pro první level jsou doby jednotlivých fází nastaveny takto:

  1. 7 sekund Scatter, potom 20 sekund Chase,
  2. 7 sekund Scatter, potom 20 sekund Chase,
  3. 5 sekund Scatter, potom 20 sekund Chase,
  4. 5 sekund Scatter, potom trvale přepnout na Chase.

Délka těchto fází se o něco změní při dosažení druhé úrovně a ještě jednou při dosažení páté. Od levelu 2 se třetí Chase znatelně prodlouží, na 1033 sekund (17 minut a 13 sekund), a následující Scatter trvá pouhou 1/60 sekundy, načež duchové přejdou na permanentní Chase. Změny úrovně pět k tomu přidávají zkrácení prvních dvou režimů Scatter na 5 sekund a přesunutí získaných 4 sekund do třetího Chase, čímž je prodloužen na 1037 sekund (17:17).

Co se týče zkrácení režimu Scatter na 1/60 sekundy ve všech úrovních kromě první, ačkoliv se přepínání na tak zanedbatelně krátkou dobu zdá nesmyslné, má své důvody a odhalíme je zanedlouho.

Zde končí první díl rozboru chování duchů. V druhém díle se mimo jiné dozvíte o osobnostech nepřátel a taktikách úniku.

×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.

3 názory  —  3 nové  
Hlasování bylo ukončeno    
1 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 NEWTON Media prohledá 200  milionů mediálních zpráv během sekund díky Cisco UCS

NEWTON Media prohledá 200 milionů mediálních zpráv během sekund díky Cisco UCS

Česká společnost NEWTON Media provozuje největší archiv mediálních zpráv ve střední a východní Evropě. Mezi její zákazníky patří například ministerstva, evropské instituce nebo komerční firmy z nejrůznějších oborů. NEWTON Media rozesílá svým zákazníkům každý den monitoring médií podle nastavených klíčových slov a nabízí online službu, kde lze vyhledat mediální výstupy v plném znění od roku 1996.

Reklama
Reklama
Obrázek ke článku Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý