Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

BlowWind Benchmark

Proč měřit výkon?

Každého hráče, herního vývojáře a vlastně kohokoli obecně, kdo působí v IT, často zajímá, jaký reálný výkon dokáže konkrétní (nebo vzorová) počítačová sestava dát určitým aplikacím a nakolik bude možné zatížit systémové prostředky, aby použití jednoho programu nezruinovalo běžný systém natolik, že bude uživatelsky neúnosné ho třeba vůbec používat. V Game Makeru Studio (aktuální verze 1.2), který používá GML skripty překládané (interpretované) za běhu speciálním programem (runner) je velice snadné dosáhnout a překročit hranici použitelného výkonu a pro většinu uživatelů Game Makeru je navíc celkem těžké předem odhadnout, jak velké nároky jejich produkty budou mít.

Co je to benchmark?

Název pocházející z angličtiny (značka na posilovací lavici) označuje systémy měření a porovnávání výkonu aplikací na různých sestavách tak, aby byly jejich hodnoty lidsky snadno představitelné. Mívají různá zaměření a testují výkon za určitých podmínek typických např. pro práci s výpočty, grafikou, zápisy na disk, komunikaci po síti atd.

Moje želízko v ohni

Já jsem při prozkoumávání tajů čerstvě zakoupeného Game Maker Studia Professional 1.2 chtěl vědět, jak si v něm vytvořené aplikace budou stát výkonově na několik let starších počítačích a jak mnoho výpočtů si budu moci dovolit do svých skriptů nacpat. Samozřejmě se každý program liší, ale je důležité alespoň orientačně znát maximální možnosti. Je hloupé začít mohutný projekt, napsat mnoho stran kódu a pak zjistit, že představy byly tak přehnané, že ani po optimalizaci a osekání přebytečných funkcí hra nikdy nepojede na průměrném stroji a že ani sám vývojář si ji možná neužije bez sekání a škubavé grafiky.

Na co jsem se zaměřil?

Šel jsem nejjednodušší cestou k cíli. Vybral jsem vykreslování měnících se kružnic vestavěnou funkcí a výsledek tedy záleží hodně na výkonu CPU. Vlastně jde o to, kolik soustředných kružnic dokáže program vykreslovat aniž by rychlost zobrazování klesla pod určitý počet snímků za vteřinu. Program vypisuje aktuální počet kružnic a aktuální hodnotu FPS (frame per second - počet snímků za vteřinu).

Jak program použít?

Jednoduše spustíte binárku (exe soubor) na testovaném stroji a pomocí kláves + a - na numerické klávesnici měníte počet vykreslovaných kružnic (zelené číslo) tak dlouho, až dosáhnete vybrané hodnoty FPS (bílé číslo). Vhodná cílová hodnota je 60 FPS. Je to dostatečný počet snímků pro vykreslení běžného plynulého pohybu. Za nejnižší hodnotu, kdy se ještě obrázky lidskému oku slévají do spojité animace, bývá považováno 18 FPS. Hodnoty nad 100 FPS jsou většinou vyšší než frekvence obnovování běžných zobrazovacích zařízení, takže honba za extrémními hodnotami nemá valný smysl. Zmíněných 60 FPS bude stačit na typické využití Game Makeru a zvolil jsem ho jako referenční hodnotu i v přiložené tabulce a grafu. Hodnotu 60 FPS jsem měřil jako stabilní a bez dalších činností. Tzn. že bílé číslo při měření v klidovém stavu během několika minut ani jednou nekleslo pod 60 a měnilo se jen od 61 do 60. V tom okamžiku jsem zapsal hodnotu a tak je třeba chápat tabulku. Během měření nespouštějte další aplikace, služby na pozadí nechte jen typické pro danou sestavu tak, jak bývá obvykle používána nebo v jakém stavu by počítač byl při spouštění gamemakerovských her.

Možnosti vlastních úprav

Přiložil jsem zdrojový projekt pro GMS 1.2 a tak je možné z něj vyrobit build pro různé platformy, pokud někdo máte stroje s jinými OS a zároveň vlastníte příslušné pluginy do Game Maker Studia. Princip benchmarku není složitý, ale pokud pozměníte způsob provádění, uveďte to vždy spolu s jakýmikoli prezentovanými výsledky, jinak budou hodnoty zmatečné a těžko bude někdo věřit, že jsou reálné. V případě vážného zájmu mě kontaktujte přes ITnetwork PM a můžu k článku přidat vaše uskutečněná měření, stejně jako případné buildy pro další platformy s jejich hodnotami. Prosím o serióznost a ověřitelnost. Nepište mi věci jako že kamarád povídal, že na strejdově kompu to naměřilo něco. Za skutečné hodnoty budu rád a pokud se najde někdo, kdo udělá build i pro jiné platformy, budu ještě radši.

Vývoj

Pokud by se někdo o tématiku zajímal, myslím, že bych neměl problém vyvinout specifické benchmarky pro určité typické gamemakerovské úlohy, např. počet vykreslených spritů, surfaces nebo particles. S každým je ale hromada práce, aby hodnoty nebyly ovlivňovány náhodnými činiteli a aby se daly rozumně vyložit i běžnému uživateli GM. Proto nehodlám slibovat, že každému vyrobím na požádání jakýkoliv měřící systém. Reagovat budu jen na zájemce, kteří budou ochotni vložit do vývoje významný kus vlastní práce a vyhrazuji si právo odmítnout i z osobních či jiných důvodů.

Budoucí update

Je pravděpodobné, že s novými verzemi Game Maker Studia budou ze stejného zdrojového kódu výrazně jiné a doufám, že jen vyšší, hodnoty. Proto počítám s tím, že se tu časem třeba objeví i další můj build, vytvořený v novější verzi. Kód se pokusím neměnit, pokud nebude změněna příslušná syntaxe a tedy pokud současný kód projde v budoucích verzích parsováním. Všechny starší soubory tady zůstanou zachovány i po dalších update, pokud to bude možné, z hlediska administrace ITnetwork, tak plus mínus navěky. Nemusíte se proto bát, že by hodnoty ze starších měření přišly vniveč.

Použitelnost pro jiné záležitosti než zrovna Game Maker

Je pravda, že benchmark je napsaný specificky pro měření rychlosti GM runneru na úloze typické pro vykreslování grafických obrazců vestavěnou funkcí. To samozřejmě velice omezuje použitelnost pro nějaké jiné účely než pro orientační ověření rychlosti GM her, které obsahují tento způsob vykreslování ve významnějším množství, ale určitě je výsledná hodnota jistým ukazatelem výkonu CPU především z hlediska čistého kmitočtu - taktu procesoru. Taky bude vždy dobře vidět ztráta výkonu při provozu na emulátorech a podobných záležitostech. V tabulce je uvedena hodnota při spouštění přes Wine a je logické, že není příliš vysoká. Prosím nezaměňovat s výkonem nativních Linuxových aplikací, které s tímto opravdu nemají vůbec nic společného!

Závěrem

Mám pocit, že jsem se trochu dost rozkecal o celkem jednoduché záležitosti, kterou navíc jak věřím, většina chápe bez další nápovědy, ale snad to bude k něčemu dobré a objeví se nějaké hodnoty z poctivě naměřených dat. Případné bugy a nefunkčnosti dávejte do PM a při další nějaké aktualizaci bych je vyřešil. Díky.

PS: BlowWind jsem tomu začal říkat já, podle toho, že úvodní nastavení připomíná vzhledem, ve větru se valící válec, z bočního pohledu. Takhle vypadá např. seno nebo drobné větvičky, které fouká vítr přes cestu. :-)

GameMaker - GML

 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 278x (2.73 MB)
Aplikace je včetně zdrojových kódů v jazyce GameMaker

 

Všechny články v sekci
GameMaker - GML
Článek pro vás napsal TomBen
Avatar
Uživatelské hodnocení:
1 hlasů
-
Aktivity