Vyrobiť vlastnú hru | Nazdar!

Vyrobiť vlastnú hru | Nazdar!


Motivace


Asi žádná hra mě za poslední roky nechytla tak moc jako Kingdom: Two Crowns, ke které jsem se dostal úplně náhodně a dohrál ji celkem 6x. To je moc - prakticky žádnou hru jsem nehrál vícekrát, mám vždy pocit, že na světe je tolik her, že na to nemám nárok. Stejně tak to mám u filmů a knížek. Nicméně, byl přelom roku 2021/2022, venku zima, syn nespavec a já pohonkával Kingdom na Xboxu. Všechny ostrovy jsem si podrobil, vymýtil bubáky a vlastně ani nevím proč mě ta hra tak zaujala. Ta mechanika pohybu pouze doleva a doprava (ale přitom to není plošinovka), minimalistické rozhraní, nemožnost napřímo ovládat své vojáky a poddané. Je to prostě skvělá hra.

Někdy v té době jsem také uvažoval o tom, že bych si vyrobil vlastní hru. Živím se jako programátor, ale vyjma několika opravdu velmi starých blbin vyrobených v Game Makeru 5.3 a v podstatě jednoho "hybridního" bakalářského projektu (HTML5 hra pro Android / Windows Phone) jsem prostě žádnou ještě neudělal. Byl to můj sen už dlouho, ale někdy v té době na to dozrál čas.

Prostě jsem chtěl udělat hru podobnou Kingdom, ale zasazenou do jiného prostředí. Určitě jsem nechtěl použít žádný engine (hlavně ne Unity!), protože na ten nástroj mám svůj nepěkný názor. K tvorbě hry jsem přistupoval možná trochu jinak než je obvyklé. Chtěl jsem si spíše dokázat, že ji dokážu naprogramovat, než že bych měl nějaký geniální kreativní nápad nebo uměleckou vizi. Občas jsem musel herní mechaniky ohnout tak, abych byl schopný to vůbec realizovat.

Developers, developers, developers!


Proto jsem zvolil Monogame Framework, což je velmi "štíhlý" základ pro tvorbu hry v C#. Obsahuje herní smyčku (loop), nástroj pro nahrávání assetů a možnost kreslit na obrazovku. Přesně to, co člověk potřebuje :) V C# jsem nějaké malé zkušenosti měl, ale jako Microsoft Fanboy jsem měl motivaci se ho doučit trochu více. Navíc někdy v tom roce 2022 Monogame přešlo na .NET 6, který je plně open source a "nativně multiplatformní" bez použití Mono. Skvělá je i komunita, aktuálně probíhají diskuze na GitHubu. Organizace Monogame, stejně jako Godot a FNA dostali nedávno dotaci od týmu Re-Logic (tvůrci Terrarie) pro podporu open source.

Vývoj hry probíhal zcela jinak, než jak jsem zvyklý z psaní webových aplikací. Ten rozdíl je tam totiž opravdu velký. Spoustu, spoustu času jsem spálil jen tím, že jsem hleděl do počítače a vlastně nevěděl, kde začít. Dostat se do flow bylo hodně náročné. Střídaly se ve mě pocity "to je skvělá hra, tu musím zpeněžit" a "to nikdo hrát nebude ani zadarmo".

O čem to bude


Hru jsem pojmenoval Nazdar, což je heslo/pozdrav československých legionářů za první světové války. Celá hra je situována do prostředí transsibiřské magistrály a vaším úkolem je probojovat se směrem na východ. Hra obsahuje celkem 8 měst a v každém z nich se musíte ubránit nočním útokům bolševických zrůd. Ve dne je vaším úkolem "farmit", budovat obranu a cvičit vojáky. Do poslední verze jsem přidal i obtížnější survival mód a tutoriál do první mise.

První verze vypadala nějak takto:

Jedna z prvních verzí hry Nazdar!
Jedna z prvních verzí hry Nazdar!


A aktuální vypadá takto:

Upravené sprity, sníh, různé typy jednotek a další vylepšení v nové verzi
Upravené sprity, sníh, různé typy jednotek a další vylepšení v nové verzi


Většinu assetů jsem postahoval z asset storů (credits je opravdu dlouhý :)) a dokreslil je tak, aby zapadly do hry. Ostatní sprity jsem kreslil sám (např. vagóny) a víte co? Jsem na to hrdý :) Když se na tu hru podívám nebo si ji po delší době zahraju, mám pocit dobře odvedené práce a v rámci možností jsem s hrou spokojen a jsem rád, že jsem se do vývoje pustil. Ten pocit zahrát si ji na Xboxu? Whaaat? Skvělý. Nedávno jsem se díval na recenze a moc mě potěšily :) úplně mi stříkly energii do žil.

Chcu si to zahrát!


Hru si můžete stáhnout zdarma, je k dispozici pro Windows, Xbox, Android a Linux. Stáhnout si ji můžete z mých stránek: https://skoula.cz/nazdar/.  Budu rád za každé hodnocení :) Najdete tam i odkaz na Github, kde jsou zdrojové kódy. Hra je open source, můžete ji prošmejdit a podívat se, jak jsem co vyřešil. Nazdar.Shared je projekt samotné hry, který obsahuje kód a assety. Nazdar.GL je pak projekt pro Windows/Linux, Nazdar.UWP je pro Xbox a Nazdar.Android to je jasné :)

Zkuste to taky


A určitě, samozřejmě, všem doporučuji si zkusit vývoj vlastní hry (už jen pro ten pocit, mít svou vlastní hru), ať už ji budete dělat v čemkoli. S láskou vzpomínám na jednoduché rozhraní starého Game Makeru :) Extrémně populární je dnes Godot, kterému jsem nepřišel na chuť (asi kvůli těm "nodes"), protože jsem zaměřen na kód. Mnou vybraný Monogame doporučuji spíše programátorům.

Beru to jako jeden ze svých splněných, ani ne snů, ale spíš takových životních úkolů. Věc z bucket listu. Celý život jsem hrál hry, tak jsem potřeboval mít jednu reprezentativní abych mohl říct "hele, tuhle jsem udělal". 

Tvorba her je extrémně široká oblast a ne každý je dobrý ve všem, tak si klidně vemte někoho na pomoc. Pokud nejse zocelení programátoři, klidně si vemte na pomoc engine, který vám dost věcí vyřeší. Pokud neumíte grafiku, na webu najdete obrovské množství volně dostupných assetů (staří uvést autora). U assetů je potřeba dát si pozor, aby se k sobě hodily, zvlášť pokud jsou od různých autorů.

Takže tak. Buďte pochválení hráčikovia.