Toplist
*
ZY   O autorovi   Koně   Galerie   Časopis   Obchod 
<- ------- ->
*
 

Já a počítače

Programováním se bavím asi od svých deseti let. Začínal jsem jednoduchými prográmky v Basicu, ze kterého jsem následně přešel na C/C++. Postupně jsem přidal zkušenosti s programovacími jazyky Pascal, Objective-C, C#, Java, OPL, Assembler, Prolog, Lisp, VHDL, JavaScript, PHP, SQL, HTML, XML, CSS, ... a inženýrský titul z Fakulty informačních technologií VUT v Brně, kterou jsem opustil po jednom roce doktorského studia s vidinou slušné pracovní příležitosti.

Původní motivace pro programování byla touha psát vlastní hry, ale ty se brzo staly pro jednoho člověka příliš komplexní, a tak jsem se začal specializovat na 3D grafiku a simulaci. Kromě PC jsem dlouhou dobu nedal dopustit na dnes již stařičkého Psiona Series 5, kterého jsem uložil do skříně až po zakoupení telefonu E-Ten Glofiish M700. Nicméně cihla s Windows Mobile byla záhy vystřídána podstatně dotaženějším zařízením jménem Apple iPhone. Ten mě krom jiného nakopl zpět k tvorbě her a pokusu o serióznější aplikace.

|

Seznam programů

  • iPhone & iPad
    • War Pigeons - Svět ohrožují mutovaní váleční holubi!
    • Hellbreak - Akční akráda s prvky puzzle. Zvládnete utéct z pekla?
  • Windows
    • WES GPU - Water Erosion Simulation on GPU
    • WES CPU - Simulátor tekoucí vody v krajině
    • PAS - 3D grafická hříčka, simulující řeky a jezera
  • DOS
    • Linky - Střílečka pro dva hráče
  • Psion Series 5

War Pigeons

   

Druhá hra pro iOS s datem vydání 21. března 2013.

Hluboko dole v nejtajnějších armádních laboratořích se vyvíjeli, mutovali... a utekli. Osud světa závisí na Tobě! Inu, možná ne pouze na Tobě, ale třeba jsi zrovna Ty ten jeden malý bezvýznamný mravenec s velkým pytlem plným nechutně smrtících zbraní, který sehraje onu rozhodující roli?

  • Nesnášíš holuby... nebo jiný ptáky? Sejmi je všechny!
  • Na výběr máš mnoho různých zbraní. A laserovou puškou to rozhodně nekončí!
  • Explodující vejce a kamikaze nálety jsou jen začátek.
  • Sezbírej trofeje všech druhů těch mutovaných potvor!
  • Chceš příběh? Překonávat těžší a těžší výzvy? Nebo se víc cítíš na hipíka s kytkou? Je tam všechno!
  • A co je nejlepší? Můžeš hrát zdarma!

Technické údaje: Moje druhá iOS hra, postavená na stejném engine jako Hellbreak. Kromě zdokonalování všeho už napsaného přibyl například poměrně solidní skriptovací systém, který se postupně šíří i do novějších verzí Hellbreaku.

[ Homepage / iTunes ]


Hellbreak

     

Mezi lidmi kolují legendy o jedincích, kteří se vrátili ze samotného pekla. Jak ale jistě víš, takový útěk nebýva zrovna jednoduchý. Budeš zrovna Ty jednen z těch několika málo šťastlicvů?

Hellbreak je rychlá akční arkáda s prvky puzzle, která v průběhu zběsilých pokusů o úprk z pekelných plamenů prověří mnoho z Tvých dovedností. Různé dimenze pekla, překypující všemožnými démony a pastmi, vyžadují netradiční kombinaci pečlivého pozorování, plánování, rychlých reflexů... a možná i trochu toho štěstí.

  • Netradiční kombinace akční arkády a puzzle.
  • Tucty unikátních úrovní z mnoha pestrých prostředí.
  • Krátká básnička pro každý dungeon.
  • Dvě různé nekonečné varianty hry s náhodnými úrovněmi.
  • Originální grafika a soundtrack.
  • Jednoduché a intuitivní ovládání, výběr ze 4 různých možností (dotykové, akcelerometr, kombinace, virtuální joystick).
  • Gamecenter s mnoha achievementy.

Pár technických údajů: Moje první vydaná iOS hra. Používám vlastní engine, který je postavený na OpenGL, OpenAL a zapouzdřuje nativní funkce iOS do vlastních struktur, které usnadňují portování. Engine si navíc snadno poradí s různými rozlišeními obrazovky a nečiní mu problém je přepínat. Naprostá většina kódu je v C++, v Objective-C jsou převážně systémově orientované části pro iOS. Zároveň s touto hrou vznikl například také jednoduchý editor 2D animací.

[ Homepage / iTunes ]


WES GPU - Water Erosion Simulation on GPU

     
     
     

Přepracovaný a doplněny předešlý projekt do formy akcelerované na GPU, tentokrát v rámci inženýrského studia. Tento program mi vynesl cenu děkana za vynikajíci diplomovou práci.

Oproti předchozí verzi se zde prakticky vše odehrává na grafické kartě (GPU), která musí podporovat tehdy zcela nové OpenGL 3.0. Celý terén je reprezentován texturou v paměti GPU, která se pomocí výpočetních shaderů renderuje opět do paměti GPU, odkud je jinými shadery ihned zobrazena. Díky eliminaci veškerých přenosů dat mezi CPU a GPU a díky obrovské paralelní výpočetní síle grafické karty se podařilo na stejném stroji simulovat zhruba 500x rychleji oproti CPU a zobrazit 100x větší terén s mnohem více detaily.

Veškeré textury a tvary terénu, včetně trávy a oblohy, jsou generovány procedurálně. Program podporuje dynamicky osvětlovanou oblohu, globální stíny, automatické generování vegetace, procedurální dynamické texturování terénu, editování terénu i vody přímo za chodu simulace, postprocessing celého obrazu a mnoho dalších funkcí. Naprostá většina parametrů se dá jednoduše měnit posuvem slideru při běhu simulace, jak je vidět na přiloženém videu.

[ YouTube video ]


WES CPU - Simulátor tekoucí vody v krajině

   

Tento simulátor vznikl jako má bakalářská práce a následně dal základ i práci diplomové. Jedná se o kompletně přepracovaný dřívější projekt PAS. Zkratka WES je z Water Erosion Simulator, neboli Simulátor vodní eroze, nicméně eroze samotná nebyla součástí bakalářky a do CPU verze se nakonec ve finální a zcela funkční verzi nedostala. Erozi počítá až verze GPU.

Simulace pohybu vody probíhá na CPU zároveň se zobrazením přes OpenGL v reálném čase a celá scéna je díky vestavěnému editoru terénu vysoce interaktivní. Terén je možno kromě vlastnoručního vymodelování načíst například z obrázku nebo nechat vygenerovat některým z vestavěných algoritmů. 3D zobrazení využívá na tehdejší dobu nejmodernější techniky, jako například shadow mapping a shadery. Simulátor je řešen formou celulárního automatu, protože se vodní hladina počítá jako rastrovaná spojitá veličina, což umožňuje velmi dobře simulovat zejména různé vlny. Program je napsán ve Visual C++ pro operační systémy Windows.

Kromě spustitelné verze z bakalářské práce a pár videí je k dispozici i aktuálnější pracovní spustitelná verze, která sice umí víc věcí, nicméně něco ještě není plně dodělané. Jinak program obecně kalde na počítač vysoké nároky a zejména novější verze se vyznačují poměrně dlouhou dobou startování, která je dána procedurálním generováním textur.

[ Pracovní spustitelná verze / Stará, ale celkem odladěná verze ]
[ Video: Editace 1 / Editace 2 / Vlny / Tsunami / Obloha ]

PAS - Částicový simulátor vody

Předchůdce projektu WES vznikl v rámci předmětu Pokročilé assemblery, z čehož pochází i jeho zkratkový název. Rozhodl jsem se na tom dál pracovat a celý projekt byl nakonec jako bakalářka navržen a vytvořen úplně znovu úplně jinak.

Celé to pracuje na jednoduchém principu, kdy se jednotlivé částice padající z oblohy následně valí po terénu, aniž by detekovaly vzájemné kolize. Jelikož by se tak začaly v prohlubních nenávratně hromadit, jsou v každém dolíku připraveny speciální jezerní objekty, které tyto částice pohlcují a zvyšují tím svou hladinu. Při přetečení pak pouze přemisťují pohlcené částice do odtokového bodu. Přepadání přes okraj terénu vytváří vizuálně celkem pěkné vodopády a recykluje částice zpět do mraků. Program je napsaný ve Visual C++ pro operační systémy Windows, zobrazuje pomocí knihovny OpenGL. Vybrané výpočetně náročné části kódu jsou akcelerované pomocí assembleru a instrukcí SSE2.

[ Spustitelný program ] [ Video: Jedno trhavé video... ]

Linky

   

Hra určená pro dva hráče na jednom počítači. Na jedné obrazovce s náhodně generovanými překážkami se pokouší vzájemně povraždit pomocí odrážejících se střel a bomb, které tyto zdi boří. Pro zpestření se v bludišti vyskytuje také nebezpečná příšera a pajdulák stavící nové zdi. Cílem je zabít soupeře víckrát než on zabije vás.

Linky jsou jedna z mých prvních grafických her pro DOS a hlavně první, která se dá považovat za dokončenou. Napsané jsou v jednoduchém C++ v prostředí Borland. Pro kreslení grafiky ve VGA rozlišení používají knihovnu Fastgraph a pro přehrávání pár wavů a několika MIDI písniček různě získané, dopsané a upravené knihovny. Úplně první verze vznikla snad už kolem mých dvanácti let, nicméně o něco pozdeji jsem se k programu vrátil a trochu ho dodělal. V současné době se Linky dají bezproblémově spustit například v emulátoru DOSBox.

[ Spustitelný program ]

Hry pro Psion Series 5

Několik jednoduchých her pro Psion Series 5 napsaných v OPL. Instalace probíhá prostým kopírováním do adresáře System/Apps. Většinou je k dispozici česká i anglická verze. Piškvorky a Snake jsou zcela dodělané a funkční, nicméně port Atomixu zůstal jen v pokusné podobě.

[ Piškvorky CZ / Piškvorky EN / Snake CZ / Snake EN / Atomix ]


Další programy

Za tu dobu, co si hraji s programováním, se toho samozřejmě zrodilo podstatně víc. Nemám ovšem zrovna pocit, že by panovala nějak zvláštní poptávka po každém školním projektu, nebo testovacím prográmku. Možná tu ještě pár starších věcí někdy přibyde, ale možná také ne. Z těch zajímavějších by to mohly být třeba různé editory (textu, zvuku, grafiky, fontů, 2D animací, levelů), většinou nedotažené hry (Milouš versus Predartors, Milouš 3D, Linky 3D, Snipes 3D), nebo 3D simulace pružných objektů, detekce střihů ve videu a mnoho různých blbin. Nu, snad někdy...

 


Tyto smrtelně vážné stránky vytvořil a spravuje ZY, zástupce Aštara Šerana na zemi! Jestli nemáš rád sušenky, tak sem nelez!