30. července 2015

Sen oranžového pavouka

Díky článku na živě.cz jsem našel server http://deepdreamer.io/ a vyzkoušel ho na své fotce oranžového pavouka. Server se chová podobně jako některé filtry na detekci hran, jen s tím rozdílem, že výsledný obraz složí z obrazových dat své vlastní databáze. Pracuje podle toho, jak se mu části obrazu jevily podobné s jeho daty a to na principu označovaném jako neuronová síť. Výsledky vypadají pozoruhodně, protože lidské vnímání používá velmi podobný postup. Takže i když obrazy většinou kýčovitě hýří barvami a jsou trochu jako nějaká drogová halucinace, nejde od nich snadno odtrhnout oči. :-)

Moje vstupní fotka pavouka:













Za cca 24h by měla přijít hotová úprava mailem. Potom ji sem samozřejmě přidám taky. :-)

Vzhledem k tomu, že podstatný obsah na fotce je malý vzhledem k celkové velikosti fotky, bude mít algoritmus těžkou práci. Z malých detailů bude muset něco vykouzlit do celé plochy. Uvidíme. Jsem napnutý
jak malé trenky.

EDIT:  1.8.2015 - zjevně to trvá bůhvíjak dlouho, stále nic nepřišlo

EDIT:  3.8.2015 - asi nefunguje - stále nic nepřišlo!

EDIT: 5.8.2015   FINÁLKA - DNESKA TO DORAZILO S OMLUVOU ZA ZPOŽDĚNÍ
http://deepdreamer.io/insanity/BfSNVc1hqdg
















6.8. odeslány dva další obrázky ze zpracování
















 6.8.2015 Došlo zpracování ruky. Docela ujde. To liškoprase mě pobavilo.



29. července 2015

Animovaná kostka - Creative Commons BY

Dneska jsem vyrobil věc, která může být užitečná při tvorbě her, webových stránek, článků o nich a vůbec všelijak. Hod klasickou šestistěnnou kostkou může být simulován různě. Od hloupě vypadajícího čísla až po animaci rukou s třepáním kostek v kelímku. Viděl jsem pěkné i škaredé. Teď může každý mít alespoň středně slušnou animaci s 67 snímky pro každý typ hodu čili 1,2,3,4,5,6 plus jednu sadu prázdné kostky pro vlastní pokusy. Pixelová velikost je přibližně 100x100 plus mínus něco málo podle toho, jakou hranou se kostka otáčí. Každá animace je trochu jiná. Ořez je nastaven na dotek, takže spotřeba paměti ve hrách bude celkem rozumná. Doporučeno 60 FPS.

K dispozici je Gamemakerovský sprite ( kompatibilní s GM8 i GMS1.n ), dále PNG sheets a vzorové exe, kde lze animaci předem vidět.
( ovládá se SPACE nebo LMB )
 







Vše je pod názvem Dice samozřejmě zaparkováno v mojí CodeGarage jako obvykle.
Kompletní zip má cca 13MB. Náhledový exe něco přes 6MB.

Licence Creative Commons BY umožňuje šíření i použití zdarma jen za cenu uvedení autora. Při dodržení této licence může kostku používat kdokoli.

27. července 2015

GML: Výběr objektů tažením

GML: Výběr objektů tažením

Do své Code Garage jsem dnes přidal vzorek kódu, který když člověk skutečně potřebuje, nikdy se mu do toho nechce. Proto se tomu každý ve svých programech vyhýbá jako muslim psímu exkrementu. :-)
Jde o výběr objektů tažením. Ve Windows běžná součást GUI, v Game Makeru totál opruz.

Základem je jediný objekt pojmenovaný fádně drag_selector. V jeho Create Eventu se dá nastavit, který typ objektů se má vybírat. ( pokud jakýkoliv, tak se použije all ) a taky lze omezit funkčnosr tažení na určitou oblast. ( např. aby se nevybíraly součásti GUI ).

Features:
-všesměrové tažení
-omezení oblasti
-omezení objektu výběru
-změna kurzoru
-kreslení rámečku tažením
-realtime změny výběru ( pokud jde o velké počty objektů, doporučuji tuto funkci odmazat jako první )

Použití ve vlastních hrách by mělo být bez potíží i pro úplné začátečníky. Prostě zkopírujeme objekt drag_selector do svého projektu a v Create Eventu nastavíme typ objektu, který má vybírat.Objekty takto vybrané získají proměnnou selected ( true - vybráno, false -nevybráno ). Pak lze jakoukoli akci provádět pomocí if selected = = true { nějaká_činnost }.

Pro objekty v pohybu se vybírá ty, které jsou aktuálně v obdélníku. Tzn. po puštění myši zůstanou vybrány i když nejsou v oblasti. Lze si to zkusit v SelectionDragMotion.exe.







24. července 2015

Částicový Masakr II

 Částicový Masakr II




Dnes světlo světa spatřila verze 0_0_2 a lze ji samosebou najít opět
v =Code Garage =. Původní koncept byl zcela překopán ( jak jinak), ale zato přibyly nějaké ty fičury. :-)

 Největší změnu představuje rozhodnutí oddělit editaci typů částic od editace částicového systému. Myšlenka je taková, že se v ParticleDefinitionEditoru nastaví základní částice, ta se uloží. V ParticleSystemEditoru se pak tyto uložené částice používají pro různé triky, ale základní vzhled částice už se nebude měnit. Např: si připravím částici dešťové kapky a pak v druhém editoru budu nastavovat, jak má pršet.


Předchozí verze dala základ ParticleDefinitionEditoru a tak GUI vypadá skoro stejně jako dřív. Vlevo akorát přibylo ovládání pro secondary particles typ Step. Ty vznikají z jiných částic během každého update particle systému ( u mě reálně shodné s eventem Step ) a tak je potřeba dávat zatraceně pozor, co se tam strčí, aby to nezavařilo počítač. Fakticky bych nezapínal cokoliv, co má kladnou hodnotu Density.

Pozn: Záporná hodnota Density znamená, že se secondary particle vytvoří jen každý Density-ntý krok, zatímco kladná vytvoří Density-krát částici během jednoho kroku.

Secondary particles se rekrutují z uložených běžných částic. Tzn. vpravo nastavíte částici, uložíte a vlevo ji pak lze načíst jako secondary. Před aktivací doporučuji změnit Density na -120, pokud není. U některých částic se dá dát třeba -30, ale byl bych opatrný.

Abych rozchodil secondary particles, zprovoznil jsem Save/Load. Zatím je na stejných tlačítkách jako Quicksave, jen se shiftem. Patrně to rozhodím na sólo tlačítka. Díky změně konceptu zbylo místo. :-)


Hotové features

Standardní GMS:
- density, size, shape, speed, direction, gravity, orientation, color 1 až 3, alpha 1 až 3, color mix, life, blend,
secondary particle Step

Nestandardní:
-probability        // pravděpodobnost emise v procentech počítaná pro každý Step

Připravované features

Standardní GMS:
- sprite shape, secondary particle Death

Nestandardní:
-surface crop      //vykreslování přes surface
-mangekyou       //osové zrcadlení

GUI:
- animation export ( PNG set )
- samostatný editor na systém emisí částic

Zrušené features

-remember on startup
Důvod: Měl jsem to a zjistil jsem, že hrozí kolaps, pokud si člověk nastaví příliš mnoho částic a ony se při startu pořád načítají - nelze z toho snadno ven. Navíc se to snadno obejde pomocí Quicksave.



Brány neschopnosti

Brány neschopnosti.

Jsou to stavy vědomí, které brání člověku tvořit.

1.brána Spotřebitele - všeho je dost, tvořit není důvod
2.brána Velkých očí - chci tvořit, ale jen něco fakt velkéého
3.brána Rezignace - chci tvořit, jen dokud mám původní motivaci
4.brána Zhnusení - nechám toho, když vidím, co s tím lidi dělají
5.brána Odevzdání - nemusím pokračovat, už na tom dělají jiní
6.brána Spokojenosti - už je to dobré dost, už není třeba tvořit
7.brána Pesimismu - stejně to nemůže dopadnout dobře
8.brána Lakoty - to by stálo moc peněz, času, práce...

Čísla neudávají pořadí, je to čistý výčet. Možná existují další, na které jsem nepomyslel.


 ----------------------------------------------------------------------------
EDIT: přejmenována 6.brána
ze Slávy na Spokojenost, jelikož ne všechna spokojenost pramení ze slávy

EDIT 2: přidány brány 7. a 8.

22. července 2015

Částicový Masakr

 Částicový Masakr




 Včera jsem se pustil do tvorby editoru částicových efektů.
 Založil jsem ho na své vlastní částicové šabloně, kterou jsem vytvořil docela dávno a tak ji chci navíc trochu vylepšit.


Grafické editační rozhraní bude poměrně strohé ( nechci ztrácet čas hračičkováním s GUI ) postavené na jednom typu tlačítka, ale zato bude podporovat všechny nastavitelné vlastnosti částic, které Game Maker Studio umí a dokonce počítám přidat pár vlastností, které Game Maker Studio implicitně neumí. :D

Zatím mám hotov základní generátor se základními vlastnostmi. Chybí ještě blend, sprite shape a secondary particles. Přemýšlím nad způsobem ukládání a nejspíš se pokusím exportovat přímo gamemakerovský objekt.


Hotové features

Standardní GMS:
- density, size, shape, speed, direction, gravity, orientation, color 1 až 3, alpha 1 až 3, color mix, life

Nestandardní:
-probability        // pravděpodobnost emise v procentech počítaná pro každý Step

Připravované features

Standardní GMS:
- blend, sprite shape, secondary particles

Nestandardní:
-surface crop      //vykreslování přes surface
-mangekyou       //osové zrcadlení

GUI:
- save, load, remember on startup
- animation export ( PNG set )


verze 0.0.1 debug exe leží v Code garage a lze si na něm vyzkoušet základní efekty
= Code Garage =


21. července 2015

Proč vznikl blog Tvorba Her? 

                                                                                                    
Dnes, tedy v cimrmanovsky nezapamatovatelném datu 21.7.2015 14:15 byl založen tento blog mou maličkostí jistě z ryzí sobecké touhy vyplácat někam výplody svého ponurého mozku. Jedním z mých významných hobby je tvorba drobných her ( drobné jsou proto, že velké hry sám udělat nemůžu ) a to je všeobecně dost zajímavá činnost. Došel jsem proto logicky k závěru, že moje pocity, nálady, postupy, úspěchy, slepé uličky a plány mohou být přínosné i jiným lidem, které posedla podobná tvořivá síla. Minimálně to může pomoci neopakovat chyby, které jsem udělal já.
Pozn: převážně půjde o hry počítačové, protože se tvoří nejsnáze :-) 

Moje zkušenosti s počítačovými hrami v běhu dějin

Kdo by si nerad hrál? Ukažte mi takového člověka a já najdu hru, která ho dostane. Rozdíl je jen v tom, zda si to člověk připouští nebo nikoli. Hry znamenají zábavu a zábava je veskrze pozitivní pocit. Ale ať už chceme od života cokoli, hry nám to mohou virtuálně dát. Počítač do her přinesl novou dimenzi. Snadnější tvorbu, plošné šíření, početně masivní hraní a větší virtualizaci herních světů. Ale nestalo se to hned. Když jsem poprvé viděl počítač, žádné hry na něm nebyly. Jmenovalo se to IQ 151, mělo to jen černobílý režim zobrazení, vypadalo to jako malý tank, hřálo jako opékač topinek a co jste si na tom nenaprogramovali, to jste neměli, protože u toho nebyla žádná úložná jednotka.
Brzy na to jsem ale získal svůj první počítač Didaktik Gama a to už bylo docela jiné kafe. Byl sice ošklivý, hranatý, neměl vlastní monitor ( připojoval se k televizi ) a byl dílensky mizerně provedený, takže i při dobrém fyzickém zacházení neměl valnou výdrž, ale byly na něj HRY! magnetofonové kazety, které bylo možné celkem snadno kopírovat a tato praxe jistě položila základ budoucímu českému počítačovému pirátství. Vzhledem k tomu, že hry oficiální cestou prakticky nešly koupit, nikoho netrápilo něco jako svědomí a všichni hráli a kopírovali ostošest.


Šlo totiž o komunistickou kopii slavného počítače ZX Spectrum na které svět za železnou oponou vyráběl průmyslově mračna úžasných barevných, ozvučených a všelijak jinak atraktivních her. Ty se v tehdejším Československu šířily jako povodeň ospalým údolím, protože se ukádaly na tehdy běžné zvukové
Se záplavou 8bitových her přišla taky potřeba umět programovat. Nejprve nenápadně, vkládáním nekonečných životů a podobně, později čistě z přebytku tvořivé snahy. Ona je kreativita v podstatě takový vir pro lidský mozek. Když někdo vidí něco zábavného, krásného, úžasného, tak ho to inspiruje k pokusům o podobné dílo a tím se vir šíří. No, a u mě se rozšířil. Naučil jsem se jak programovací jazyk BASIC, tak osmibitový assembler ( česky hrozně pojmenovaný jako Jazyk Symbolických Adres - jde o lidsky čitelnou verzi strojového kódu ), což byl jazyk ve kterém se tehdy psaly profesionální počítačové hry. Bylo mi -náct a tak jsem samosebou nevytvořil nic moc objevného, ale zkusil jsem si pixelovou grafiku, tvorbu hudby pomocí frekvenční syntézy ( samplovaná hudba v té době existovala jen na výkonnějších počítačích Amiga ) a popsal všechny volné sešity komentovanými kusy kódu.
Technika nečekala a rostla rychleji než slimák v houbovém lese. Než jsem se naučil dělat hry na jednom počítači, byl už zastaralý a byl nahrazen výkonnějším. Přišla doba, kdy jsem hry jen hrál a jakákoli tvorba nepřicházela v úvahu. Měl jsem Amigu CD32 a to byla v podstatě jen herní konzole. Tuto dobu jsem využil k intenzivnímu hraní všeho, k čemu jsem se dostal. Pochytil jsem spoustu herních principů, byl jsem okouzlen.

Pak přišla doba klasických PC a já se mírným obloukem vrátil k programování. Oťukával jsem jazyk C, který měl značné možnosti. Jenže napsat hru v C ( bez # a bez ++ ) nebylo vůbec snadné. Pokud člověk nesehnal správnou knihovnu ( napsat vše vlastní, jak jsem byl zvyklý z Didaktiku, prakticky nešlo ) bylo téměř nemožné ovládnout v krátké době znalosti potřebné k psaní moderních her. Složitost výroby her totiž plynule rostla s technickou vyspělostí strojů na níž byly hry provozovány a bylo jen málo lidí, kteří by sami dokázali udělat hru od grafiky, přes programování až po ozvučení a distribuci. Tento problém koneckonců zůstává dodnes, ale naštěstí už pomalu svítá na lepší časy.
 Po dlouhé době, kdy jsem se věnoval výrobě televizních pořadů a s programováním jsem jen koketoval, jsem uviděl něco, co na první pohled změnilo můj svět tvorby her. Nástroj, který byl stvořen k jedinému účelu a který proto obsahuje vše potřebné. Něco, co se jinak muselo léta shromažďovat bylo tady k dispozici v jediném dokonalém souladu. Tak jsem poznal Game Maker. Byl tehdy tuším ve verzi 5 nebo tak něco.

Během krátké doby jsem se naučil s Game Makerem zacházet. Postupy byly shodné s klasickým programováním, jen místo linkování knihoven se prostě použila vestavěná funkce, která obvykle dělala rovnou to, co jsem od ní čekal. Málokdy bylo třeba vyvinout nějaký vlastní algoritmus a tak jsem se zabořil do herního vývoje oběma nohama. Sledoval jsem vývoj Game Makeru k verzi 8 a radoval se z vlny zájmu, kterou Game Maker způsobil po celém světě. Bohužel možnosti jeho tvůrce, vysokoškolského profesora Marka Overmarse byly dány jeho čistě akademickým zájmem o daný obor a bylo dlouhodobě neudržitelné, aby vedl těžký byznys s prodejem, vývojem a podporou Game Makeru sám.
Prodejem Game Makeru do rukou společnosti Yoyogames, lidí z pocházejících z game developerské branže, skončila slavná éra Game Makeru. Lidi z YYG neměli talent na obchod ani programování a pochybenými marketingovými pokusy a hrubou technickou nekvalitou nového Game Makeru Studio pohřbili nejen slávu původního Game Makeru, ale také rozbili komunitu uživatelů. Z kvalitního inovativního tvůrčího nástroje se vrátili k zastaralému způsobu programování, který zjevně sami považují za špičkový. Velké sny o multiplatformní tvorbě se de facto neuskutečnily. Vzniklo sice množství drahých a všelijak zabugovaných pluginů, které běžný smrtelník ani nedokáže použít, ale myšlenka "jednoho kódu pro všechny platformy a exportu kliknutím na tlačítko" naráží na tolik ALE, že je sporná sama o sobě. Celkem to lze shrnout tak některé nápady YYG byly dobré, ale po čertech byly špatně realizovány.
Současnost je velice nejistá, protože po prodeji Game Makeru společnosti Playtech ( zaměření na sázky a hazardní hry ) není jasné, kam se vývoj bude ubírat a jestli vůbec. Proletěly éterem informace o možném vzniku Game Maker Studio 2 a aktuální web Game Makeru je plný slev a pokusů o vytěžení stávajícího obchodního modelu. Lze tedy očekávat značné změny.

http://www.yoyogames.com/

Každopádně i ve špatném vývojovém prostředí lze napsat dobrou hru. Takže jakožto vlastník starého Game Makeru 8 i novějšího Game Maker Studio Professional jsem vymyslel spoustu nápadů na hry, objevil spoustu postupů usnadňujících jejich tvorbu a konečně jsem i sem tam nějakou zajímavou hříčku kompletně dokončil. Všechno, co jsem kdy naprogramoval je vždy zadarmo a některé věci jsou vyslověně open source. Některé jsem ledaskde publikoval, některé prostě hrály moje děti a některé skončily v pomyslném šuplíku. Na tomto blogu budu publikovat jednak nové plány, ale také se občas budu vracet a komentovat starší kousky třeba i s částečnou reinkarnací dřívějších projektů. Jinak lze najít hromadu mých aktuálních rozpracovaných i hotových projektů v mojí Code Garage ( prostě skladiště v lepším obleku ).

Taky chci udělat komentované odkaziště na moje hry rozeseté všemožně po nekonečném webovém prostoru.