8. prosince 2018

Voronoi Diagram v Game Makeru

Grafický vzor pojmenovaný jako Voroného diagram znám už dlouho, ale tentokrát jsem se rozhodl ho vytvořit programem napsaným v jazyce GML pro Game Maker. Matematika definující tento vzor není až tak složitá, jak jsem se zprvu obával a tak to nebyl problém uskutečnit. Jde vlastně o síť vytvořenou ze shodných vzdáleností ke klíčovým bodům.

Voroného diagram na wikipedii:
( https://cs.wikipedia.org/wiki/Voron%C3%A9ho_diagram )


Z hlediska vykreslení jsem v GML použil primitivní postup. Pro každý bod obrazu jsem nechal spočítat jeho vzdálenost k nejbližším dvěma klíčovým bodům a pokud je rozdíl nižší než jedna, tak se vykreslí. Jde sice o výpočet hrubou silou, ale při troše trpělivosti ( cca 5 sec ) se to vykreslí.

Ovšem jak je to s reálnou použitelností?
Jelikož jsem drze natvořil klíčové body pomocí objektů ( spotřeba paměti i výkonu nezměrná ), nebylo to daleko od myšlenky použít normální objekty s běžnými obrázky jako sprite. GM má knihovní funkci na vzdálenost objektu od objektu a tak nejde o moc velký rozdíl v rychlosti. Výsledek vypadá docela zajímavě. Šlo by takto znázornit klikací mapy nebo nějaké oblasti vlivu.


Takto jde udělat mapu okolo jakýchkoli obrázků.
Pokusný projekt ze kterého je screenshot:


8. října 2018

Slavkov

Hra Slavkov byla vytvořena podle stejnojmenné stolní hry pro dva hráče.
Je hratelná jako LAN multiplayer.
( lze spustit i na jediném fyzickém stroji použitím localhost čili 127.0.0.1 )

Jde o vojenskou tahovou strategii, která vás zavede do roku 1805 k bitvě císaře Napoleona proti spojeným armádám cara Alexandra I. a císaře Františka I. ( přečíst si o bitvě na wikipedii )
 
Aktuální verze je ve fázi beta, čili určena primárně k testování a odlaďování chyb.
Proto přivítám rozumnou odezvu od případných hráčů.




=DOWNLOAD BETA 1.1 from Dropbox=

verze Beta 1.1 obsahuje:
- auterlitz ( server pro 3 bežící hry )
- napoleon ( klient )
- spojenci ( klient )
- v zipu je přibalen soubor .sav, který lze nahrát (load) na běžícím Austerlitz serveru a který obsahuje bez jedné jednotky kompletní fázi rozmisťování, jde o zkratku vhodnou pro rychlé vyzkoušení

= bez umělé inteligence - potřební dva hráči =



Hra neobsahuje pravidla originální hry Slavkov.
( scan originálních pravidel lze najít na Zatrolených hrách =link= )

informace o nalezených chybách posílejte na TomBen zavinac seznam tečka cz
prosím pokud možno přesně uvést:
 -co se stalo špatně
-za jakých okolností
-co tomu předcházelo
-zda se to opakuje

Poznámky k verzi 1.1:
-save/load funguje bezpečně především během fáze rozmisťování, ostatní bylo málo testováno
-není implementováno pravidlo "Nelze stejnou jednotkou provést stejnou akci dvakrát po sobě.",
záleží tedy na hráčích, zda ho dodrží
-jde o testovací verzi, které časem vyprší platnost
-verze není zabezpečena proti podvádění a obsahuje některé ladicí mechanismy
 ( například lze kdykoli zobrazit soupeřovy jednotky )
  počítá se s tím, že testovat budou rozumní lidé




20. srpna 2018

GM Colors

Barevná paletka přímo exportující gml kód do schránky Windows.


Vlastně není moc co dodat. Napsal jsem si to během práce, když jsem potřeboval nějakých pár barev navíc. Výsledek exportu vypadá takto:
 
enum extracolor {
color_05 = 0,
c_skin = 10138879,
color_03 = 1994934,
c_grass = 9109386,
c_blue2 = 5714688,
color_10 = 0,
color_09 = 0,
color_08 = 0,
color_07 = 0,
color_06 = 0,
}

Použití je potom jednoduché. Např.: draw_set_color ( extracolor.c_grass );
Nedělá to nic extra navíc. Netestuje se například, jestli názvem barvy není klíčové slovo GML.
Název extracolor nejde změnit v paletě, ale myslím, že není nic snazšího než ho po vložení do GM přepsat na cokoli vhodnějšího, pokud je to žádoucí. Především v případě, že by se použilo více barevných sad.

Lze importovat vlastní barevná paletka, která se objeví vedle té standardní. Neřeší se velikost a bude umístěna centrovaně. Pokud se vloží něco velkého, tak to nebude moc fungovat - zalepí to tlačítka. Ideální je 83x203, což je současná velikost.

Hm, to bude asi tak všechno. Třeba to někomu k něčemu bude. :-)

DOWNLOAD on DROPBOX