Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET. Zároveň využij akce až 50 % zdarma při nákupu e-learningu. 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í.
Slevovy týden 3/50

BlowWind Benchmark

Prečo merať výkon?

Každého hráča, herného vývojára a vlastne kohokoľvek všeobecne, kto pôsobí v IT, často zaujíma, aký reálny výkon dokáže konkrétne (alebo vzorová) počítačová zostava dať určitým aplikáciám a nakoľko bude možné zaťažiť systémové prostriedky, aby použitie jedného programu nezruinovalo bežný systém natoľko, že bude užívateľsky neúnosné ho napríklad vôbec používať. V Game Makeru Studio (aktuálna verzia 1.2), ktorý používa GML skripty prekladanej (interpretované) za behu špeciálnym programom (runner) je veľmi ľahké dosiahnuť a prekročiť hranicu použiteľného výkonu a pre väčšinu užívateľov Game Makeru je navyše celkom ťažké vopred odhadnúť, ako veľké nároky ich produkty budú mať.

Čo je to benchmark?

Názov pochádzajúce z angličtiny (značka na posilňovacej lavici) označuje systémy meranie a porovnávanie výkonu aplikácií na rôznych zostavách tak, aby boli ich hodnoty ľudsky ľahko predstaviteľné. Mávajú rôzne zameranie a testujú výkon za určitých podmienok typických napr. Pre prácu s výpočtami, grafikou, zápisy na disk, komunikáciu po sieti atď.

Moja želiezko v ohni

Ja som pri preskúmavaní tajov čerstvo kúpeného Game Maker Studia Professional 1.2 chcel vedieť, ako si v ňom vytvorené aplikácie budú stáť výkonovo na niekoľko rokov starších počítačoch a ako veľa výpočtov si budem môcť dovoliť do svojich skriptov napchať. Samozrejme sa každý program líšia, ale je dôležité aspoň orientačne poznať maximálne možnosti. Je hlúpe začať mohutný projekt, napísať veľa strán kódu a potom zistiť, že predstavy boli tak prehnané, že ani po optimalizácii a osekanie prebytočných funkcií hra nikdy nepôjde na priemernom stroji a že ani sám vývojár si ju možno neužije bez sekania a trhavé grafiky.

Na čo som sa zameral?

Išiel som najjednoduchšou cestou k cieľu. Vybral som vykresľovanie meniacich sa kružníc vstavanou funkciou a výsledok teda záleží veľa na výkone CPU. Vlastne ide o to, koľko sústredných kružníc dokáže program vykresľovať bez rýchlosť zobrazovania klesla pod určitý počet snímok za sekundu. Program vypisuje aktuálny počet kružníc a aktuálnu hodnotu FPS (frame per second - počet snímok za sekundu).

Ako program použiť?

Jednoducho spustíte binárku (exe súbor) na testovanom stroji a pomocou klávesov + a - na numerickej klávesnici meníte počet vykreslovaných kružníc (zelené číslo) tak dlho, až dosiahnete vybrané hodnoty FPS (biele číslo). Vhodná cieľová hodnota je 60 FPS. Je to dostatočný počet snímok pre vykreslenie bežného plynulého pohybu. Za najnižšiu hodnotu, keď sa ešte obrázky ľudskému oku zlievajú do súvislej animácie, býva považované 18 FPS. Hodnoty nad 100 FPS sú väčšinou vyššie ako frekvencia obnovovania bežných zobrazovacích zariadení, takže honba za extrémnymi hodnotami nemá veľký zmysel. Spomínaných 60 FPS bude stačiť na typické využitie Game Makeru a zvolil som ho ako referenčnú hodnotu aj v priloženej tabuľke a grafe. Hodnotu 60 FPS som meral ako stabilné a bez ďalších činností. Tzn. že biele číslo pri meraní v kľudovom stave v priebehu niekoľkých minút ani raz nekleslo pod 60 a menilo sa len od 61 do 60. V tom okamihu som zapísal hodnotu a tak je treba chápať tabuľku. Počas merania nespúšťajte ďalšie aplikácie, služby na pozadí nechajte len typické pre danú zostavu tak, ako býva obvykle používaná alebo v akom stave by počítač bol pri spúšťaní gamemakerovských hier.

Možnosti vlastných úprav

Priložil som zdrojový projekt pre GMS 1.2 a tak je možné z neho vyrobiť build pre rôzne platformy, ak niekto máte stroje s inými OS a zároveň vlastníte príslušné pluginy do Game Maker Studia. Princíp benchmarku nie je zložitý, ale ak pozmeníte spôsob vykonávania, uveďte to vždy spolu s akýmikoľvek prezentovanými výsledkami, inak budú hodnoty zmätočné a ťažko bude niekto veriť, že sú reálne. V prípade vážneho záujmu ma kontaktujte cez ITnetwork PM a môžem k článku pridať vaše uskutočnená merania, rovnako ako prípadné buildy pre ďalšie platformy s ich hodnotami. Prosím o serióznosť a overiteľnosť. Nepíšte mi veci ako že kamarát povedal, že na strejdově kompu to nameralo niečo. Za skutočné hodnoty budem rád a ak sa nájde niekto, kto urobí build aj pre iné platformy, budem ešte radšej.

Vývoj

Ak by sa niekto o tematiku zaujímal, myslím, že by som nemal problém vyvinúť špecifické benchmarky pre určité typické gamemakerovské úlohy, napr. Počet vykreslených sprites, surfaces alebo particles. S každým je ale hromada práce, aby hodnoty neboli ovplyvňované náhodnými činiteľmi a aby sa dali rozumne vyložiť aj bežnému užívateľovi GM. Preto nemienim sľubovať, že každému vyrobím na požiadanie akýkoľvek merací systém. Reagovať budem len na záujemcov, ktorí budú ochotní vložiť do vývoja významný kus vlastnej práce a vyhradzujem si právo odmietnuť aj z osobných či iných dôvodov.

Budúce update

Je pravdepodobné, že s novými verziami Game Maker Štúdiá budú z rovnakého zdrojového kódu výrazne iné a dúfam, že len vyššie, hodnoty. Preto počítam s tým, že sa tu časom napríklad objavia aj ďalší môj build, vytvorený v novšej verzii. Kód sa pokúsim nemeniť, pokiaľ nebude zmenená príslušná syntax a teda ak súčasný kód prejde v budúcich verziách parsováním. Všetky staršie súbory tu zostanú zachované aj po ďalších update, ak to bude možné, z hľadiska administrácie ITnetwork, tak plus mínus naveky. Nemusíte sa preto báť, že by hodnoty zo starších meraní prišli navnivoč.

Použiteľnosť pre iné záležitosti než zrovna Game Maker

Je pravda, že benchmark je napísaný špecificky pre meranie rýchlosti GM Runner na úlohe typické pre vykresľovanie grafických obrazcov vstavanou funkciou. To samozrejme veľmi obmedzuje použiteľnosť pre nejaké iné účely ako pre orientačné overenie rýchlosti GM hier, ktoré obsahujú tento spôsob vykresľovanie vo významnejšom množstve, ale určite je výsledná hodnota istým ukazovateľom výkonu CPU predovšetkým z hľadiska čistého kmitočtu - taktu procesora. Taky bude vždy dobre vidieť strata výkonu pri prevádzke na emulátor a podobných záležitostiach. V tabuľke je uvedená hodnota pri spúšťaní cez Wine a je logické, že nie je príliš vysoká. Prosím nezamieňať s výkonom natívnych Linuxových aplikácií, ktoré s týmto naozaj nemajú vôbec nič spoločné!

Záverom

Mám pocit, že som sa trochu dosť rozkecal o celkom jednoduché záležitosti, ktorú navyše ako verím, väčšina chápe bez ďalšej pomoci, ale snáď to bude na niečo dobré a objaví sa nejaké hodnoty z poctivo nameraných dát. Prípadné bugy a nefunkčnosti dávajte do PM a pri ďalšej nejakej aktualizácii by som ich vyriešil. Vďaka.

PS: BlowWind som tomu začal hovoriť ja, podľa toho, že úvodné nastavenie pripomína vzhľadom, vo vetre sa valiaci valec, z bočného pohľadu. Takto vyzerá napr. Seno alebo drobné vetvičky, ktoré fúka vietor cez cestu. :-)


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 276x (2.73 MB)
Aplikácia je vrátane zdrojových kódov v jazyku GameMaker

 

Všetky články v sekcii
Game maker - GML
Článok pre vás napísal TomBen
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
-
Aktivity