Časté chyby začátečníků
Z CHWiki
| Zde najdete dobře míněné rady, které vám pomohou vaši hru dokončit anebo se ušetřit výsměchu. |
Všechny zde uvedené rady jsme dali dohromady na základě reálných případů.
Obsah |
[editovat] Začněte v malém
Mnoho začátečníků chce udělat nějakou velkou hru, třeba MMORPG jako World of Warcraft nebo FPS jako Doom 3. Je přirozené, že chcete vytvořit něco velkého a skvělého, čím zapůsobíte na ostatní. Problém je v tom, že projekty této velikosti je naprosto nemožné dokončit v malém freewarovém týmu. Je normální, že člověk bez zkušeností v daném oboru neumí odhadnout, co všechno takový projekt vyžaduje a proto i začátečníci v oblasti tvorby her mají často dojem, že "to nebude tak těžké". Opak je ale pravdou. Stačí si pustit třeba právě WoW a podívat se do Credits. Je tam něco kolem 30 programátorů a kolem 50 grafiků! Navíc jsou to všechno zkušení lidé, kteří pracovali 8-10 hodinn denně a dostali za to normálně zaplaceno. Každý rozumný člověk si musí uvědomit, že malý free tým se k něčemu takovému ani neblíží.
Proto je třeba vybrat si nějaký zvládnutelný projekt. U malé hry je větší šance, že ji dokončíte a věřte tomu, že komunita na české-hry.cz mnohem více ocení pěknou malou hru, než načnutý monstrózní projekt. Váš projekt může být varianta na zavedené téma jako například tetris, plošinovka a podobně. Anebo proč nevymyslet něco úplně nového, originálního?
[editovat] Neprezentujte svůj projekt, když ještě nejste aspoň za půlkou
Toto souvisí s předchozím bodem. Je docela risk prezentovat něco, u čeho není jisté, zda to dokončíte. Když se budete chlubit, co jste si všechno vymysleli, že váš projekt bude mít a přitom vlastní odvedená práce bude velmi malá, dočkáte se v lepším případě jen výsměchu. Je mnohem lepší ukázat, co konkrétně jste udělali.
[editovat] Nevydávejte cizí práci za svou
Může to znít jako samozřejmost, ale i takové případy se vyskytnou. Je lepší prezentovat ne úplně dokonalou vlastní práci, než se chlubit cizími výtvory. Člověk, který se vydává cizí práci za vlastní a sám nic nevytvoří, si všechny ty nadávky i zaslouží.
[editovat] Neučte se programovat v C nebo C++
Toto už není tak striktní rada jako ty předchozí, ale i tak je dobře mířená. Mnoho začátečníků se chce začít učit programování v C nebo v C++. Je to asi proto, že někde slyšeli, že jsou to "cool" nebo "nejlepší" jazyky, že je používají profíci. Anebo možná ani jiné neznají.
Tyto jazyky jsou dost náročné, člověk musí poměrně dobře vědět, jak počítač vlastně funguje. Musí si ručně spravovat paměť a řešit obtížné problémy popsané na stránce Ukazatele. S tím mají často problémy i zkušenější programátoři a pro začátečníka, který má problém vůbec látku pochopit je to až příliš. Přitom existují jazyky, kde se člověk může více soustředit na výuku a tyto systémové problémy vůbec neřeší. Navíc C++ je pravděpodobně nejsložitější jazyk, jaký existuje (nemusíte používat všechny funkce, ale z té složitosti plynou třeba nesrozumitelné hlášky překladače).
Proto doporučuji naučit se programovat v některém jednodušším jazyce a až potom se případně učit C nebo C++. Rozhodně to nebude ztráta času, znalosti nabyté s prvním jazykem využijete při programování v C. A první jazyk můžete využít na dalších projektech, nebo později. Většina programátorů tak jako tak ovládá více jazyků. Navíc většina nabídek zaměstnání je na jazyky jako C# nebo Java.
Pokud si myslíte, že jedině C/C++ je pro vaši hru dostatečně rychlé, zamyslete se znovu. A podívejte se třeba na projekt Jake2, což je Quake 2 napsaný v Javě. Zjistíte, že Javová verze běží jen o trošku pomaleji než původní verze. Ještě lépe dopadl port do C#. Navíc čas ušetřený tím, že se nemusíte patlat s problémy s pamětí a podobně, můžete věnovat vymýšlení lepších algoritmů. To může mít na celkovou rychlost hry mnohem větší dopad než rozdíl mezi Javou a C++.
A nakonec, žádný jazyk není nejlepší, každý má své výhody a nevýhody a každý se hodí na něco jiného. Profíci toto vezmou v úvahu a pro každý projekt si vyberou nejvhodnější jazyk. Tak dosáhnou lepších výsledků než ti, kdo se řídí podle toho, jaký jazyk je "cool".
Jaký programovací jazyk zvolit
[editovat] Předčasná optimalizace
Mnoho začátečníků má dojem, že jejich hra musí v první řadě běžet co nejrychleji. To je špatné uvažování. Mnohem důležitější je to, aby byla hra vůbec dokončena a také aby byla pokud možno stabilní. Super rychlou, ale nedodělanou hru nikdo hrát ani chválit nebude. Optimalizace má špatný vliv na přehlednost kódu a na snadnost programování a tak oddaluje termín dokončení. Optimalizovat se musí až po dokončení kódu a poté, co změříte dobu vykonávání jednotlivých částí, abyste mohli vybrat tu nejpomalejší k optimalizaci. Měření (profilování) je nutné, protože nikdy si nemůžete být jisti, co pomůže a co ne. Navíc mnohdy má větší vliv na rychlost programu volba správného algoritmu a datové struktury než škudlení pár operací v každé funkci.
[editovat] Neptejte se na každou blbost
Při programování musíte holt někdy na něco přijít sami. Na fóru byste se měli ptát na věci, které nemůžete vygooglit a nemůžete na řešení přijít. Naopak problémy, nad kterými jste příliš líní se zamyslet nebo otevřít Google, vám každý omlátí o hlavu.
[editovat] Snažte se psát srozumitelně
Některé příspěvky některých mladých uživatelů je opravdu dost problém přečíst. Úroveň písemného projevu úzce souvisí s inteligencí, takže je ve vašem vlastním zájmu vyjádřit se nějak inteligentně. Snažte se psát se správnou gramatikou, používat diakritiku a interpunkci (čárky a tečky mezi větami). Nepište vodopád slov jak vás zrovna napadnou, ale snažte se svému textu dát nějakou formu a to i za cenu, že tím strávíte o něco víc času. To, že vám čeština ve škole nejde nebo z ní máte pětky, není omluva.
Přečtěte si také článek Jak úspěšně zabít dobře rozjetý projekt.
