Co napíšu, můžu si rovnou zahrát, líbí se UI programátorovi z Warhorse

27. 4. 2021

2 min.

Co napíšu, můžu si rovnou zahrát, líbí se UI programátorovi z Warhorse

Nikdy nebyl velkým hráčem her, ale přesto se podílel na jednom z nejúspěšnějších českých titulů Kingdom Come: Deliverance. Michal pracuje ve Warhorse Studios již přes 6 let jako UI programátor a na starosti má například tvorbu inventářů, quest logů nebo map. V rozhovoru nám svou profesi přiblížil!

Nehrajete hry, ale vytváříte je. Jak se to stalo?

Studoval jsem obor počítačové grafiky a zpracování obrazu na Masarykově Univerzitě, v tu dobu jsem také narazil na Dana Vávru a jeho videa o vývoji Kingdom Come. Potom jsem si na jeho Facebooku všiml inzerátu, ve kterém sháněli flashaře. To už tehdy byla téměř mrtvá technologie, ale já v ní dělal několik let včetně své bakalářky. Hry jsem do té doby nehrál, ale ukázalo se, že to pro mou pozici není taková nutnost. Mnoho lidí to bere jako svou hlavní kvalifikaci, když se k nám hlásí, ale počet odehraných hodin opravdu není pro programátora důležitý.

Jaké technologie ve Warhorse ještě používáte?

Pracuji už i jako klasický programátor, což u nás znamená psát v jazyce C++. Pro UI ale primárně používáme vývojové prostředí Adobe Flash, jehož novější verze se dnes jmenuje Adobe Animate. Pracujeme s 2D grafikou od konceptářů, kterou si musíme upravit, naimportovat, rozdělit na tzv. movie clipy a ty poté rozpohybovat pomocí skriptů. Pokud by se k nám někdo hlásil, měl by v tomto programu být rutinér. Samotný jazyk Action Script ve verzi 2 se dnes už prakticky nepoužívá ale někdo, kdo umí Javascript, by se ho měl tak za cca měsíc naučit.

Lidé mimo hry si možná nepředstaví, co má UI programátor na starosti. Na čem tradičně pracujete?

Je to například inventář, ve kterém má hráč uložené předměty. A pak všechny možné menu, quest logy, mapa nebo některé minihry. Velkou částí je HUD (heads-up display), ve kterém jsou vidět životy, kompas a nejrůznější notifikace V rámci kódu pracujeme v tzv. GUI Modulu (Graphic User Interface), který se stará o vykreslení informací a sbírání inputů od hráče. Když například odchytneme pokyn otevřít inventář, tak se back-endu zeptáme, jaké v něm má hráč předměty. To nám dá balík dát, které zpracujeme a přepošleme do flashe, ve kterém se to vykreslí jako jednotlivé položky v listu.

image

Liší se nějak programování her od jiných aplikací?

Musí se hodně řešit výkon, protože algoritmy řešící tentýž problém mohou mít výrazně odlišnou časovou složitost. Hodí se proto mít formální vzdělání, aby programátor věděl, jak správně pracovat s datovými strukturami. Nelze mít naivní přístup a počítat s neomezeným výkonem, protože se jedná o náročnou hru a ne aplikaci, která jednou za čas něco vykreslí. A samozřejmě velký bonus práce zde je, že co vytvořím, si pak můžu hned zahrát.

Jak víte, co tvořit? Dostáváte zadání, nebo jde něco i od vás?

Začíná to brainstormem s designéry, kteří do hry něco vymyslí a my naceníme vývoj. Pokud víme, kolik času to bude stát, představíme to a po schválení se časem dostaneme k vývoji. Předáváme to konceptářům, kteří nám dodají assety, Výsledek si pak projde vedení, jehož připomínky následně zapracováváme. Ještě nám to v poslední fázi vrací testeři, kteří objeví nějaké chyby, ač na modelových datech třeba vše vypadalo dobře.

Vývoj se obvykle neobejde bez chyb a bugů, máte nějaký příklad?

Po vydání hry se hodně probírala minihra odemykání zámků. Na základě feedbacku jsme ji v patchi zjednodušovali. Trochu se projevila naše tvůrčí slepota, jelikož jsme to hráli všichni furt dokola a perfektně se tu minihru naučili. Kromě toho jsme zjistili, že nám každý gamepad posílal jiná data. Když točíte plně vyklopenou páčkou, nedostáváte kruh, ale spíše takový čtverec s ukousnutými rohy. Jinak jsou chyby samozřejmě běžné, občas někdo nedomyslí koncept a ukáže se, že ve finále nefunguje. Máme už ale celkem zkušenosti, díky kterým se to nestává tak často.

Co by podle vás měl dobrý UI programátor umět?

Kromě učenlivosti a dobré orientace ve zmíněných technologiích, je dle mého důležitá systematičnost. Naše oddělení musí trošku korigovat kreativitu designérů, abychom jejich nápadům dali řád a sepsali je do něčeho, co lze naprogramovat.

Chcete se k Warhorse přidat a podílet se na vývoji předních her? Právě nabírají!

Probíraná témata