BlowWind Benchmark

Ostatní jazyky GameMaker GML 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 devbook 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 devbooku, 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. :-)


 

Stáhnout

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

 

  Aktivity (1)

Článek pro vás napsal TomBen
Avatar
-

Jak se ti líbí článek?
Celkem (1 hlasů) :
4444 4


 


Miniatura
Předchozí článek
Úvod do GML
Miniatura
Všechny články v sekci
GameMaker - GML

 

 

Komentáře
Zobrazit starší komentáře (46)

Avatar
Vojtěch Pospíchal:

Rovných 11K na 60 FPS :) Musím uznat, že jsem nečekal takovej výkon :)

 
Odpovědět  +1 5.1.2014 12:20
Avatar
TomBen
Redaktor
Avatar
TomBen:

Zirko: Když jsi naměřil těch 3978, tak jsi to spouštěl volbou "spustit s grafickým procesorem Nvidia", nebo jsi to nechal na systému, co zvolí? Pokud se to spustilo s integrovanou, tak by ta hodnota tak divná nebyla.

Odpovědět 5.1.2014 13:28
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na TomBen
Petr Nymsa:

Nee, naschvál jsem to pustil přes NVidii, včera jsem si s tím ještě hrál, zkoušel jsem třeba co udělá zapnutý režim kompatibility - žádná změna. Takže GM asi prostě neběhá správně pod Win 8

Odpovědět  +1 5.1.2014 13:44
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Petr Nymsa
TomBen:

GM s tím bohuže mnoho dělat nemůže. Aplikace je vytvořena nativně pro Win7 a tak jde vlastně o kompatibilitu mezi verzemi OS a částečně možná systém nVidia Optimus, který střídá karty. Je pravda, že by nespíš pomohlo vytvoření vlastní verze pro Win8, ale to bude muset nějakou dobu počkat. Leda by se ozval někdo, kdo GM pod osmičkama má už teď.

Odpovědět 5.1.2014 14:26
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
klukule
Člen
Avatar
klukule:

Tak mne asi nikdo netrumfne, moje PC ma problme udrzet 60 FPS uz pri 493 kruzich :D

 
Odpovědět 8.1.2014 1:18
Avatar
TomBen
Redaktor
Avatar
Odpovídá na klukule
TomBen:

Copak to máš za sestavu? :-)

Odpovědět 8.1.2014 4:54
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Matúš Petrofčík:

pridám moj test :) :P matusko

Odpovědět 8.1.2014 5:55
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Matúš Petrofčík
Matúš Petrofčík:

tak ešte raz po tom čo som si uvedomil, že som to zle meral :D :D hodnota fps občas preskakovala na 61, ale ked som dal vyššií počet kruhov, už to zas občas preskakovalo na 59 :)

Odpovědět  +1 8.1.2014 6:15
obsah kocky = r^2 ... a preto vlak drnká
Avatar
lieroX316
Člen
Avatar
lieroX316:

Teraz neviem či je chyba v mojom pc alebo v tom programe.
Benchmark využíva iba jedno jadro procesoru, grafiku úplne ignoruje(záťaž 6%).
Skóre: 1370/60FPS.
Zostava: Athlon x4 3,5ghz, HD5770, w7

 
Odpovědět 9.1.2014 18:39
Avatar
TomBen
Redaktor
Avatar
Odpovídá na lieroX316
TomBen:

Grafiku musíš zvolit ručně. Pravá myš a spustit s grafickým procesorem.

Odpovědět 9.1.2014 19:55
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 56. Zobrazit vše