Diskuze: Děkuji za pomoc s učením
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


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?
Miroslav Mazal:10.6.2020 12:02
Zdravím a děkuji. Těžko se na to odpovídá. Zkusím popsat proč.
- 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.
- Hodně času zabralo 3D modelování postaviček a vytváření animací.
- Udělal jsem si i 2 měsíce pauzu.
- Nepracoval jsem každý den.
- 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 KontrolaRychlostiMicku(). 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
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
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.
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.
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..
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í.
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.
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.
Zobrazeno 10 zpráv z 10.