22. listopadu 2015

Funny Physics

Tato drobná aplikace je vlastně taková hra-nehra. Stavíte kostičky a poléváte je barvou. Nemá to žádný smysl ani cíl. Jen je to hrozně legrační. Když jsem to naprogramoval, tak jsem si s tím ještě celé hodiny hrál a bavilo mě to. Moje děti se kolem mě tlačily a braly mi z ruky myš, že si to chtějí taky zkusit.

Tak si myslím, že to stojí za FREE DOWNLOAD.




Ovládání:

SPACE: nalít barvy

LMB na nádrže: změnit barvu
RMB na nádrže: povolit/zakázat

LMB kdekoli na plochu: postavit kostky
RMB na kostku: zničit ji

klávesa 'R': restart


CTRL+LMB: udělat trvalou kostku

klávesa DELETE: zničit všechny kostky, které nejsou trvalé

SHIFT+LMB na kostku: přidat do výběru pohyblivých kostek
ALT+LMB na kostku: odebrat z výběru pohyblivých kostek

kurzorové klávesy: pohyb výběru pohyblivých kostek

prostřední myš ( na některých myších kolečko ): změnit trvalou kostku na vypouštěcí kostku

RMB na vypouštěcí kostku: zničit ji


----------------------------------------------------------------------------------------------------------















20. listopadu 2015

Showroom

Showroom




 > DOWNLOAD SHOWROOM <




Spustitelná přehlídka částicových efektů vytvořených pomocí Particle type editoru umožňující vybraný efekt stáhnout a použít v Game Makeru Studio.

Užijte si ukázky efektů ( procházet můžete ručně nebo si zapněte autoplay a prostě se dívejte ), vyberte si pěkný efekt a kliknutím vpravo na obdélník "download link" se otevře v prohlížeči odkaz na soubor s efektem. Jde vždy o zip obsahující několik souborů. Soubor .ini se dá nahrát do PTE a editovat, pokud chceme efekt nějak změnit, ale pro použití efektu samého není editor nutný.

Pokud chceme efekt použít v Game Makeru do svého projektu, tak se prostě všechny soubory ze zipu odtahají do okna GMS ( dělejte to po jednom ) a tím se přidají do resources ( měly by přiskákat do složek v levé části okna GMS ). Pokud se Game Maker u něčeho zeptá, ukládejte vždy jako Include File soubory .ini a .png. Soubor s koncovkou .gml je sada skriptů ( je nutná k běhu efektů, ale stačí ji mít jen jednou i přesto, že je přibalena ke každému efektu ) a soubor s koncovkou .gmx je gamemakerovský objekt. Objekt pak stačí vložit do místnosti (room) a tím je vše prakticky hotovo. Nativně běhá efekt za myší, takže pokud chceme aby zůstal v místnosti tam, kde leží, tak je třeba v Create eventu nastavit proměnnou follow_mouse=false ( najdete ji v bloku označeném jako mouse motion ). Soubory ini jsou lidsky čitelné a lze je v Include Files poklikáním otevřít a ručně změnit. Efekt se pak změní také.

POZOR! Některé efekty v přehlídce nebudou vypadat po stažení na první pohled stejně. Je to proto, že některé triky byly vytvořeny poskládáním více efektů přes sebe ( např. fountain ) a některé se pohybují specifickým způsobem ( např. short explosion ), což mění jejich výsledný vzhled. Vždy ale platí, že ke stažení je dostupný právě ten efekt, ze kterého byla přehlídka vytvořena. 

Efekt MulticolorPapers obsahuje tzv. secondary particles, takže pro editaci v PTE je potřeba trochu si PTE vyzkoušet a pochopit, jak se secondary particles ovládají.
Efekt Hemoglobin je sprite_particle a tak pro editaci vždy kopírujte do stejného adreáře i animovaný 14ti snímkový png: animated_particle_strip14.png, který je v zipu přiložen.




Particle Type Editor 1.2

Particle Type Editor 1.2


Tak konečně je to tady. Editor definicí částic pro Game Maker je hotový a funkční. Je to na jednoho člověka obří program, tak asi nějaké bugy obsahovat nutně bude, ale doufám, že snad ne nijak fatální. Koneckonců už jsem v něm vyrobil dost pěkných částicových efektů, takže vím, že se to dá používat.


Něco málo o částicových efektech obecně

Dneska jsou částicové efekty ( částice je anglicky "particle" ) nedílnou součástí skoro všech her a občas se dostanou i do jiného software. Jde o princip vytváření dynamických grafických prvků. Typicky všemožné záře, ohňostroje, třpytky, záblesky nebo třeba tekoucí voda se často vytvářejí pomocí částic. Myšlenka částicových efektů je v tom, že neprogramujete chování jedné každé částice, ale nastavíte jen mezní hodnoty jejich chování. Řeknete, že hejno bílých teček v počtu od 100 do 200 má poletovat rychlostí nejméně tolik a nejvíce tolik. Neřešíte chování jedné tečky. Výsledek je pak pro počítač velmi efektivní a můžete si dovolit vykreslovat desetkrát i možná i stokrát víc prvků než použitím GM objektů. Nevýhodou je, že například nemůžete snadno ověřit, jestli hráč na jednu z částic nekliknul, protože částice tuto kontrolu nemají.

O Particle type editoru

Při tvorbě PTE jsem vycházel ze způsobu, jakým se nativně v Game Makeru ( GMS verze 1.4 ) částice programují. Takže, když se naučíte používat tento editor, vlastně tím budete zároveň umět i programovat částice přímo v GML, protože názvy jednotlivých parametrů se prakticky shodují. Editor jen umožňuje lepší přehled o nastavených hodnotách a rovnou ukazuje, co se stane a částečně napovídá, jaké hodnoty kam zadat.

Co v editoru je a co není

Všechny nefyzikální částicové efekty používají jako základ definici jedné částice. Ve skutečnosti ale nejde o jednu částici jako takovou, ale o jeden typ částic. Samotných částic pak mohou být klidně stovky z tohoto jednoho typu. Neznamená to však, že by všechny částice jednoho typu byly stejné. Například pokud definujeme "modrobílou částici" jako všechny částice v odstínech od sytě modré do namodralé bílé, bude to jeden typ a přitom spousta částic ve všech možných odtínech mezi těmi dvěma barvami. PTE umožňuje vytvořit právě definici typu částic.
Aby částice byly vidět, je třeba s nimi udělat tzv. emisi ( prostě je odněkud na obrazovce sypat ) a to editor neřeší. Pro snadné vytváření jednoduchých emisí částic je k dispozici gamemakerovský objekt ( editor ho při exportu vyrobí ) a ten pouhým zkopírováním do vaší hry potřebné emise zajistí. To vám ovšem nebrání si naprogramovat vlastní způsob emisí částic. Další věc, co editor neřeší je fyzika částic. Tzv. soft body particles mají zcela jinou logiku vytváření a počítám s tím, že se jim budu věnovat samostatně. Takže bublina s tekutinou uvnitř reagující na zatřepání šplouchnutím se v tomto editoru nekoná. Nicméně většina běžných efektů je bez fyziky a na ty se editor perfektně hodí ( navíc běžné GM kolize a objektová fyzika s celým efektem možné jsou ).
( Pozn. jediný parametr nefyzikálních částic, který v editoru chybí obdoba GM funkcí part_type_colour_hsv a part_type_colour_rgb, které dělají částice s uzamčenou barevnou složkou. Například částice s konstatní hodnotou saturace a proměnlivým odstínem. Vzhledem k tomu, že způsob obarvení mix a blend je používanější, nechal jsem tyto dvě funkce stranou a teoreticky se mohou objevit v případných dalších verzích PTE. )
Editor neexportuje videa ani obrázky částic, protože takové funkce se editace netýkají a brzdily by vykreslování částic. Pokud bude zájem, můžu napsat nějaký jednoduchý rekordér pro převod efektu na sadu png ( včetně alfa kanálu ).

Jak editor použít

Princip použití je extrémně jednoduchý. V editoru si naklikám efekt, který se mi líbí. Kliknu na tlačítko Export. Soubory, které Export vytvoří, natahám drag&drop do Game Makeru, přímo do projektu s nějakou svou hrou. Ve GM resource složce Objects tím přibude objekt s názvem podle názvu částice. Když objekt umístíte do místnosti (room), tak ve hře generuje daný efekt. V základní podobě se efekt pohybuje spolu s kurzorem myši. Pokud toto chování nechcete, stačí v objektu přepnout proměnnou follow_mouse na hodnotu false ( najdete ji v Create, v kódu s názvem mouse motion ). Pak bude efekt následovat polohu objektu samotného. Když tedy budete chtít aby efekt například připlul zleva doprava, stačí v objektu nastavit hspeed=1 a stane se. Tím, že je efekt vázaný na objekt, jde s ním dělat všechny triky, co jdou dělat s objektem. Pokud chcete efekt klikatelný, dejte mu průhledný sprite a do eventu Draw přidejte funkci draw_self().

Systémové požadavky, download a licence

Licence:
Program Particle Type Editor (PTE) je pod licencí CreativeCommons, konkrétně CC-BY 3.0 CZ. To stručně řečeno znamená, že se program smí šířit a upravovat s podmínkou uvedení autora ( code: TomBen, gui graphics: TomBen & Likandro ), země původu ( CZ ) a s uvedením případných vlastních úprav původního programu. Efekty vytvořené v programu ( soubory .ini ) jsou vaše a jste jejich autoři. Kód exportovaného objektu je ale součástí programu PTE a tudíž také pod licencí CC-BY.

Požadavky:
Ke spuštění editoru v předpřipravené spustitelné podobě, potřebujete OS Windows ( testováno na Win7 ) a jelikož zdrojový kód GML obsahuje některé win-only funkce, pro úspěšnou portaci je třeba víc než jen vlastnit exportní plugin. Výkonnostně by neměl být problém s libovolným PC vyrobeným po roce 2005 ( čili deset let starý ) a omezení bude vidět jen na množství částic, které se podle výkonu počítače mění. Viděl bych to jednoduše tak, že na čem rozjedete Game Maker Studio, na tom PTE pojede taky. K uplatnění efektu ve hrách budete potřebovat Game Maker Studio Proffesional nebo Master. Teoreticky lze asi rozjet vytvořené efekty i na verzi Standard ( zdarma ), ale není to ověřeno.


Download:

Spustitelný portable .exe pro Windows:  STÁHNOUT
Zdrojový kód .gmz pro GameMakerStudio 1.4.( vytvořeno na 1657 r40001 ) : STÁHNOUT
Obojí v zipu:  STÁHNOUT


15. listopadu 2015

Solitér

Solitér



Solitér je hra pro jednoho hráče a tento solitér je jeden z nejznámějších a nejstarších vůbec. Letitost mu ovšem nijak neubírá na popularitě. Úkolem je přemístit černé na místa bílých a naopak. Posouvá se jen vodorovně nebo svisle. Vždy jen na prázdné pole. Buď na sousední pole nebo lze přeskočit jednu figurku. Prázdné pole přeskočit nelze.

 Zpracoval jsem to v Game Makeru Studio 1.4.1657 a na svobodném fóru je k nahlédnutí jeho zdrojový kód s mým komentářem. Zde je k dispozici spustitelná verze pro Windows ( testováno  na sedmičkách ) ...  > EXE ke stažení < .

Edit 17.11.2015: na svobodném fóru byl přidán odkaz na Android apk, takže lze i na telefonu
Edit 9.5.2016: svobodné fórum zašlo na úbytě, tak jsou odkazy nefunkční. Máte-li zájem o Android verzi
nebo máte nějaké dotazy na zdrojový kód, napište si sem do komentáře pod článek.


13. listopadu 2015

Messenger (GML)

Messenger (GML)

Dneska jsem při nějaké své práci vyrobil další věc, která si zasloužila uložení do Code Garage tady: ( přímý link na složku Messenger ). Jde o jednoduchý a extrémně účinný systém oznamování zpráv uvnitř hry. Občas je totiž třeba, aby hra uprostřed svých jiných akcí zastavila všechny činnosti, ohlásila hráči nějakou událost a teprve po odklepnutí - potvrzení hráčem vše pokračovalo tam, kde to skončilo.

Moje řešení obsahuje 1 objekt a 1 skript ( objekt používá k vypisování skripty set_font ( vlastní ) a clr (inspired by LoF), které najdete v sadě Essentials verze3, ale lze je snadno nahradit, protože jen nastavují font a barvu. Celé to funguje tak, že z kteréhokoli vlastního objektu spustíte skript message, všechny objekty zastaví práci, aktuální obraz zůstane v podkladu a přes něj se zobrazí poloprůhledný rámek se zprávou. Po odkliknutí zpráva zmizí a hra běží dál.

Jednoduchá ukázka je přiložena a z ní je myslím vše jasné. Počítá se s tím, že si v objektu messenger každý nastaví vzhled okna zprávy podle svého ( normálně v eventu Draw ) a tak je to ponecháno hodně minimalistické.


10. listopadu 2015

Záložky

Záložky

Třeba se bude někomu hodit game makerovský objekt vykreslující záložkové přepínatelné okno.














Klikání levou myší na ušátka záložek přepíná obsah v okně. Projekt obsahuje dva objekty. Objekt vykreslující záložkové okno a objekt obsahu. Záložkové okno se v Create Eventu nastauje, v Draw vykresluje a v eventu globální myši zajištuje přepínání záložek. Proměnná vybrano pak obsahuje číslo záložky, která je zvolena myší. Obsahový objekt si na začátku zapamatuje svoji polohu vzhledem k záložkovému oknu a podle vybrané záložky mění vlastní obsah. Lze mít samozřejmě i víc záložkových oken a v obsahových objektech pomocí proměnné link určit id okna, ke kterému patří.

>DOWNLOAD z Code Garage<


5. listopadu 2015

Vícerozměrná pole v Game Makeru

Game Maker v nynější verzi (1.4.1629) nepodporuje větší počet rozměrů než dva. Napsal jsem si proto základní skripty umožňující s vícerozměrnými poli pracovat. >DOWNLOAD SADY SKRIPTŮ<

///array_create(array,value,D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12);
tento skript naplní pole ( maximálně 12 rozměrů ) hodnotou value
array je název pole a to je potřeba inicializovat,
např.:
 A[0]=0;  //inicializace
array_create(A,'@',10,10); //pole A se naplní 10 krát 10 zavináči

Pozn: ve skutečnosti nejde o vytvoření vícerozměrného pole, ale o jeho převod na jednorozměrné pole. Čili například u dvourozměrů leží obsah jednotlivých řádků za sebou. V indexu [0] je uložen string obsahující informaci o počtu rozměrů a jejich velikosti. Jde o čísla převedená na string, spojená do jednoho a odsazená čárkou. Například u čtyřrozměrného pole 8x8x8x8 tam bude '8,8,8,8'.

///array_get_dimensions(array);
když je potřeba zjistit počet rozměrů uložených do pole vzniklého pomocí array_create, stačí zavolat tento skript a on vrátí potřebnou hodnotu jako číslo.

///array_dimension_size(array,dimension 1..N);
tento skript vrací velikost pole v daném rozměru.
Pokud tedy například máme pětirozměrné pole A o velikostech 3x2x5x1x8, pak:
array_dimension_size(A,5) == 8

///array_whereis(array,D1,D2,D3...);
pokud je někdy potřeba zjistit, kde ve skutečném jednorozměrném poli leží nějaký index, skript array_whereis to dokáže zjistit. Je dobré si uvědomit, že array_whereis(array,0,0,0...samé nuly) dává vždy 1, protože na nultém indexu je uložena informace o velikosti pole. Pokud ovšem používáme následující skripty pro čtení a zápis, není skript array_whereis vůbec potřeba znát.

///array_read(array,D1,D2,D3...);
tento skript jednoduše vrací hodnotu z pole podle daných indexů. Pokud je index mimo pole, objeví se error hláška "Array out of bounds." Indexy startují od nuly.

///array_write(array,value,D1,D2,D3...);
tento skript zapisuje hodnotu value do pole na patřičné umístění. Pokud je index mimo pole, objeví se error hláška "Array out of bounds." Indexy startují od nuly. Skript vrací minulou hodnotu, která byla v poli před přepsáním. Tato vlastnost se hodí například při výměně obsahů dvou míst v poli.

Příklad použití včetně zdrojového kódu si lze stáhnout zde: >DOWNLOAD UKÁZKY<
Jde o třírozměrné pole 5x5x5 s uloženými barvami. V poli se lze pohybovat klávesami a barvy měnit.





25. října 2015

Vektorové písmo v Game Maker Studiu

Vektorové písmo v Game Maker Studiu


Dneska jsem si hrál s písmy v GMS. Jak asi většina lidí ví, písma ( fonty ) mohou být vektorová nebo rastrová. Rastrová jsou uložena po obrazových bodech ( pixelech ) jako běžné obrázky. Vektorová písma mají zaznamenány souřadnice čar, kterými se písmena nakreslí.


Rastr

Vektor

Obojí způsob má své výhody a nevýhody, ale světu písma dominuje v současnosti vektorový záznam ( např. díky Windows stále oblíbené TTF - TrueType ), Proto je poněkud divné, že Game Maker Studio narozdíl od svého předchůdce GM8 používá rastrový záznam a to i tehdy, když zdrojem písma v operačním systému je vektorový font. GMS prostě ( nebo možná sprostě ) vykreslí písmena v dané velikosti do rastrové textury a ty pak používá. Výsledkem je obrovská spotřeba paměti a nutnost ukládat různá rozlišení písem zvlášť. Přepočítání velikosti ( škálování ) je u rastrových písem dost vidět. Především pokud jde o zvětšování. Kdyby písmo zůstalo vektorové, zabíralo by minimum paměti a nebyl by problém ho vykreslit hladce v téměř jakémkoli rozlišení. Ale frajeři u Yoyogames asi usoudili, že uživatelé GMS stejně nic nepoznají a rastr se jim lépe programoval. Tak jaképak copak.

Při honbě za fičurami se nějak seběhlo, že byla do GMS začleněna částečná podpora pro formát SWF, což je formát vektorový a tak mě zajímalo, jak to vlastně bude vypadat, když do GMS nahraji nějaké to SWF. Nahrává se to do sprite editoru jako otevřít sprite. První, co člověk zjistí, je fakt, že většina někde stažených SWF souborů skončí errorem, vypadá jinak než má nebo prostě není vůbec vidět. Je opravdu vzácnost, když nějaké náhodné swf vypadá správně. Já jsem se zajímal o písma a tak jsem přišel na způsob, který alespoň trochu dává výsledky.

V balíčku SWFTools lze najít spustitelný soubor swfc.exe, který je třeba spouštět z příkazové řádky ( run - cmd ). Jako parametr se uvede textový soubor obsahující příkazy pro vytvoření swf. Jednoduché příklady jsou ZDE. Takto vzniklý soubor SWF lze načíst v Game Makeru Studio, pokud neobsahuje nějaké efekty. Čisté písmo se mi načíst podařilo. Sprite editor ho neumí editovat, neumí ho ani pořádně zobrazit, ale v hrách to částečně použít jde. Pokud člověk touží po písmenech přes celou obrazovku v rozlišení full HD nebo větší, tak asi stejně nic moc jiného nezbývá. Naopak při malých velikostech písma dával Game Maker překvapivě špatné výsledky. Vykreslování se odbývá funkcemi rodiny draw_sprite a není nijak závratně rychlé.

Výsledky pokusů s SWF písmem jsou k vidění v Code Garage. Soubory Text.exe a BigText.exe pracují s vektorovým SWF, TextClassic.exe to řeší normálním fontem v resource Fonts. Je třeba poznamenat, že zatímco u Classic je velikost na pokraji možností, importované SWF mělo pořád ještě velikostní rezervu. Je ovšem jasné, že jen málo aplikací či her bude nutně potřebovat tak zvětšené písmo.

3.11.2015 Opraven link. Teď už tam fakt ukazuje. :-)

20. října 2015

Draci na niti

Draci na niti


Dneska celkem náhodou při nějakých pokusech s úplně jinou záležitostí vznikl specifický způsob pohybu článkových řetězů, až jsem neodolal a udělal z toho exe v GM8. Cílem je provést kuličku ( pomocí WASD ) k zelenému terčíku ( přibližně na jeho střed ).

>DOWNLOAD<

16. října 2015

Programátorská pohádka v GML

Uvědomil jsem si, že známá Pohádka byla přeložena do většiny programovacích jazyků, ale její verzi v GML ( Game Maker Language ) jsem nikde nenašel. Tak jsem vyvinul trochu snahy a tuto mezeru doplnil. :-)

 

Surface v GML

Kreslení do surface v Game Makeru

( překlad anglického slova "surface" /m.č. surfaces/ do češtiny je "povrch" )

Pod pojmem povrch si každý asi představí něco jiného, tak bych se spíš držel anglického slova surface, které používá Game Maker. Jde o kousky dočasné paměti, do které lze v GM ukládat obrazové informace. Lze si to představit jako malá okna, do kterých jde něco vykreslit a ony si to pak pamatují.

Příklad použití surface:

Řekněme, že chci vykreslit během hry obrázek slunce vykreslováním jednotlivých paprsků pomocí funkcí draw_line a draw_circle. Fajn. Udělám něco okolo stovky paprsků a vypadá to celkem dobře - Game Maker to stíhá i rozumně vykreslit.

Jenže co když budu chtít takových sluncí víc ( ve hře třeba bude hráč sbírat sluníčka :-) )?
Z ukázky je vidět, že už tři slunce srazí FPS ( počet snímků za vteřinu ) celkem výrazně:



FPS ze tří tisíc možných kleslo na 163!
A to mám v malém okně pouhé tři objekty a nějaké to vypisování!

Pomocí surface je to zatraceně velký rozdíl!
Když si slunce ovšem vykreslím nejprve do surface, můžu ho ve hře mít spoustukrát a prakticky žádný výkon to nesežere.

Screenshot z ukázky to dokládá:

















Je vidět, že takto bych v pohodě měl mnoho sluncí a ještě by výkon zbyl.
>DOWNLOAD UKÁZKY< 

Vzhledem k tomu, že ve spolupráci s LoF vyvíjím editor, v němž půjde myší navrhnout rozmístění surfaces po ploše, objeví se zde brzy i článek, jak to dopadlo. Měly by tím jít snadno udělat zajímavé efekty. Těšte se!




10. října 2015

Jsem z5!

Jsem zpět! :-)


Včera jsem se vrátil ze špitálu, kde mě rozřezali tak, že se z toho budu ještě dlouho regenerovat ( asi bych potřeboval trochu trolí krve, aby to šlo rychleji ). Ale protože všechno zlé je k něčemu dobré, mám pár pozoruhodných postřehů z daného prostředí. Jeden z těch postřehů má vztah i k tvorbě her a tak se tady s ním hezky uplatním. Je zajímavé jak jsou věci zároveň v rovnováze a zároveň pestré. Synergie jako vyšitá.

Všiml jsem si, že zdravotnictví funguje velice podobně jako armáda. Vlastní uniformy, přísně hierarchický systém řízení, výjimky ze zákonů, vlastní terminologie, uzavřené a nebo pro nezasvěcené málo přístupné objekty, vysoká společenská priorita a z toho plynoucí prestiž, pokročilá technika, svěřepě dodržované postupy. Z hlediska her by bylo možná atraktivní, předělat nějakou vojenskou strategii na zdravotnickou strategii víceméně 1:1. Místo boje by byl boj s chorobami. Budovy by produkovaly lidi, služby, výzkum atd. Ideální by byl koncept z UFO:ENEMY UNKNOWN. Základny by nahradil zdravotnický komplex, ten by se plnil budovami, přísun peněz by byl podle úspěchů a ekonomiku by doplňovaly nějaké akční mise. Například likvidace epidemie ( léčení a hledání zdroje nákazy ), záchrana života v nebezpečném prostředí, složitá operace významné osoby, atd. Úplně to vidím před sebou. :-) Je možné, že něco takového už existuje a já o tom nevím. Hry jako Theme Hospital mě vždy nechávaly chladným. Přesto myslím, že modelovat celé zdravotnictví podobným způsobem jako válečnou mašinerii, by mohl být zajímavý přístup k věci.

No, ale teď mám dost co dělat, tak ten nápad asi nechám u ledu.




25. září 2015

Object Inspector

Object Inspector

Dnes jsem vyrobil gmx objekt ( pro Game Maker Studio, testováno na verzi 1.4.1657 ), který dokáže sledovat stav jiných objektů a tak se výborně hodí k ladění. Jeho použití je jednoduché. Tažením se hodí do Game Makeru ( tím se přidá k projektu ) a pak se vloží do místnosti ( room ).

















NEPOTŘEBUJE FONT ANI SPRITE, VYSTAČÍ SI SÁM!
KRESLÍ SE DO GUI VRSTVY, NEVADÍ MU VIEWS!
VZHLED A VELIKOST LZE SNADNO MĚNIT.

Je jedno, kam se v místnosti položí. Při spuštění vždy zaujme místo vlevo nahoře. Pak jej lze pravou myší za horní lištu odtáhnout kamkoli. Levá myš na lištu minimalizuje nebo z minima vrací. Inspector je nastaven je persistent, takže stačí ho položit do první místnosti v laděné hře.

Pokud se jich do místnosti položí víc, spustí se jen jeden. Tato vlastnost je v Create označena jako "make singleton" a lze ji vypnout, pokud se zároveň zajistí různá poloha v ikoně o jednu níže. Taková úprava vyžaduje znalost GML a běžně by to nemělo být potřeba.

Pod lištou je ovládací panel. První tři tlačítka mění výběr sledovaného objektu. První "M" nechá sledovat objekt, který je polohou (x,y) nejblíž myši. Pokud je "M" vypnuté, lze šipkami '<' a '>' proklikávat z jednoho objektu na druhý. Nelze vidět jen deaktivované instance. Čtvrté tlačítko udělá nad všemi objekty krátce hvězdičku. To se hodí pro nalezení objektů bez sprite nebo s visible=false. Poslední tlačítko 'X' zruší objekt inspector. Klávesa TAB přepíná viditelnost celého object inspectora. Levý CTRL+ levý ALT + poslední tlačítko panelu 'X' vypne laděnou hru ( funkce - game_end() ).

Vlastní funkce lze snadno dopsat do User Eventů. Kde první tlačítko je Event1, druhé Event2 atd.

Neměl by vzniknout žádný problém na libovolné platformě, ale když bude nalezen, tak uvítám podrobný popis problému a situace při níž vznikl.

Ke stažení je zdarma ( CC-BY ) v Code Garage, přesněji > ZDE <.





24. září 2015

První aplikace pro Android

První aplikace pro Android


Podařilo se mi zprovoznit Android modul do Game Makeru a okolo půlnoci ze včerejška na dnešek jsem vytvořil svou první vlastní Androidí aplikaci. Nedělá sice skoro nic, ale taky nedělá potíže. A to je co říct.

Android modul jsem koupil v balíčku Humble Bundle za desetinu jeho ceny a to ještě spolu s licencí na GMS:Pro a několika herními tituly vyrobenými v Game Makeru včetně jejich zdrojových kódů. V balíčku byla také sada YoYo:RPG, která se na marketplace prodává za 19.90$. Tomu prostě nejde odolat.

Nákup je ovšem jedna věc a použití druhá. V první řadě nebylo snadné si zakoupenou licenci vůbec uplatnit. Funguje to totiž tak, že Humble Bundle pošle mailem kód, který po přihlášení na Yoyogames account lze po ověření přetvořit na licenci, kterou pak může uživatel přihlásit k zakoupené verzi GMS:Pro. Drobná potíž byla v tom, že přílišný zájem shodil u YYG server a licenci nějakou dobu uplatnit nešlo. Takže jsem po nákupu musel počkat, až jim to pojede.

Další fór je instalace software a hardware potřebného k vytváření Androidí aplikace. Je nutné mít připojeno jedno Androidí zařízení, nejlépe po USB ( prý to jde i po WiFi, když je s GMS na stejné síti ). To sice nezní tak hrozně, protože telefon s Androidem má skoro každý a kus USB drátu se vždycky najde, ale to bohužel není všechno. Na straně GMS to prošlo celkem hladce. Stačilo online update licencí pomocí YYG účtu. Prostě se GMS přihlásí k jejich serveru a licence načte. Cosi to stáhlo a šup, už jsem měl v About  napsáno, že licence pro Android je aktivní. Pak jsem začal zjišťovat, co je pro provoz ještě potřeba dál.

V manuálu se píše, že potřebuji Android SDK a pro compiler i NDK. Hm, fajn. Co to je a kde to vezmu jsem vyklikal rovnou z odkazů v manuálu. Nemám moc rychlé připojení, tak je každé větší stahování docela opruz. SDK i NDK se instaluje každé trochu jinak. SDK je sada balíčků spravovaných SDK Managerem. V něm si jde zaškrtnout, které balíčky člověk chce a ty se pak stáhnou a nainstalují víceméně automaticky. NDK se prostě jen rozbalilo do adresáře a nic. Nedával jsem moc pozor, takže se mi to vysypalo do Downloads a já to pak marně hledal v nainstalovaných programech. Vzhledem k tomu, že se pak musí Game Makeru ukázat cestu k těm souborům, je poloha adresáře celkem důležitá.

Po nainstalování SDK, NDK a Android Studio IDE ( jel jsem systémem "chci mít všechno" ), jsem zjistil, že nemám dost Javy a tak jsem musel ještě číst onu skvělou hlášku oznamující, kolik miliónu strojů běží na Javě. Jenže pak to stejně nejelo. GMS psalo, že rozjíždí na telefonu Yoyo Runner, ale tam se dělo klasicky kulové. Z online helpu u YYG jsem vyčetl, jak v příkazovém řádku ověřit spojení s telefonem. Psalo to "unknown", čili stav neznámý. A to je blbě. Pro některé telefony je specifický postup, ale o mém typu se nikde nic nepsalo. Po nějakých pokusech, hromadě pročtených návodů jsem přeinstaloval USB driver ( musí podporovat tzv. ADB - android debugging bridge ), přepnul telefon do vývojářského režimu ( skrytá funkce se odemyká vícenásobným klepáním na číslo verze - build ), zapnul na něm USB ladění ( dobrý vtip byl, že to nešlo, když byl připojený k počítači ) a hur, hur, hurá. Stav připojení k telefonu je "device". Spousta kroků pro člověka, ale celkem žádný pokrok pro lidstvo.

Zjistil jsem, že SDK balíčky v manageru zapnuté defaultně nestačí. Našel jsem seznam těch, které by tam být měly ( tuším že to bylo někde v YYG knowledge base ) a naklikal je tam. Pak se to věčnost stahovalo, ale výsledek stál zato. GMS se spojilo s Yoyo runnerem ( ten jsem předtím v zoufalství nainstaloval z Googleplay i když by ho tam měl našupat právě funkční ADB ) a na telefonu se objevilo první game makerovské okno. Jsa opojen úspěchem, zachtělo se mi exportovat taky APK. A hele ono to nešlo.

V balíčcích přece jen něco chybělo. Error výpis ukazoval na nějakou část API16. Tak jsem znovu nastartoval SDK manager a v té chvíli mi to napsalo 25 balíčků k aktualizaci. Já naivní hlupák jsem klikl na instalovat a hned u třetího balíčku ( mimochodem jen nějaká dokumentace ) se objevilo connection lost a zatuhlo to. Po opětovném startu už nebyly k dispozici ani ty balíčky, které jsem předtím měl a tudíž už se se mnou GMS zas nebavilo. Zjistil jsem, že spojení padá, když se nehýbe myš ( zní to divně, ale je to tak ). Tak jsem něco přes hodinu šmejdil myší po liště. Podařilo se mi zaktualizovat skoro všechno, ale lezlo to tak pomalu, že by se té rychlosti slimáci smáli.

Někdy skoro k půlnoci jsem měl první apk a pro snadné nainstalování jsem si hodil na dropbox, který jsem pak v telefonu snadno otevřel. Z něj se apk automaticky nabídne k instalaci. Můžete si testovací apku zkusit, je ke stažení >zde<. Udělá jen okno s pozadím, jedním tlačítkem, které ukáže nápis Android. Měl by se ozvat zvukový efekt a pak už je tam jen křížek na vypnutí.

Co všechno na Androidu Game Maker umí budu asi ještě zkoumat dlouho, ale hned na první pohled je jasné, že problém bude všechno, co nejde odladit předem na Windows. Než se totiž na telefonu projekt rozjede trvá docela dlouho a když se to musí udělat s každým hloupým errorem, tak to sežere spoustu času.

Každopádně je velice hezký pocit, dokopat to k cíli a vidět svoji věc jet na telefonu.



19. září 2015

Soutěžní hra na Krevetě - Spooky Photo

Spooky Photo


Dnes jsem publikoval minihru Spooky Photo pro soutěž Malá herní dílna na Kreveta.net. Nápad přišel jako blesk z čistého nebe a tvorba hry mi šla skvěle od ruky. Začal jsem ji dělat v Game Makeru 8.0 s tím, že ji později převedu do Game Maker Studia. Ale když jsem to měl prakticky celé hotové a všechno běželo bez potíží, už se mi nechtělo si nějaké ty potíže přidělávat konverzí do GMS. Na rychlost vývoje je GM8 stále nepřekonatelná jednička. ( GMS háže vývojářům klacky pod nohy, kde může )

Pokusil jsem se být košer a nechat si grafiku staženou z webu odsouhlasit autory. Po cca 24 hodinách mučivých pochyb, zda mi souhlas dají, jsem nevydržel a pustil se do výroby vlastní grafiky. Dopadlo to nad očekávání dobře. Řekl bych, že lépe než s původní staženou grafikou. Tak je vlastně skvělé, že se neozvali. :-)

Hra běží pod Windows a je ke stažení zdarma pod článkem na Krevetě.
Určitě si to zahrajte, stojí to za to.

TomBen

16. září 2015

Particle Type Editor 1.1.0.35

Particle Type Editor 1.1.0.35

 

 

updated:
- sprite particle včetně exportu, animací a sekundárních sprite částic
( lze mít částici definovanou obrázkem formátu png - doporučuji png vytvořený exportem z GMS )
- color selection doplněn o číselné vkládání jednotlivých složek barvy
( pravá myš resetuje na hodnotu z původní barvy )
- původní barva stabilně v pravém dolním rohu palety
- řádek nad infolinkou v hlavní obrazovce ukazuje cestu last_used_directory
- tlačítka na ukládání cest k adresářům

> STÁHNOUT VERZI 1.1.0.35 <

Aplikované částice ( aneb jak lze částice z editoru použít )


 Aplikovaná sprite částice:
>STÁHNOUT CUBICIO.EXE<  ( něco jako screensaver )





 Aplikovaná běžná částice:
>STÁHNOUT LAMP POST< ( částicemi oživený obrázek od Belegilgalad )








Vytvoření jedné ukázky pomocí editoru částic zabralo cca 15 minut, pokud jde o technickou realizaci.
Čili jde o dobu kratší než čas potřebný k hledání nápadu a publikování.

 

Vzorky popisu částic ke stažení:

GOLDSHINE
HEMOGLOBIN
VLASATICE










9. srpna 2015

Particle Type Editor 1.1.0.25


 

 

Particle Type Editor  1.1.0.25 alpha

Tato verze získala zásadní změnu skinu, byly opraveny rozličné chyby a přidána drobná vylepšení. Protože pořád chybí vytváření particle z externích obrázků, jde pořád ještě o alpha stádium. Doufám ale , že brzy budu moci oznámit první betu.

 v pohybu na YouTube




Změny GUI:

Díky skvělým radám Jindřicha Pavláska ( Likandro ) prošel vzhled uživatelského rozhraní téměř neuvěřitelnou proměnou. Jako programátor bych byl samosebou líný dělat jakýkoli "nadbytečný" grafický cukr do funkcionálně zaměřené aplikace. Nicméně, když jsem viděl Jindřichův náhled na to, jak by si věci představoval on, trochu jsem se zastyděl a nějakou práci do toho dal. Zdaleka asi ne tolik, jak by možná věci řešil do detailu Jindřich, ale i tak si myslím, že editor dostal jak se říká "šmrnc".
Nakonec, posuďte sami:



Pár užitečných klávesových zkratek:
TAB - zmizí panely
* - zmizí ukazatel fps
R - restart
Home - všechna nastavení do defaultní hodnoty ( pozor, není to ta, z které program startuje, protože pokud je vše v pořádku, tak se po startu načítá částice "Snowflakes.ini" )

Preview částice

to jsou ty dvě, které srší od začátku uprostřed obrazovky. Statická se jmenuje A a pohyblivá se jmenuje B. V této verzi je lze přemístit nebo skrýt.
SPACE - přepíná tam a zpět viditelnost obou Preview částic
CTRL + SPACE - přepíná pouze viditelnost částice B.
držením A a klinutím levé myši lze přemístit částici A
držením B a klinutím levé myši lze přemístit částici B
( Home nastavuje defaultní polohu oběma částicím )

Na co se lze těšit v budoucích verzích?
- částice ze sprite
- přímé nastavení čísly v Color Dialogu
- obsah do info řádky ( jiný než Lorem Ipsum :-) ) 





6. srpna 2015

Částicový masakr III

Částicový masakr III

 

Alfa 007 released !  ( Code Garage/Particle Exporter/ v007 )

Konečně se podařilo dokopat do spustitelné podoby alespoň editor typových částic. Ten bude součástí setu dvou nebo více editorů spojených do komplexního tvořiče efektů. Ale zatím je hotov jen první editor nazvaný PTE ( Particle Type Editor ). Z PTE se ukládá nastavení základního efektu ( soubor ini ), který obsahuje popis jedné primární částice a dvou sekundárních. K zobrazení libovolného efektu slouží game makerovský objekt, který lze kdykoli vyexportovat z PTE. Objekt umí načíst nastavení ( ini ) a zobrazuje daný efekt. Když si dáte objekt do své hry a budete s objektem rejdit po obrazovce, bude se vykreslovaný efekt pohybovat s ním ( jen je třeba  v Create Eventu nastavit follow_mouse místo defaultního true na false, jinak bude efekt běhat za myší ).

Postup přenesení efektu do vlastní hry je vidět na videu ( v českých titulcích jsou skromné komenty ).


Pokud exportujete víc částicových efektů do jedné hry, nemusíte ukládat script pack - je pořád stejný. I objekt můžete mít teoreticky jen jeden a načítat do něj různé efekty třeba po stisku klávesnice nebo podle událostí ve hře. To už ale vyžaduje nějaké ty znalosti.

INI soubory s nastavením můžete volně editovat ručně. Jediné, co asi hrozí je, že se efekt neukáže.
V editoru PTE jsou tlačítka označena podobně jako vlastnosti částic v Game Makeru, takže je snadné později porozumět jakémukoli částicovému kódu v GML..

Sekundární částice se v editoru přidají tak, že se uloží nějaká primární a ta se načte jako STEP nebo DEATH. Vzhledem k tomu, že STEP se vytvoří cca 60x za vteřinu z každé primární částice, dávejte density okolo -120 ( což znamená, že se budou tvořit 120x méně často - 1x za 2s ). Pravděpodobnost výskytu dávejte tak, aby se efekt necukal a GM stíhal. DEATH se tvoří vždy, když primární částice zanikne. Tam může být density nízké kladné číslo a probability opět podle cukatury.

I když je editor PTE jen základem budoucího systému tvorby efektů, tak už je v něm možné vytvořit úžasné kousky. Skladba dat v INI se už pravděpodobně nebude měnit, takže data budou kompatibilní i s vyššími verzemi. Lze tedy už teď vytvářet a ukládat všemožné nádherné efektíky.

Pokud někdo vytvoří pěkný efekt, klidně ho postněte v komentu jako link. Já i kdokoli další se tak může podívat, co jste vytvořili.

2. srpna 2015

Y:ball

Y:ball

Toto je resuscitace jedné mojí staré hry, která nešla tak docela bezbolestně převést do GM:Studia, tak mi ležela v adresáři ladem. Dneska jsem chtěl zkusit odmazat nejstarší kousky a po pěti nějakých tvrdě smazaných bez prohlížení ( test, demo, pokus a podobně ), jsem natrefil na na Y:ball.

Řekl jsem si, že jsem už natolik pokročilý v GML, že mě nějaký error nezarazí a pustil se směle do toho. Game Maker na mě zkoušel věci jako "cannot find instance0 - details in compiler window", přičemž compiler window obsahoval zas jen "cannot find instance0", zato mockrát za sebou. Nakonec jsem tuto zákeřnost odstranil přejmenováním objektu a vynuceným uložením místnosti. ( přidat objekt, odebrat objekt, zavřít ). Protože přenosem do GMS přestaly fungovat i některé designové věci a save/load, odčinil jsem to dolní lištou a (S/L) klávesovými zkratkami.

O co ve hře jde?

Hrdinou této akčně-logické postřehovky je žlutý míč, který se umí kutálet jen dopředu a dozadu konstantní rychlostí. Čeká na něj spousta nástrah poměrně svižně se pohybujících, do kterých nesmí narazit, jinak se začíná od začátku. Je nutné dokonalé načasování a bez Save/Load zatím nikdo do cíle nedošel. Ani já. :-)

Starší podobu vyrobenou v GM8 už jsem zveřejnil dříve, ale na některých slabších počítačích byla nehratelně pomalá. Teoreticky by tento rebuil kompilovaný v GM:Studiu 1.9 měl být výkonově za vodou.



Ke stažení je klasicky v mojí CodeGarage pod názvem Y_ball.

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.