6. května 2015 17:52

Kdo je Bohouš?

Plánoval jsem vydat Víčkův článek na přelomu února a března a už je květen a stále nic... Chtěl jsem psát o škole, o novém notebooku apod. Pokud vás to zajímá, nebojte, na to ještě dojde, pravděpodobně ale až po zkouškovém období, tj. konec května. Dnes budu psát výhradně o mé tvorbě. Už je také na čase, když jsem poslední dobou o ní nepsal skoro vůbec.

Zahodil jsem rok práce

Nejdříve bych vám měl prozradit, co přesně jsem zahodil. Chtěl jsem o tom psát ve třetí části článku Jak jsem se zase zbláznil, ale to jsem ještě nevěděl, že s tím nakonec seknu. Jednalo se o tzv. SVUtils, respektive nedávno přejmenováno na VickoLib, protože se na mě SuperMartas vy... kašlal. I když mě to docela naštvalo a zklamalo, za zlé mu to nemám, protože ani nemůžu - spolupracoval se mnou ze své vlastní dobré vůle... Proč jsem se na to ale vykašlal já nebylo proto, že bych ztrácel motivaci (např. díky jeho odchodu), ale prostě proto, že jsem si uvědomil jednu velkou pravdu: JE TO BLBOST!

VickoLib měla být knihovna pro C++, která by obsahovala funkce a třídy od kontejnerů až po herní framework, který bych použil na Sixteenii. Ano, se Sixteenií jsem vlastně ještě ani nezačal, protože jsem se zabýval tímhle. A kdybych pokračoval, ještě dlouho bych nezačal, protože udělat něco tak robustního chce spoustu času a mnoho přemýšlení a to je na jednoho amatérského programátora příliš. To je jeden z důvodů, proč je to blbost.

Další důvod, proč je to blbost, je ten, který se už objevil v komentářích u minulého článku - např. kontejnery - ty jsou již obsažené ve standardní knihovně a kompilátor s nimi dokáže pracovat mnohem optimalizovaněji, než když si někdo udělá vlastní (což je i můj případ) - tzn. že jsou rychlejší a hlavně podstatně dost šetří velikost výsledného exe souboru.

A poslední blbostí bylo to, že jsem si chtěl programování s využitím této knihovny co nejvíce ušetřit, a tak jsem hodně používal virtuální dědičnost a virtuální metody. Jenže ty mají poměrně velký vliv na výkon. Osudového dne 22. dubna jsem se rozhodl otestovat rychlost mé knihovny oproti .NET frameworku (v C# jsem dělal Lojzika a víte, jak je to pomalé...) a zjistil jsem, že C# je rychlejší. A ne zanedbatelně.

To mi konečně otevřelo oči, protože ačkoliv jsem o všech třech důvodech věděl (nebo tušil), tak jsem si je nechtěl přiznat. Ono není jednoduché jen tak zahodit práci, nad kterou jste strávili tolik času.

Ale jestli vám přijde, že ten čas, který jsem nad tím strávil, je ztracený, tak to vás musím přesvědčit o opaku! Sice mi ten vlastní kód, který jsem vytvořil (cca 20 tisíc řádků čistého kódu, ale kdybych počítal i to, co jsem během vývoje zahodil, tak by to mohlo být tak cca 100) nebude absolutně k ničemu, jeho psaní mě naučilo mnoho věcí:

  • Perfektně jsem se naučil C++. Kdybych při programování používal knihovny pouze pasivně, tak bych se ten jazyk nikdy takto dobře nenaučil. Zejména šablony.
  • Naučil jsem se o programování přemýšlet na trochu nižší úrovni - využití ukazatelů. Kdybych se vrhnul hned na Sixteenii, tak bych asi moc nevěděl, co s nimi... No ale také pravda, že mě toho dost naučila škola... (Ano, tady na vejšce mě už škola konečně i učí něco, co se mi bude opravdu hodit! Viz příští článek...)
  • Naučil jsem se hodně o dědičnosti tříd a musím říct, že díky tomu ji už dovedu využívat konečně naplno!
  • Zjistil jsem, že striktně objektované programování není ideální. Něco je lepší udělat jako metody, něco jako funkce (protože se funkce např. dají přetížit pro více objektů).
  • Je dobré dodržovat formáty jmen, které používá jazyk - u VickoLib jsem to nedělal, ale teď už budu, protože vidím, že je to lepší. Ovšem u některých jazyků to nelze, protože autoři jazyka sami nevědí, jaký formát používat (např. PHP).
  • Naučil jsem se zahazovat starý kód (a nakonec jsem zahodil všechno). Pokud je starý kód opravdu špatný, správný programátor by se ho neměl bát smazat, ať už nad ním strávil jakkoli dlouhou dobu. Pokud ho chce smazat, má k tomu pravděpodobně velmi dobrý důvod, protože proč by to jinak dělal - programátor je od přírody líné stvoření... (Líné proto, že si chce svoji práci co nejvíce ušetřit - a často tím šetří i čas počítače, ne proto, že by kašlal na práci a místo programování třeba pařil hry...) Každý kód, který nakonec programátor smaže, mu přinese nové zkušenosti, díky kterým se příště bude stejným chybám vyhýbat, protože se mu určitě nebude chtít znovu svoji práci zahazovat.
  • A to hlavní - že vytvářet vlastní knihovnu, když už nějaká kvalitní existuje, je prostě blbost, protože zřídkakdy se stane, že ta moje bude lepší... I když to na mě hlásali ze všech stran - škola, literatura, internet... Prostě člověk si někdy na tu plotnu musí sáhnout, aby zjistil, že je opravdu horká... To mi připomnělo jednu příhodu z dětství. Babička mi říkala, ať tam nelezu. Já jsem využil její chvilkové nepozornosti a vlezl jsem tam. Výsledek: spadl jsem do rybníka (a nestalo se to při koupání). Ale některé věci bych opravdu nikdy nezkusil - takové věci, ze kterých není návratu, a nebo je ten návrat velmi těžký - např. drogy - proč to zkoušet, když v tom můžu uvíznout?? Otázka, u které nechápu, jak si na ni ostatní mohou odpovědět...
  • A určitě mnoho dalších věcí, na které jsem si teď nevzpomněl, nebo jsem si je zatím ani neuvědomil.

A co dál?

Když tak nad tím přemýšlím, jsem jako bistabilní klopný obvod. Vždy jsem ve stabilním stavu - vím, co dělám a proč to dělám. Pokud se náhodou dostanu mimo stabilní stav, snažím se co nejdříve dostat do jiného stabilního stavu - stejně jako BKO. Takže když jsem se díky ukončení VickoLib dostal do zakázané oblasti (stav mezi stabilními stavy BKO), snažil jsem si hned vymyslet něco jiného, na co bych se mohl soustředit a tedy překlopit do stabilního stavu. Nerad jsem v situaci, kdy nevím, co dál, nebo pochybuju o tom, co dělám nebo proč to dělám. Např. SuperMartas je v zakázané oblasti už pěkně dlouho. Být na jeho místě, tak bych se už asi dávno zbláznil.

Kdo je ten Bohouš?

Odpověď na tuto otázku je velmi jednoduchá a vy na ni čekáte celý tento článek (pokud jste tedy text před nepřeskočili). Takže abych odpověděl... Bohouš je hraboš:

Hraboš Bohouš

Děkuji Lukáši Hörmannovi za grafiku. Původně to měl s více detaily, ale na moji žádost to zjednodušil, protože velikost hraboše ve hře bude 48x48 pixelů.

Ano, Hraboš Bohouš bude hra, kterou udělám, než vymyslím, v čem bych vlastně chtěl Sixteenii udělat. Sixteenii zatím odkládám, ale není to jako s Elfánií, kterou jsem odložil na neurčito (čti už se k tomu nevrátím), ale chci tomu dát jen trochu času, abych to mohl pořádně promyslet - takže podobně, jako s prvním Lojzikem. Zatím se zdá, že nejpravděpodobnější možnost je jazyk Python a nějaký herní engine, který ho podporuje, např. Panda3D. Ale zatím nejsem rozhodnut.

Bohouš bude částečně podobný Sixteenii, ale bude mnohem jednodušší a smysl hry bude vlastně úplně jiný. Udělám ho v pro mě již dost známém JavaScriptu a HTML 5, abych se nemusel zase učit něco nového a mohl jít rovnou na věc. A musím říct, že už jsem opravdu potřeboval programovat něco, co se hýbe.

Abych si pojistil, že Bohouše dokončím, hned druhý den po mém nápadu (no... hru tohoto typu jsem chtěl programovat už před Lojzikem, ale nakonec jsem se nechal přemluvit a začal rovnou Lojzika) objednal doménu Hraboš-Bohouš.cz, na které již brzy můžete očekávat nějaké demo. Tím jsem si dal jasně najevo, že to myslím vážně a udělám u této hry jednu věc, kterou jsem zatím u žádné hry neudělal - bude mít editor kol. A jelikož máme rok 2015, tak vlastní kola si budou moct hráči mezi sebou sdílet. V ideálním případě bych byl rád, aby veškeré kola tvořili pouze hráči. Bude to taková menší sociální síť, ale nebudou se sdílet žádné stupidní příspěvky na zdi, ale sady kol.

A o čem ta hra vlastně bude. Přiznám se hned a bez mučení - není to můj originální nápad, her tohoto typu existuje spousta: Boulder Dash, Supaplex, nebo třeba český Hafík. Myslím, že není potřeba dlouze psát, o čem to je, prostě si některou z těchto her zkuste zahrát a poznáte to sami. Samozřejmě mám několik vlastních nápadů, jak takovou hru oživit, nechte se překvapit.

Hodnocení

Celkové hodnocení
2 hlasy
Vaše hodnocení
Vyberte počet hvězdiček

Komentáře

Jméno:
Předmět:
Komentář:
  :):-|:P:D;):(8)[evil][arrow][idea][?][!]
Kontrola:

3.6.2015 22:33:02 Re: Verze 2.0

Jak už jsem mnohokrát psal, grafika byla pouze provizorní ;)

Víčko
1
0

3.6.2015 9:29:29 Verze 2.0

Verze 2.0,  podle mě hře příliš neseděla :) alespoň v tom grafickém zobrazení které bylo ukázáno v prvních snímcích ze hry :D

Anonym
0
0

3.6.2015 9:21:16 Re: Re: Grafik

Nová grafika by byla super, vlastně to byla (podle mě) jedna z mála slabin Elfánie

Anonym
1
0

10.5.2015 0:41:51 Re: Grafik

Aktualizace možná ano, ale v nové verzi (2.0) v nejbližší době neplánuji pokračovat.

Víčko
0
0

9.5.2015 10:23:34 Grafik

Takže další aktualizace elfánie už nikdy nebude?Klidně bych dělal grafika a měl bych spousta nápadů ;)

Petr
1
0
© 2011 - 2017 SuperMartas a Tomáš Hypeš