Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Swiftu. Zároveň využij výhodnou slevovou akci až 30 % zdarma při nákupu e-learningu - více informací.
swift week + discount 30
Avatar
Miroslav Mazal:5.6.2020 15:52

Zdravím. Před 4 roky jsem si říkal, že bych si moc chtěl vytvořit nějakou vlastní hru, i kdyby to mělo být jen "Člověče, nezlob se.". Ale neměl jsem ponětí, jak se to dělá a měl jsem
43 let. Neuměl jsem programovat. Přesto jsem si sedl k počítači a začal hledat nějaké články. Našel jsem tyto stránky a pár měsíců jsem se tady učil základy C#. Musel jsem pochopit, co to je Visual Basic (aspoň uživatelské základy). Pak jsem hledal nějaký software pro vývoj her a našel jsem Unity. Tak jsem si pouštěl na YouTube tutoriály. Protože neumím anglicky, tak jsem si zapínal titulky a automatický překlad. A pak jsem si vytvářel první projekty. Na jednom jsem se naučil práci s Vectory, na jiném implementování 3D objektů. Nedělám si iluze, že jsem nějaký programátor. Asi věci nedělám úplně tak, jak by se to mělo. Ale funguje to. Můžu si vytvořit něco malého vlastního, a to je super pocit. Výsledek mého úsilí je třeba tady https://simmer.io/…bol/minigolf . Načtení trvá asi 2 minuty, protože hra má 190 MB. 98% jsou z toho obrázky animace. Je to v české i anglické verzi. Snad vás to pobaví.
A díky. Mirek

Zkusil jsem: Ukázka.

Chci docílit: Jen děkuji.

 
Odpovědět
5.6.2020 15:52
Avatar
Jan Stodůlka
Tvůrce
Avatar
Jan Stodůlka:10.6.2020 9:45

Vypadá to pěkně a zajímavá grafika. Na prvním hřišti jsem míček dal už na druhý pokus.
Jen mi chvíli trvalo než jsem zjistil jak míček odpálit. Směr a sílu jsem zjistil hned. Možná by to chtělo ještě trochu vylepšit.

Jinak chválím.
Jak dlouho jste na tom pracoval a kolik to má řádek kódu?
Je to celé v C# a Unity?

Nahoru Odpovědět
10.6.2020 9:45
Nechodím do hospody, protože doma programuji.
Avatar
Odpovídá na Jan Stodůlka
Miroslav Mazal:10.6.2020 12:02

Zdravím a děkuji. Těžko se na to odpovídá. Zkusím popsat proč.

  1. Je to můj první velký projekt, takže jsem se musel hodně věcí učit za chodu. Natrefil jsem na nějakou potřebu, a pak jsem hledal tutoriály, nebo Unity scripty manuály, jak se to dělá. To dost zdržovalo.
  2. Hodně času zabralo 3D modelování postaviček a vytváření animací.
  3. Udělal jsem si i 2 měsíce pauzu.
  4. Nepracoval jsem každý den.
  5. Hodně času zabralo ladění samotné hratelnosti každé jamky. Vymodeloval jsem to, ale při samotné hře se ukázalo, protože používám fyziku, že dráha je moc jednoduchá, anebo naopak nemožná splnit. Tak jsem se musel vrátit do 3D programu a přemodelovat ji. A to i několikrát.

Takže, co se týče času bych to odhadoval na 3 měsíce čistého času (asi půl roku).

Délka kódu je několik tisíc řádků, ale mnoho se jich opakuje, protože se jedná o kombinaci 18 jamek a 4 hráčů. Mnohé jamky mají jiná nastavení a různé vlastní doplňky. Míček se často mírně pohyboval dost dlouho, než se zastavil. To zdržovalo. Tak jsem musel vytvořit něco, co zkrátí setrvačnost. Pak se ale muselo u některých jamek ošetřit, aby se míček nezastavil na nevhodných místech (třeba v půli kopce při obrátce). U jiných je potřeba pohled i z boku (na chvíli zapnout vedlejší kameru), aby hráč získal představu o výšce míčku. Takových nutných doladění pro jednotlivé jamky se vyskytlo poměrně hodně.

Navíc jsem jen začátečník a samouk, takže mnohé funkce neznám, anebo by se to dalo zkrátit, kdybych měl potřebnou praxi.

Půlka z kódů je vlastně popis. Popisoval jsem si pečlivě, co která metoda přesně dělá, a proč. Abych se v tom, když se k tomu za nějakou dobu vrátím, vyznal. Taky samotné názvy metod jsou poměrně dlouhé, protože jsem si je nazýval třeba KontrolaRychlos­tiMicku(). Kvůli tomu, abych nezapomněl, co metoda dělá, když ji někde používám.

A i když se to nezdá, je tam hrozně moc věcí. Od uložení jmen, aby se po opětovném spuštění hry objevila ta má jména, po zoom a posun obrazovky, možnost předčasně odejít ze hry atd. atd.

A ano. Vše je jen Unity3D a C#. Plus modelovací a animační program Cinema4D. Použil jsem různé pomůcky z internetu. Jako Mixamo (pro animaci), či Adobe (jaké barvy se k sobě hodí), Fiverr (hledal jsem anglicky mluvící lidi, kteří mi nahráli hlas) atd. Koupil jsem i zvuky např. z AudioJungle. Používal jsem i Audacity pro střih zvuku nebo Avidemux pro úpravů rozlišení animací a jejich ořezávání.

Hodně jsem se taky natrápil s nastavováním změny rozlišení, když má někdo jiné rozměry obrazovky.

A během práce se objevují pořád nějaké problémy, jejichž řešení vám nikdo neřekne, a musíte hledat na internetu, v čem je problém. Třeba po buildu hry a nahrání do Androidu se pořád objevovala jen růžová obrazovka. Strávil jsem mnoho času animací, které jsem vytvořil do MP4, naprogramoval jsem to a fungovalo to. Když jsem pak chtěl dát hru na web nebo do mobilu, tak jsem zjistil, že v Unity MP4 formát sice funguje, ale neumí je exportovat. Takže to nefungovalo. Až pak jsem se dočetl, že to tak prostě s Unity je. To mně docela zkrouhlo. Tak jsem musel vytvořit animace znovu, ale jako samostatné obrázky, které se po sobě rychle promítají. To ale znamenalo celý program předělat. A navíc pak hra měla velkou velikost, která se nedala použít. Tak jsem zase musel upravit animace a zmenšit rozlišení, co to jde. Taky byl pro mne docela šok, když má aktiva v Unity měla cca 100 MB, ale po exportu do Androidu měla 350 MB. A to mobily nebraly. Tak jsem zase musel hledat proč.

A takových problémů byla spousta. Někdy to bylo docela dost o nervy.

Když to shrnu, určitě nejsem profesionál a věci se dají dělat lépe. Ale hrozně moc jsem se na tom naučil a co je hlavní. Funguje to. A rodině a přátelům můžu něco ukázat. Neumím zpívat, ani hrát na hudební nástroj ani kreslit. Tak aspoň to :-))

Mirek

 
Nahoru Odpovědět
10.6.2020 12:02
Avatar
Miroslav Mazal:10.6.2020 12:44

Je jenom trochu zraňující, když po takovém martíriu někdo cizí začne porovnávat hru s hrami na internetu, a nechápe rozdíl mezi hrami s miliónovými rozpočty a někdy s miliardovým zázemím a velkým týmem profesionálních programátorů, grafiků a zvukařů, a hrou vytvořenou jedním člověkem na obyčejném notebooku na balkóně rodinného domku. A napíše vám, že má hra není tak hezká jako Age of Empires nebo FIFA 2000 :-(

 
Nahoru Odpovědět
10.6.2020 12:44
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Miroslav Mazal
DarkCoder:10.6.2020 13:48

Mně osobně se líbí celý tvůj příběh o který si se s námi podělil, ve kterém hraje prim překonávání všemožných překážek a touha dokončit to co sis umanul. Toto by si měl přečíst každý nováček, který by rád i bez předchozích zkušeností něco opravdu naprogramoval. Pro ně by to bylo obrovskou motivací, neboť zde je vidět, že když se opravdu chce, tak to jde.

Možná si to ani neuvědomuješ co si za tak krátkou dobu udělal. Sám si dohledat informace a naučit se používat možností programovacího jazyka C#, enginu Unity3D a ještě si vytvářet vlastní modely v Cinema4D a to celé skloubit dohromady a vytvořit funkční projekt. Obdivuhodné!

A že se to někomu nelíbí, nad tím je třeba se usmát. Lidé jsou různí, každému se líbí něco jiného. A jsou i tací, kteří se takto vyjádří jen proto aby zkazili pocit z úspěchu. Tím se nenech ovlivnit.

Za mě dvěma slovy: SKVĚLÁ PRÁCE!

Přeji mnoho úspěchu do další tvorby která potěší tebe, tvoji rodinu i tvé přátele.

Nahoru Odpovědět
10.6.2020 13:48
"Chceš-li předávat své znalosti, měj kvalitní podklady."
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na DarkCoder
Miroslav Mazal:10.6.2020 15:33

Moc mi tvá rozumná reakce udělala radost. Nevím, jestli se mi podaří hru i nějak trochu zpeněžit, ale když vidím dospělé přátele, jak se baví, když to spolu zkoušíme hrát, 70 leté rodiče, jak to každému nadšeně ukazují, anebo si přečtu hezkou rozumnou reakci, tak to stálo za to. V 24 letech jsem nepříjemně onemocněl, takže jsem částečný invalida. Proto jsem toho moc nenapracoval, což i příbuzné dost trápilo. A tak mají radost, když vidí, že se snažím něco dělat. A mně to psychicky pomohlo. Proto dokáží i já ocenit práci druhých. Například to, že tu zadarmo učíte lidi, aby nemajetní lidé nebyli v životě mimo hru. Tolik článků. To je času a času. Nebo jsem používal hodně různá fóra v Unity, a lidé mi tam zadarmo radili a pomáhali. I spousta tutorialů jsou vlastně jen pracně vytvořené, přesto zadarmo zpřístupněné informace, za které lidé platí na školách obrovské peníze. Je fajn být virtuálnê mezi lidma, které něco spojuje, kteří nepřevádějí všechno na peníze, a pomáhají si. Zatímco mnohé miliardové firmy se snaží zpoplatnit každý prd, anebo si účtují nehorázné poplatky.

 
Nahoru Odpovědět
10.6.2020 15:33
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Miroslav Mazal
DarkCoder:10.6.2020 16:24

Tak to mě těší. Výsledek tvé práce je důkazem, že nic není nemožné. Dokázal si dokončit projekt i bez úvodních znalostí, to je realita. Stejně tak reálné je i to, že kromě skvělého pocitu tvého z dobře odvedené práce, radosti tvých blízkých a přátel, můžeš svoji tvorbu zpeněžit. Jistě by to byl příjemný bonus navíc a motivace a klid do další práce. Právě reakce na to přináší spoustu nového. Každý má na to názor který může přinést nový nápad jak stávající projekt vylepšit a překvapit tak uživatele novými prvky. Když člověk má kolem sebe lidi, kteří vidí nefalšovanou radost z úspěchu a dokáží to ocenit, je to skutečně pohlazení na duši.

Každý kdo opravdu chce může něčeho dosáhnout. Jen ten, kdo se o to pokusí sám, může zažít ten opravdový fajnový pocit, než ten, co se snaží jen někde něco dohledat. Stojí to dřinu, námahu, čas i nervy, ale to co je na konci je odměna, která stojí za to.

Poděkování patří všem, kteří se zde jakkoli konstruktivně podílí na předávání informací. Nasměřovat někoho na správnou cestu je nejen správné, ale i ušlechtilé. Navíc nikdy nevíš, kdy budeš sám potřebovat pomoci. To že někdo poskytl návody k tomu jak co řešit, tak díky tomu si dokončil svůj projekt. Bez toho nikdo neví jak by to dopadlo, třeba by vůbec nic nevzniklo. Zkrátka přináší to pozitiva oběma stranám. Informace jsou cenné, proto někteří přistupují k tomu tak jak píšeš. Mně třeba to krom dobrého pocitu za pomoc druhým dává i to, že na úlohách které kdo řeší, si víc a víc prohlubuji analytické myšlení a opakuji si látku. Díky tomu je pro mě řešení mnoha problému časově efektivnější. Když si po přečtení zadání vybavím hotový kód v hlavě, který jen předám překladači, pak je to zkrátka zábava..

Nahoru Odpovědět
10.6.2020 16:24
"Chceš-li předávat své znalosti, měj kvalitní podklady."
Avatar
Jan Stodůlka
Tvůrce
Avatar
Jan Stodůlka:15.6.2020 7:02

Chtěl bych také udělat hru a myslím, že důležitá věc jsou žebříčky (TOP 1000...).
Aby uživatel měl možnost se srovnat s ostatníma. Vidět jaké má nejlepší skóre v rámci celého světa, nebo jen v rámci státu. Pak může bojovat za sebe nebo za českou republiku. Nebo žebříčky i na úrovni jednotlivých sekcí (za nejkratší čas, za nejmíň úderů...).
Né každý to dá za maximum bodů, tak mít těch žebříčků více aby se každý mohl někde najít a zabojovat.

Jednou jsem několik týdnů těžil satoshi na jednom webu jen proto, že jsem viděl kolikátý za ten den jsem vůči ostatním. Začal jsem jako cca 2000 a po půl dni jsem byl již 1530. To bylo super a hrozně mě to motivovalo těžit dál, jen abych se posunul na nižší číslo. Počet vytěžených satoshi (což se dá převést na reálné peníze) mě tolik nezajímal, jako to pořadí.

Nahoru Odpovědět
15.6.2020 7:02
Nechodím do hospody, protože doma programuji.
Avatar
Odpovídá na Jan Stodůlka
Miroslav Mazal:15.6.2020 11:07

Zdravím. Ano. To je jistě dobrá věc. Hodně jsem nad ní přemýšlel. Nicméně to vyžaduje další znalosti, které momentálně nemám. Jde o výměnu informací přes internet. Ať už jsou to žebříčky nebo multiplayery. Musíte mít někde místo, kde se odesílají data z hráčova zařízení (a může se narazit na různé bezpečnostní prvky), na nějaké konkrétní místo, kde se to porovnává a vyhodnocuje. Je to otázka nejen programová, ale asi i finanční. Už jsem si četl pár tutoriálů, ale jsem unavený, a potřebuji si na nějakou dobu od této hry odpočinout. Tak třeba někdy v budoucnu.

 
Nahoru Odpovědět
15.6.2020 11:07
Avatar
Jan Stodůlka
Tvůrce
Avatar
Jan Stodůlka:18.6.2020 11:05

Na uložení a zobrazení dat na webu Vám bude stačit normální hosting za pár korun. V tom bych problém neviděl. Jen je to potřeba zabezpečit aby Vám tam nikdo jiný neposílal výsledky.
Na server to jednoduše odešlete jako http požadavek a data můžete naformátovat pomocí XML.

Nahoru Odpovědět
18.6.2020 11:05
Nechodím do hospody, protože doma programuji.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.