Nové prvky v Hafíkovi 2
Nové části jsou vyznačené takovýmto rámečkem.
Kočka ) 100% hotovo
Dlouho jsem přemýšlel, podle jakého systému se bude pohybovat a nakonec jsem to nechal na autorovi komnaty. Ve třetí betaverzi Hafíka 2 má každá komnata uložen svůj "program kočky", kde je uvedeno, jak má kočka reagovat na určité události. To sice umožňuje autorovi komnat perfektně načasovávat děj, třeba někde něco v nějaký okamžik spustit, ale to je vše. Ale jak zařídit, aby se kočka dokázala vypořádat s neočekávanou překážkou ve své cestě? Co když má za úkol někam dojít a něco se ji připlete do cesty? Dál nejde... program kočky tímto způsobem jaksi vykolejí a kočka nakonec dojde třeba úplně jinam, než měla. Je to trochu velký nedostatek na tvora, který by měl
svými schopnostmi přesahovat kvality hmyzu...
Zcela náhodou jsem nalezl jeden ActiveX prvek (od Microsoftu), který umožňuje použít ve vlastních programech standardní skriptovací jazyky - JavaScript (resp. JScript) a VBScript. Tyto skriptovací jazyky nejsou složité, není zas tak těžké se je naučit a umožňují interpretovat běžné podmínky, cykly a procedury. Zkuste si představit kočku, která počítá se situací, kdy jí něco stojí v cestě, která reaguje na věci kolem sebe (autoři neděste se, připravuji mohutnou nápovědu)... Z programovatelné kočky se stane ten nejdokonalejší prvek hry. Nemusí být
nutně Hafíkův nepřítel, může mu nějak pomáhat nebo určovat další podmínky. Díky vestavěným prohledávacím funkcím bude mít kočka vždy k dispozici přehled o celé komnatě, tedy kde je který Hafík a kde je kolik toho či onoho. Půjde třeba vyrobit komnatu, kde kočka uvolní Hafíkovi cíl až potom, co nebude v komnatě žádná světluška.
Bohužel se mi nepodaří zachovat zpětnou kompatibilitu s kočkou, která je ve třetí betaverzi, takže vás žádám, abyste zatím netvořili komnaty s kočkou - tvořili byste je zbytečně. Vy, kdo už jste s kočkou nějaké komnaty vyrobily a myslíte si, že stojí za to jejich zachování, zašlete mi je a já program kočky ručně přepíšu do JavaScriptu.
Kolem kočky a skriptovacího rozhraní jsem provedl několik drobných změn. Snažím se co nejprozíravěji navrhnout objektový model, aby skriptování pohybu kočky a tlapy bylo co nejjednodušší a nejintuitivnější.
Nálož (dříve Bomba) ) 100% hotovo
Bomba je vlastně bedna, která obsahuje výbušninu (trinitrotoluen). Běžná "šoupací" manipulace s náloží je bezpečná, lze ji odpálit dopadem kamenu (nebo drahokamu) nebo výbuchem v jejím těsném okolí. To opět dodává hře nové možnosti. Bomba se od běžných beden liší tím, že kameny (nebo drahokamy) se z ní "neskutálejí", ale mohou na ní nehybně stát.
Čidlo ) 100% hotovo
Čidlo je prvek, který reaguje na změnu ve svém okolí - 3 sekundy bliká a pak zmizí (zmizení trvá také cca 0.4 sekundy). V jednoduchosti je krása a i tento prvek zásadně doplňuje pravidla. V betaverzích občas reagovalo čidlo chybně (třeba na některé animace). Tato chyba je už opravena.
Blecha ) 100% hotovo
Nový hmyz - blecha - bude v celé historii BD nejvíce kamarádským prvkem. Je to první příslušník hmyzí říše, který se naučil přežít i v kontaktu s Hafíkem i v kontaktu s jiným hmyzem. Koneckonců, i v reálném světě - nejlepším parazitem je ten, kdo svého hostitele nezabije, ale jen ho využívá, případně mu i napomáhá (jakási symbióza). V Hafíkovi 2 bude možné blechu ovládat stejně jako Hafíka. Hráč si tak bude moci užít toho pocitu, kdy kolem něj bude obíhat třeba světluška. Na bleše je také zajímavé, že může být v komnatě vícekrát, pak se ovládají všechny současně. Je možné toho využít k blokování jiného hmyzu, k odstřelování améby (i zde pořád platí, že hmyz+améba=bum), k průzkumu "nepřátelského terénu" atd.
Ve vší skromnosti, tento nápad si zaslouží Nobelovu cenu za Boulder Dash :-). Dosud žádný klon Boulder Dashe neobsahoval tak bizarního tvora. Otevírá spoustu nových možností...
Kudlanka ) 100% hotovo
V současných betaverzích se objevuje ještě jeden nový hmyz - kudlanka. Je to velmi nepříjemná potvora, protože není možné se jí běžnými nenásilnými způsoby zbavit.
Pohybuje se směrem k aktivnímu Hafíkovi, takže není možné ji zacyklovat (tedy nechat kolem něčeho obíhat) jako u světlušek a motýlů, ani není možné vytvořit chodbičku jako u mouchy. Dokonce je i těžké ji nahnat proti amébě, protože pes Hafík se musí nacházet na takovém místě, aby améba byla mezi ním a kudlankou... pokud tedy améba roste někde v rohu, je prakticky nemožné dostat se za ní. Rovněž nelze kudlanku sejmout kamenem na otevřeném prostranství, představte si situaci : zdrháte, kudlanka je vám v patách a sebemenší zastavení vás stojí život... vidíte kámen
na ostrůvku hlíny, řeknete si "a teď ji dostanu", dojdete zespoda pod kámen (takže kudlanka je také někde pod tím kamenem) a uhnete třeba doleva... jenže kudlanka uhne tím směrem také a padající kámen ji mine.
Ve třetí betaverzi Hafíka 2 obsahovala kudlanka jednu chybičku - více těchto potvůrek vedle sebe se pohybovalo doleva jinak než doprava a nahoru jinak než dolu. Při pohybu jedním směrem se mezi nimi utvářela mezera, při pohybu druhým směrem se mezera netvořila. Podobnou chybu obsahují některé klony BD i u světlušek - není totiž možné, aby šly dvě světlušky hned těsně za sebou, vždy mezi nimi musí být prostor alespoň jedno políčko. Stejně tak tomu bude i v případě kudlanky. Další chybou u kudlanek bylo, že se všechny hnaly na
pozici, kde byl Hafík, i v případě, že ten Hafík byl už zabit. V případě, že není vybraný žádný Hafík (tedy pokud byl naposledy vybraný zabit nebo hráč zrovna ovládá blechy), bude kudlanka stát nehybně na místě.
Jednosměrky ) 100% hotovo
Jednosměrky umožní projít Hafíkovi nebo kočce jen jedním směrem. Bude jakoby urychlovat pohyb doleva či doprava. Půjde jich dát do komnaty několik vedle sebe... a zbytek uvidíte 29.července, kdy Hafíka 2 vydám!
Neuvedl jsem rok, ale myslel jsem tím asi 2003. Sorry, nestihl jsem to :-)
Tlapa ) 100% hotovo
Tlapa bude druhým skriptovacím prvkem v Hafíkovi. Předepsaný program se ovšem spustí jen tehdy, když na tlapu něco spadne nebo do ní někdo (Hafík nebo kočka) strčí. Tlapa může zhodnotit situaci v komnatě, něco Hafíkovi napsat, na něco se ho zeptat (!!!) a pak se v něco proměnit.
S tím zeptáním to nebude tak žhavé. Světlušky kolem, améba se dusí, kudlanky vám jdou po krku, v krvi adrenalin... a v takovém stavu se vás má tlapa na něco ptát? Být vytržen ze hry a povídat si s tlapou? Nikdy.
Magnety ) 80% hotovo
Ačkoli byste od tohoto prvku určitě očekávali, že se bude přichytávat k ocelové zdi, nebude tomu tak. Magnet se bude neoddělitelně přichytávat jen k jinému magnetu. Spojené magnety se budou chovat jako jeden celek, takže Hafíkovi bude stačit strčit do jednoho a pohnou se všechny. Bude-li někde před magnetem (před celým celkem) kámen, bude muset Hafík "zatlačit", aby s ním pohnul.
Magnet jsem úplně předělal a předělám ho ještě jednou :-). Zavedl jsem póly: kladný a záporný. Pevné spojení tvoří sousedící magnety opačných pólů. Souhlasné póly k sobě nyní přitlačit vůbec nejde (vlastně výtah to umí, ale to je jedna z jeho mnoha chyb :-)). To se změní. Souhlasné póly půjde k sobě přitisknout, ale jakmile to bude možné, odpudí se od sebe. Už se těším na možnosti, které to přinese.
Jak má magnet reagovat s ocelovou zdí? Podle skutečnosti by se k ní měl asi přichytit. Ale to je jen záležitost názvosloví - originální BD nazval nezničitelnou zeď ocelovou jen proto, že ocel je pevná. Magnetické důvody Peter Liepa určitě neuvažoval. Mohl bych ji v Hafíkovi 2 přejmenovat a intuitivní potřeba interakce s magnetem zmizí :-). Co vy na to? Napište mi.
Výtah ) 90% hotovo, přesto zrušen
Výtah je na první pohled velmi jednoduchý prvek, jezdí jen nahoru a dolu. Kdo by snad chtěl namítat, že je to jen primitivní a zbytečná zátěž pro už tak dost nadupaná pravidla, ten se mýlí. Výtah se sice hýbe jen v těch dvou směrech, ale má velkou sílu - dokáže vytlačit kámen nahoru. A co víc - dokáže sunout bedny, bomby i spojené magnety, na kterých leží kameny.
Výtah nebude. Ve spojení s magnety vznikalo příliš mnoho sporných situací. Když např. na konstrukci z magnetů ležely dva kameny vedle sebe, výtah je byl schopen vytáhnout oba nahoru. Pokud však ležely nad sebou, nešlo to. Z hlediska logiky hry je to možná ještě pochopitelné, ale z hlediska reálného života jde o nesmysl. Nechci hráče zahlcovat desítkami pravidel o neintuitivnosti předmětů.
Plazma ) zrušena
Plazma bude nehybný vícepolíčkový formovatelný herní prvek, jehož základní vlastností bude nestlačitelnost. Bude-li v úzké cestičce a Hafík na ni bude z jedné strany tlačit, vyleze z druhé strany. Bude fungovat jako jakýsi "přenašeč síly", její chování bude někdy mírně náhodné, ale častěji spíše předvídatelné. Sám zatím nemám představu, jak to bude fungovat.
Idea plazmy přežila, přestože jsem ji zavrhnul. Budou-li v úzké cestičce magnety se souhlasnými póly a Hafík na ně bude z jedné strany tlačit, budou se odpuzovat a výsledkem bude, že vylezou ze strany druhé.