Kto by nepoznal Pacman-a? Ale ak by sa naozaj niekto neznalý našiel, tak jednou vetou povedané: Pacman je osembitová klasika v herných automatoch (arcade machines), kde hráč v podobe osoby Pacman-a zbiera v bludisku bodky za výrazného prenasledovania štyroch duchov. Každý z duchov má vlastnú povahu, z čoho vyplýva jeho pohyb po bludisku.
Hru pod pôvodným názvom Puckman (Pakkuman) vytvoril v roku 1980 Toru Iwatani s niekoľkými spolupracovníkmi vo firme Namco ako hru bez násilia určenú hlavne ženám. Vývoj trval 17 mesiacov. Hra sa stala veľmi populárnou a bola často námetom pre ďalšie hry na rôznych platformách, nakoniec i sám autor sa k nej vrátil v roku 2007 pod názvom Pacman C. E. Spoločnosť Bandai-Namco 31. marca 2015 zverejnila správu, že uvoľňuje práva k svojim 17 hrám vrátane Pacman-a pre japonských vývojárov (anglická verzia tlačovej správy je už nedostupná).
Úvodná obrazovka Puckman-a, Pacman-a a Ms. Pacman
Hra i po 35 rokoch má svojich nadšencov. Organizujú sa aj turnaje v dosiahnutí najvyššieho score (Perfect Pacman 3 333 360 bodov v 256 leveloch) v čo najkratšom čase (rekord 3:33:01).
Pacman bol mojou obľúbenou hrou v kočovných vozoch nazývaných Videoherne. Mal som vtedy okolo 12-13 rokov a dokázal som za dva dni nahádzať do automatu ťažko ušetrených 30 Kčs (vtedy cena 15 litrov polotučného mlieka alebo 75 kusov rožkov). Prvýkrát som sa pokúsil túto hru naprogramovať v máji 1988 v jazyku Basic na počítači PP-01 a myslím, že celkom úspešne, žiaľ zostala stratená v dobe. Druhý pokus bol v jazyku Pascal na PP-06 v textovom režime s využitím dvoch znakov tváre (smajlíkov) z IBM znakovej sady. Hovorí sa, že do tretice všetko dobré. Tretia verzia hry je naprogramovaná v asembleri a je založená na algoritmoch použitých už na PP-01. Je mojou prvou hrou v asembleri vôbec a jej vývoj trval 10 týždňov.
Something old and something new. Originál Ms. Pacman (vpravo) a verzia pre Ondru (vľavo).
Prakticky najľahšie zvládnuteľné bludisko s krátkymi trasami a mnohými križovatkami,
ktoré umožňujú ľahký únik pred nenásytnými duchmi.
Pacman pre počítač Ondra má svoje špecifiká dané jeho hardvérom. Najväčším nedostatkom je absencia farieb, vďaka čomu sú duchovia nerozoznateľní. Malá rýchlosť počítača sa tiež podpísala na mnohé zjednodušenia. V čom je teda iný?
- postavy sú generované softvérovo, tomu je však tak na všetkých replikách (len v originálnom stroji sa o zobrazenie stará hardvér hracieho automatu a vykreslenie nespotrebuváva výpočtový výkon procesora)
- rozmiestnenie textov, označenie levelu a životov je po bokoch bludiska
- posun postáv je o 8 bitov (jeden bajt), jemnejší krok nebol možný (i napriek veľkej snahe)
- úvodná hudba je pre limity počítača pri vypnutom zobrazení
- zvuky počas hry sú značne zjednodušené
- pohyb úst je skladaný z dvoch obrazcov a nie z troch
- pohyb duchov má zjednodušenú logiku, rozhodovanie na križovatkách je na základe vzájomnej pozície ducha a Pacman-a
- všetci duchovia a Pacman sa pohybujú rovnako rýchlo
- hra má 10 levelov s piatimi rôznymi bludiskami, potom sa opakuje
- bludiská sú použité z originálnej hry, dva z hry Ms. Pacman, jedno z hry Crazy Otto a piate je vlastné
- zobrazujúce sa bonusové ovocie je pozmenené, ako aj body zaň, tie sa navyše nezobrazujú
- po zjedení ducha sa počas zobrazenia bodov hra nepozastaví
- premenu ducha sprevádza zvukový tón
- návrat očí do štartovacej pozície má tiež vlastnú logiku
- nový smer Pacman-a je možné navoliť už s predstihom
- energizer nebliká
- úvodná obrazovka sa podstatne líši
- demo medzi druhým a tretím levelom je len s malým Pacman-om
- pre nevyspytateľnosť duchov je bonusový život už každých 5000 bodov
- a samozrejme, množstvo malých či menších detailov
Bludisko z pôvodnej hry.
Vyčistenie spodnej trasy je polovicou úspechu.
Bludisko z 3. levelu hry Ms. Pacman. Kritické miesto
je Schlögener Schlinge na vrchu bludiska.
Hudbu k hre skomponoval Toshio Kai a je to jeho jediný príspevok vo svete hier. Pre Ondru je úvodná melódia trochu prispôsobená, aby vyznela čo najlepšie. Ostatne ani noty, čo kolujú na internete, presne nezodpovedajú pôvodnej melódii, ktorú stroj zahrá v úvode hry.
Pacman pre Ondru má 5 rôznych bludísk.
Grafika podkladu je tvorená z dlaždíc veľkosti 8x8 pixelov, ktorých je na výšku 36 a a šírku 28. Steny bludiska sú vždy na okraji vedľajšej dlaždice priliehajúcej k ceste. Pacman a duchovia sú vykreslení v rastri 16x16 pixelov a teda zaberajú aj časť zo všetkých vedľajších ôsmych dlaždíc. Netreba zabudnúť aj na zjavujúce sa ovocie, ktoré je z hľadiska vykresľovania rovnocenné.
Bludisko je zobrazené v dlaždiciach s veľkosťou 8x8 px.
Pri zobrazení na počítači Ondra by bolo treba pri zmene polohy prepisovať až 3x16 bajtov na každú postavu.
Na to však výkon počítača nestačí a prakticky je počas zatemnenia možno prepísať 5 postáv 2x16 bajtov. Aby teda všetko fungovalo, ako má, na začiatku levelu, len čo sa bludisko vykreslí, je posunuté o 4 bity vľavo. Tým je dosiahnuté to, že (pri osembitovom posune postáv) stačí vykresľovať postavy 2x16 bajtov (v skutočnosti len 2x14 bajtov, keďže zvyšné nenesú obrazovú informáciu a šetrí sa tým počet strojových cyklov). Ovocie ako šiesta postava sa však už vykresľuje samostatne a nezávisle od zatemnenia, takže v priebehu hry môže za určitých okolností dôjsť k odmazaniu jeho časti inými postavami.
Pri vývoji boli použité niektoré knižnice Ondra GDK, napísané začiatkom roka 2015. Keďže hra si vyžiadal niektoré zmeny a vylepšenia, vzniklo aj niekoľko nových knižníc, ako
SPRITES - rýchle vykreslenie postáv 16x16px s elimináciou blikania
TILES - uloženie a obnovovanie podkladu pod postavami
JOYSTICK - zjednodušené skenovanie vstupu počítača
Je úplne logické, že niektoré časti pôvodných knižníc boli odstránené. Sú písané univerzálne, čím sú rozsiahlejšie, ako je pre tento účel potrebné, preto boli niektoré nevyužité rutiny odstránené, aby výsledný kód nebol pridlhý (vec, ktorá sa v dnešnej dobe mega a gigabajtov zanedbáva).
Všetky rutiny boli optimalizované, aby zaberali najmenší počet strojových cyklov, čím má priebeh hry celkom slušnú dynamiku (za 1 sekundu sa Pacman posunie 5-krát), navyše rýchlosť sa s každým levelom o trochu zvýši, v desiatom leveli dosahuje svoje maximum.
Vzhľadom na to, aký je počítač pomalý, myslím, že rýchlosť hry je na dobrej úrovni. Možno sa bude zdať, že je trochu ťažšie hrateľná, nakoľko pohyb duchov sa zameriava na dostihnutie Pacman-a. Ale po troche tréningu sa dá každý level zvládnuť. Na každé bludisko však platia iné "triky", a hlavne, nesústreďte sa na požieranie duchov. Najdôležitejším posolstvom tejto hry je, že sa do určitej miery dá vysporiadať s obmedzeniami počítača. Verím, že sa mi podarilo vydláždiť cestu pre ďalších nasledovníkov.
Prajem príjemnú zábavu!
Pre tých, čo ich omrzelo nekonečné hranie, ešte pár horúcich kláves:
CTRL+S - koniec hry
CTRL+R - reset počítača
Pre záujemcov sú zverejnené aj zdrojové kódy hry.
Kompletné knižnice GDK môžu uľahčiť vývoj ďalších hier.