← Visi ieraksti
← →

Vispirms izmēri: kā panācu, ka Steam Defense strādā uz iPhone

2013

Kad Steam Defense sāka raustīties, acīmredzamais aizdomās turamais bija AI — desmitiem vienību, katra pieņem lēmumus. Pirms aiztikt jebkādu kodu, es izveidoju veiktspējas testu. Kadru ātrums visvairāk krita uz iPhone, un vājā vieta nemaz nebija AI: tas bija tas, cik pikseļu grafiskajam procesoram nācās zīmēt atkal un atkal caur puscaurspīdīgiem objektiem.

Bija arī smieklīgā puse: mana paša spēle vienmēr uzkāra manu paša telefonu, un man vajadzēja mēnesi, lai noskaidrotu, kāpēc — pārāk daudz puscaurspīdīgu poligonu.

Agrīna Steam Defense versija ar FPS skaitītāju

Agrīna Steam Defense versija ar FPS skaitītāju uz ekrāna (labajā malā).

Ēnotāji. Es tos izgāju cauri un secināju, ka parastiem objektiem pietiek ar vienkāršu Unlit ēnotāju, bet caurredzamām lietām — ar Cutout ēnotāju (pikselis ir vai nu pilnīgi caurspīdīgs, vai pilnīgi necaurspīdīgs), nevis ar Unity standarta difūzo ēnotāju ar īstu caurspīdīgumu. Spēles dizainerim palūdzu stingri ierobežot pat Cutout: tas tāpat ir papildu darbs katram pikselim.

Versijas izmērs. Paralēli es apskatīju sarakstu ar smagākajiem attēliem versijā. Pašā augšā bija granāta: inventāra ikona, ko rāda 30–50 pikseļu izmērā, bet glabāja Full HD. Es visu pārsaspiedu un paskaidroju komandai, kā sagatavot grafiku. Tad pievienojām lejupielādi pēc pieprasījuma: versijā bija tikai tas, kas vajadzīgs pirmajiem diviem līmeņiem, bet pārējais pienāca pakās.

Mācība: profilē, pirms optimizē. Tā sistēmas daļa, par kuru uztraucies, reti ir tā, kas ir lēna — un lielākie ieguvumi bieži ir garlaicīgi: pareizais ēnotājs un pareizais attēla izmērs.