(Pracovně:) Chlapecké snění
Aktualisace 30. 9. Už od malička mu táta četl Lovecraftovy povídky. Dnes oslavil sedmé narozeniny, a protože to už je z něj veliký kluk a umí trochu číst, dostal vlastní sbírku povídek. Celý večer jednu četl a před spaním si představoval, jaké by to asi bylo, kdyby u nich ve sklepě taky strašilo, ale poměrně záhy usnul, takže z toho nebylo nic.
Pak se probudil. Byla noc a všichni spali. Cítil silné nutkání jít prozkoumat sklep. Vždyť tam přeci také mají zazděnou studnu, no ne? Věděl, že něco je jinak, a tak si radši vzal jako správný dobrodruh křídu – každý přece ví, že je potřeba na čarování; fotoaparát – vždyť by mu nikdo nevěřil, co viděl, kdyby ho neměl; a pro jistotu vzal z tátova šuplíku také nabitý revolver. Hlavou mu proběhlo: „Snad nedopadnu jako ten kluk ze StarGateu,“ načež se vydal s ruksakem do sklepa.
Nic vysloveně kloudného mě nenapadá, ani nemám čas se tím v hlavě zaobírat, ale relativně příběhová hra s neškodnou intertextuální prací, by se přeci jen zvážit dala.
Hráč by se ocitl v podzemních chodbách, kde chodí zlé (a možná i hodné) potvory. Jeho hlavním cílem je jednu pořádnou vyfotit. Jenže to není taková legrace, jako se zdálo, protože mu jde o život: příšery ho chtějí sežrat. Hráč tedy funguje jako návnada. Může vystřelit, čímž zrychlí pohyb nepřátel a odhadne, kde zhruba jsou („uslyší je“). Samozřejmě může nepřátele také zastřelit, ale je to hlučné a není jisté, kolik nábojů přitom spotřebuje. Sám se před démony může chránit křídovým kruhem na zemi. Jenže trvá dvě kola, než ho nakreslí. Aby příšeru vyfotil, musí být (příšera) v klidu (aby nebyla rozmazaná). Vyfocená příšera je oslněná a chvíli stojí. Hráč má samozřejmě omezený počet střel i snímků a křída postupně dochází. Kde přesně je východ, netuší.
Hratelnostně by tedy mohlo vzniknout několik hezkých situací, mohlo by tam být jisté napětí a volby, na kterých záleží: je důležité, jestli teď vyplácám snímek, nebo ne. Podstatnější by tam byl ale mírně parodický a laciný příběh, což vykresluje hratelnost trochu lichou a nemám z toho dobrý pocit. Ačkoliv tedy nevím, jestli z toho něco bude, stejně se tu nad tím můžeme aspoň teoreticky pobavit.
Nakonec by šel možná příběh úplně vypustit a mohla by to být náhodně generovaná hra na přežití, v níž by bylo cílem přežít co nejdéle nebo nahrát co nejvyšší skóre (nafotit co nejvíc materiálu) a neumřít. Přestože základ může být pořád stejný, mrzí mě, že tak malá věc, jako je herní zasazení, pak může ovlivnit (rozumějte zkazit) celý dojem.
Tak tolik moje troška do mlýna.
Aktualisace 23. 9.
Hodinku jsem se v tom vrtal a udělal základ chození a úplně základního nepřítele, který sice zatím nic nedělá, ale zato velmi náhodně chodí.
Už funguje kreslení stěn křídou (pravé tlačítko kdekoliv zobrazí nabídku; případně lze kliknout levým na panáka). Možná vynechám střílení a zaměřím se čistě na kreslení a obkličování nepřátel. Obklíčený nepřítel by pak šel vyfotit a jeho duše by se přenesla do fotografie, takže by jakoby umřel…
Bylo by to ale asi náročnější na umělou inteligenci a vůbec na tvorbu levelů.
Aktualisace 23. 9. – II
Povedlo se zapojit omezenou viditelnost a focení.
Hra už začíná být docela tajemná a napínavá… Sloučení několika obrazů je podle mě „dechberoucí“. 😀
Je hodně zajímavé sledovat, jak duchové mizí a zase se objevují.
Kdyby to chtěl někdo zkoušet, tak červenými kolečky se chodí, modrými se mění pohled. Pravým myšítkem se otevírá nabídka možností (případně levým klikem na postavu).
https://dl.dropboxusercontent.com/u/8080029/chlapecke_sneni-Default-1.0.0.0.exe (soubor má stejný název jako u 1. aktualisace)
Aktualisace 24. 9.
Dnešek je zlomovým bodem: hra určitě nebude o malém chlapci. Spíše se bude náhodně generovat. Čili se přikloním ke druhému tématickému zasazení, jež jsem měl: hrdinný novinář hledající pravdu a taky senzační fotky za spoustu peněz. Něco jako Peter Parker (SpiderMan). Jen místo síťostřelů bude mít kouzelnou křídu.
Křídové stěny hráči zablokují výhled. Jsou tedy dvojsečné: na jednu stranu mu poskytují ochranu, na druhou přes ně zkrátka nevidí. Vidí přes ně ale jeho fotoaparát.
Cílem hry bude nafotit nestvůry za co nejvyšší skóre do deníku „Trubka denně“ nebo tak nějak. Příšera zachycená na fotoaparátu z bezprostřední blízkosti ze hry mizí a je za ni nejvíce skóre, proto se vyplatí příšeru těsně obklíčit křídovými stěnami. Aby to ale nebylo tak snadné, nestačí dojít k příšeře a cvaknout: fotoaparát má zpoždění a příšera by tak mohla stihnout sežrat hráče nebo uhnout (menší skóre)
V přiložené ukázce ale zatím stále nefunguje interakce s nepřáteli (nepřitahuje je světlo, hluk ani nic podobného, jsou cele náhodní). Chybí různá omezení fotoaparátu/křídy.
Až hráč vyfotí všechen film, samozřejmě se musí ještě dostat zpátky ven, což bude o to těžší, o co více nakreslil stěn.
https://dl.dropboxusercontent.com/u/8080029/chlapecke_sneni-Default-1.0.0.1.exe
Co na to zatím říkáte?
Aktualisace 30. 9. – Počítač se stěhoval do kanceláře, do které jsem pak měl přístup až od 7. 9., i přes zálohu dat a přechod na starý notebook, jsem neměl jak na hře efektivně pracovat (žádná myš, žádný tablet).
23 odezev
Není to nic moc. Vykašli se na to.
Není nad teplé lidské slovo.
Asi tak. Mě se ten nápad náhodou líbí. Procedurální generace by to imho zkazila. držel bych se kampaně, která by v kombinaci s dabovaným vyprávěním mohla být úchvatná. Když kritiku, tak konstruktivní.
Ok. Díky za vyjádření.
Hele fakt si myslím, že ve tvém zpracování to může být příjemná taktická tahovka. Určitě bych si to rád zahrál.
Díky za podporu. Uvidíme v dalších dnech. Snažím se to vymyslet opravdu super malé, což je skutečně výzva. Mám představu o herní grafice. Dovedu si představit, že bych dokázal udělat hodně rychle i kulisy na intro a outro. Ale zatím si nejsem jistý tím, že zvládnu herní mechaniky rychle naprogramovat. Musím to nejprve promyslet, abych pak deset hodin neseděl a neřešil nesmysly. Kouká tam na mě několik proměnných, několik tlačítek. Nezní to moc náročně. Ale nejprve si to nakreslím na papír.
Stran dabingu: to asi nezvládám takhle v rychlosti domluvit a nemám mikrofon. Nicméně to promyslím.
Ke generování: zvažuji nějakou střední cestu, čili něco jako 9 větších kusů, které jsou pokaždé někde jinde. Hráč ale vždycky může poznat, o který kus jde a částečně se podle toho zařídit. Ale uvidí se. Jeden pěkný logický level by mohl být o dost zajímavější.
K té křídě se mi ihned vybavila klasická minihra, ve které si hráč ohrazuje svůj prostor, a jakmile ho uzavře, může se v něm pohybovat, a případně mu přidávat; je to ale postavené na volném pohybu, ne na pravidelné čtvercové síti… Křída je super věc!
Díky. Možná z toho nakonec bude hlavní prvek hry. Viz aktualisace.
Zajímavý nápad, uvidíme co z toho bude.
Obkličování je fajn, ale pak je důležitá nějaká interakce s hráčem, aby ho mohl do kouta zahnat nebo vlákat.
Samozřejmě. 🙂 Každopádně jsem se teď zasekl na vidění (chtěl jsem omezit viditelnost, ale zároveň se mi to nechce moc vymýšlet :-D) a na fotoaparátu, takže možná nakonec nic nebude. Představa byla taková, že fotoaparát by jednak mohl jednorázově osvítit cestu, takže by hráč viděl větší kus před sebe (ovšem nějaký čas jen ze záznamu), zároveň by tak mohl přivolávat nepřátele na dálku. Občas by tedy někoho přivolal nechtěně. Občas by si šetřil snímky a třeba by skončil sám obklíčený ve slepé uličce atp.
Vyvíjí se to tedy spíš postupně s tím, co roste pod rukama, ale že je potřeba mnohem složitější interakce s nepřáteli je docela zřejmé.
EDIT: a ještě tam byl důležitý motiv zkamenění mrtvého nepřítele, takže by blokoval cestu, ale to by se muselo otestovat.
Omezení viditelnosti se povedlo, viz nahoře, takže příště už interakce s nepřáteli. 🙂
Paráda. To už snad je škoda nedokončit ne? x)
Bude tam ještě hodně ladění, takže škoda by to asi byla, ale jestli to odevzdám, zatím není jisté. Každopádně tam na mě vyskakují krásné věci, jak už to trošku funguje: například omezení viditelnosti přes imaginární stěnu (jak té reálné, tak té fotografické)… Hráč se tedy sice schová do stěny, ale neuvidí nic. Bude to potřeba pořádně promyslet, ale hodně se mi tenhle prvek líbí. EDIT: Akorát je tedy pravda, že pak není vůbec jasné, jak vyfotit ducha/příšeru. Na druhou stranu nikde není psáno, že focení musí sloužit k focení duchů… Jen by to krapet odporovalo původnímu příběhu, který jsem měl vymyšlený.
Přijde mi, že tomu škodí ta čtvercovost. Ale jelikož je v zadání, tak by možná stačilo, kdyby alespoň pohyby byly plynulé. Prostě by to popojelo o velikost čtverce. Taky jsem myslel, že vyfocením se ducha zbavím, ale ono ne. Jen mu to něco odečetlo. Bral bych instinktivně jako plus, kdyby po vyfocení zmizel. No, třeba v tom chci jenom podvědomě vidět něco jako Alien Breed. Asi počkám, co se z toho vyklube. 🙂
EDIT: Jo a ještě jsem si všiml, že se nabídka proklikává skrz. Klepl jsem na foťák a nechtě jsem popošel.
Díky za komentář! 🙂
K pohybu a čtvercovosti: prapůvodní vize nepočítala se světlem atp., takže to mělo být spíš koumací. V současné podobě hra ale očividně potřebuje trochu lepší kontrolu, na což podle mě upozorňuješ, takže asi ovládání předělám na klávesnici + myš, což bude podle mě problém minimálně částečně řešit.
Přejíždění spritu ale neplánuji. Ne, že by to nebylo možné, ale od začátku s tím nepočítám a nechce se mi to tam dodělávat. Jak nepostupuji podle nějakého jasného plánu, je to programově hodně zbastlený a každá změna je náročná. 🙂 Moje účast je skutečně spíš stimulační nebo motivační. Poněkud mě totiž znepokojuje, že tu dohromady jen málokdo něco ukázal a okomentoval. Kdyby to tu hýřilo příspěvky a debatilo se, upřímně doznávám, že bych se na hru asi spíš vykašlal a radši dodělával Lines, řešil jinou práci, kterou mám, nebo jinou hru, která mi leží na stole. 🙂
K focení: kdybych ducha zabil s každou fotkou, není co hrát. 😀 Prostě to není střílečka, ačkoliv chápu, že to tak teď působí, protože prvky nejsou omezené, a nemůžu říct, že to není varianta, která by mě ani trochu nelákala, ale spíš to tak nebude. Uvidíme. Čísla jsou/budou „skóre“ za vyfoceného ducha. Duch mizí jen když ho vezmeš úplně zblízka. Každopádně je dobře, že jsi na to upozornil. Přidám do hry ještě revolver/pistoli, aby k podobnému zmatení nedocházelo. (Ono bude zjevné, že fotoaparát asi není zabiják číslo jedna, když má člověk pistoli.) Zastřelení příšery ale hráči sebere možnost nahrabat za ni body, takže to bude dvousečné. No a s revolverem už by to mohlo být trochu akčnější a střílecí. 😀 Uvidíme. Sám jsem zvědavý. Nejvíc se ale těším na grafiku. Síť nakonec bude 64×64 (dá se libovolně měnit) a celé to ASI bude jakoby pastelkami s důrazem na krajové linky (něco jako: co tři tahy, to sprite).
K prokliku: není standardně možný. Ale našel jsi bug – dojde k němu, když stojíš pod nakreslenou stěnou (zapomněl jsem tam závorky). Změna ovládání tohle nicméně vyřeší. 🙂
Tak ze hry asi nic nebude. Větší rozlišení tomu nedělá dobře a zasekává se to. Zkusím to zmenšit, ale moc to podle mě nepomůže (počet instancí a výpočtů bude pořád stejný). Optimalisace není úplně možná.

To by bylo divné, kdyby to nešlo..
Když mi pošleš zdroják, kouknu se a třeba poradím.
Kdyby ne, za pokus nic nedáš. Opisovat nemůžu, už mám hotovo. 🙂
Zdroják už poslal. Nám všem, nějakou dodatečnou obfuskací nebo kryptováním se Likandro zbytečně nezabýval. K pohybu, potřebuje to Dijkstrův algoritmus.
Pokud chceš, klidně se podělím o ten, který jsem napsal já, funguje skvěle. 🙂
http://s15.postimg.org/b1kzkuu7v/Bezejmenn.jpg
Máš pravdu. Optimalisovat jistě jde, ale není to pro mě možnost ve smyslu času, který bych tomu chtěl dávat. Prostě se mi nechce vymýšlet co s tím.
Největší problém je na 90% ve vytváření tmy, respektive v celém tom systému světla a tmy, protože každé tmavé políčko je jedna instance černého objektu. Jenže mně se to nechce celé předělávat na něco jiného. Na to teď prostě nemám kapacitu. Kdyby tě ale napadlo nějaké snadné řešení, tak je zdroják ke stažení tady (opravdu upozorňuji, že je to zbastlené a ne všude jsou komentáře toho, co tam kde je):
https://dl.dropboxusercontent.com/u/8080029/chlapecke_sneni.rar
Sneni3 je s velkými sprity.
Sneni2_small je s malými sprity.
Ovládání je na wasd nebo šipky. Střílí se levým tlačítkem myši. Fotí pravým tlačítkem.
Vytváření tmy je v o_control, v eventu create.
Ono to v podstatě docela normálně běží (podle debuggeru cirka 150-200 FPS), aspoň mně, ale pak se to někdy zničeho nic zasekne po tom, co vystřelím nebo vystřelím vícekrát po sobě.
EDIT: Takže mě napadá, že by to ještě mohli dělat nepřátelé. Mají docela složitý kód, na to jaké nic to dělá.
Sice je to zralé na kompletní přepsání ( to jsi asi cítil sám ), ale lze tomu pomoci asi i méně drastickými cestami. Prvně bych všechno, co je dál než dosah možné viditelnosti, přepnul na visible false, vyhodil ze všech testů ( hlavně testy viditelnosti mají strašlivé časy ) a pokud je něco, u čeho to lze, tak i deaktivoval ( např. co je dál než 2x velikost view ). U viditelnosti podle myši by bylo dobré vycházet z jednoduchých a zaokrouhlovaných čísel. Omezit kolize podle sprite. Ve čtvercové síti je téměř vždy zbytečné počítat v plovoucí řádové čárce.
Jinak zpomalení nebo zaseknutí bude spíše chybami v kódu. Střílel jsem na všechny strany a jelo to docela dobře. Zřejmě se ti něco nahromadí po delší herní době.
Ano, kompletní přepsání, ale to bychom se skutečně nedočkali.
Problém je skutečně ve střílení. Po tom, co jsem ho předělal (bylo zybtečně složité, protože jsem u toho nepřemýšlel), se to již nezasekává. Přičemž zaseknutí bylo nezávislé na době hraní.
Jinak zkusím povypínat viditelnost prvků, které jsou daleko a snad trochu stoupne výkon.
Děkuji za zažehnání paniky a za radu.
EDIT: Z logiky rady jsem otočil vykreslování tmy. Tma je tam, kde je viditelnost vypnuta. Protože průhledné obrázky žerou výkon, začal jsem ji vykreslovat přes snímky v animaci. Přestože to není vysloveně zázrak, už to u mě běží spíš okolo 200 – 300 FPS, což je určité zlepšení. Takže bych čekal, že už to pak třeba normálně spustí i někdo jiný.