V říjnu 2023 jsem se v rámci tvůrčí výzvy Inktober pustil do tvorby plošinovky.
Samozřejmě, už si jí chcete zahrát. Ok, dám vám odkaz, zahrajte si a pak se vraťte, a já vám povím jak vznikala. Hra je zde: https://vatoz.itch.io/i23 , ovládá se šipkami či WASD, při každém načtení se náhodně vygeneruje mapa.
Inktober
Inktober je celosvětová říjnová akce, kdy každý den kreslíte tuží či inkoustem na zadané téma. Už řadu let se toho účastním (asi od kovidu), jeden rok jsem z obrázků od lidí z naší skupiny udělal karty na Inktober Dixit (vydáno nákladem +-30 sad), loni jsem fotil Lightpainting & malování světlem.
Letos jsem na výzvu pozapoměl, takže až druhého jsem se pustil do prvního tématu. Věděl jsem, že si nechci témata rozmýšlet dopředu, že se nechám vždy inspirovat daným tématem + postupně budu hru ladit, vylepšovat. Takový malý scrum.
01. Dream
Hráč je jen červený čtverec, čtyři typy pevné země, postýlka jako cíl, který zatím nic nedělá. Hra už se dá hrát. Vytvářím github repository, publikuji na itch.io, a následně vytvářím Github Actions skript, který vždy novou verzi publikuje. Jsem za to rád, nemusím nic kopírovat, nahrávat, a pro takovýhle hobby projekt mi to ušetří spousta času. (Časem tam ještě doplním, že mám jet jen na branchi main)
02. Spider
Pavučina s pavoukem, který se spouští nahoru a dolů, navázaný na tick – čas běhu mapy. Zatím pavouk neublíží, protože hráč nemá životy.
03. Path
Jediné téma, které řeším jen novým kódem. Přidávám viewport – „okno“ kterým se hráč kouká na mapu akteré může skrollovat. Díky tomu mohu mít mnohem širší mapu.
04. Dodge
Přidávám meteority, které rytmicky padají, šlehají z nich plameny, tvoří kráter. Zatím stále hráč nemá životy, tak se jim nemusí vyhybat.
05. Map
Přidávám první dva mraky, které lítají na pozadí. Časem se přidají další, změním jejich velikost, rozřadím je do vrstev mezi pozadí.
Po publikování ještě přidávám do mapy kytku a strom jako dekorace.
06. Golden
Zlaté mince, které můžete sebrat, zobrazuji počítadlo.
07. Drip
Kapky kapající ze stropu. Animace s hromadou snímků (asi 18).
Protože je opruz přidávat obrázky s animací na mnoho míst v podobě bambiliónu řádků, přidávám Spright, kterým z hromady obrázků/sprite udělám jeden velký, ze kterého vykreslím vždy jen část.
Dlouhodobě mi to ušetří spoustu nanicovaté práce a řádků kódu.
08. Toad
Tohle téma šlo samo, tam kde kape voda, tam se může občas objevit žabička.
Nic nedělá a asi ani dělat nebude.
09. Bounce
Trampolína, která hráče (stále červený čtverec) odrazí výš. Po tématu ještě přidávám paralakticky zobrazované čtyři vrstvy krajiny v pozadí.
10. Fortune
Truhlička plná zlaťáku, a v uživatelském rozhraní v případě velkého množství mincí kreslím bankovky.
11. Wander
Cestovatel, konečně se ze čtverce stává postava, v tu chvíli ještě se žlutými vlasy.
12. Spicey
Přidávám chilli papričku. Poté, co jí sníte, na každém místě, ze kterého klávesou vyskočíte, vyroste nová.
13. Rise
Balón, který vás jednorázově vynese do výšky. A konečně se hráč může zranit, když zemře, vrátí se na začátek a na místě kde zemřel se přidá apartní hrobeček.
14. Castle
Téma si o to vysloveně říká – přidávám samostatnou zónu mapy ve které je rozpadající se hrad. Spousta grafiky a generování.
15. Dagger
Meč zaražený v kameni. Samozřejmě když ho seberete, stanete se králem. Což vám zatím nepomůže k ničemu navíc.
16. Angel
Poměrně jednoduchoučké – když potkáte anděla, můžete líp skákat.
17. Demon
Hezké navázání na existující mechaniku, když jste v chilli režimu dost dlouho, ďábel vám požehná a můžete skákat skrz zem vzhůru – když je jenom jedna.
18. Saddle
Když vlezete do portálu, ocitnete se na koni (bráno od Muybridge 🙂 ). Kůň může jen doprava, dá se z něj slézt.
19. Plump
Hromada práce v Gimpu, barevný míč (v několika variantách, přemýšlel jsem nad tím že by se mohl kutálet či odrážet.) Zatím jen překáží.
20. Frost
Už třetí zóna, s namrzlými bloky, kde, když se pohybujete, se už nezastavíte.
21. Chains
Přidán sprite co nic nedělá, na kterém je kostlivec v řetězech a nějaký úklid kódu.
22. Scratchy
Vylepšeno vykreslování hradu, je ještě rozpadlejší.
23. Celestial
Přidán měsíc do pozadí. Pomalinku pomalinku se hýbe, ale opravdu jen o ždibíček.
24. Shallow
Podzemí hradu je zatopené a voda přitéká. Jen král může otočit kohoutem. Hezké uzavření existující mechaniky.
25. Dangerous
Obří pavouk, který lozí mimo mřížku. Křivé nohy, stálý hlad. Taková Odula.
26. Remove
Některé podlahy hradu jsou v tak špatném stavu, že když na ně dupnete, začnou se drolit.
Dvanáct framů animace, troška logiky.
27. Beast
Hra už se dá dohrát, a v tu chvíli se přepne do NewGame+, kde sbíráte houby. (Zdravím TMFR)
A bestie z č. 25 dostane svou lidskou stránku.
28. Sparkle
Ohňostroj po dokončení hry.
29. Massive
Lehce buggy kód. Když vypijete lahvičku s jedem, po snězení každé houbičky o trochu vyrostete.
Příjemné vykročení z pravidelnosti mřížky.
30. Rush
Rozšířil jsem možnosti houbiček. A přidal vypravěče, který provází příběhem.
31. Fire
Majáky vzplály! Gondor volá o pomoc! Úplný konec hry, který se zobrazí, když se z konce vrátíte zpátky na začátek.
Hru jsem dofinišoval 20. listopadu, neplánuji žádný další rozvoj.
Dohromady má asi 170 sprite – jednotlivých obrázků – většinu v mřížce 32*32.
1199 řádek kódu v js, +js soubor publikující jednotlivé sprite.
Mám zaznamenáno 87 commitů – jednotlivých verzí hry. Občas jsem pushnul i něco, co nebylo schopné běhu, nebo mělo zapnutou nějakou experimentální vlastnost.
Kód je k nahlédnutí na https://github.com/vatoz/i23