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.
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í:
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.
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š:
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.
Jak už jsem mnohokrát psal, grafika byla pouze provizorní
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
Nová grafika by byla super, vlastně to byla (podle mě) jedna z mála slabin Elfánie
Aktualizace možná ano, ale v nové verzi (2.0) v nejbližší době neplánuji pokračovat.