De cele mai multe ori, pentru cei mai mulți dintre noi, primul contact cu un computer e printr-un joc video. Sunt utilizatori care își amintesc cu drag și nostalgie de Quake. Alții de FIFA sau GTA. În spatele acestor titluri, foste și viitoare, e o industrie la care utilizatorii nu se prea gândesc. Dar cum ajunge un joc video de la idee la produs final, care strânge comunități de milioane? Asta am căutat să aflu acum.

Positron X 1Foto: Amber

Industria dezvoltării de jocuri video e noul fenomen în România. Și nu se întâmplă de azi, de ieri, ci de câțiva ani. Ultimele cifre pe care le-am consultat de la Asociația Dezvoltatorilor de Jocuri Video din România (RGDA), pe 2018, arătau așa: 188,5 milioane de dolari în venituri, peste 6.000 de angajați, 103 studiouri active și creștere de 19,2% de la an la an.

Industria de gaming date rgda

În vara lui 2020 am mai avut un anunț important: compania românească Amber a fuzionat cu un studio independent din Mexic și caută angajați. Cei noi se vor alătura echipei care deja are peste 500 de oameni.

Pe lângă abordarea de tipul acesta, cu studio local, independent, avem studiourile mari, globale, cum este Electronic Arts. La FIFA, de exemplu, contribuie și o echipă din România. Per total, echipele din EA România sunt formate din ingineri, cu următoarele subcategorii: rendering, broadcast, systems, audio, online, front-end, server, gameplay și altele, artiști 2D și 3D, designeri, project managers, game producers, experience designers, character animators, automation / tools și data science.

Un joc e, de multe ori, mult mai complex decât o aplicație și cu siguranță decât un site. Așa că să vedem cum ia naștere.

Mixul între creație și business

Mihai Sfrijan, Head of Studios în cadrul Amber, mi-a explicat că dezvoltarea unui joc video pornește de la un concept la care se lucrează cu o echipă de pitch creativ. Însă tot demersul este inițiat atât ca un act creativ, cât și ca o nevoie de business. Prima etapă implică o echipă de designeri și, ideal, o echipă de market research care analizează necesitățile sau oportunitățile de piață și ce nișă vor fi acoperite cu acel joc.

Mihai Sfrijan- Amber

"După ce am conturat conceptul și avem un plan clar, intervin și celelalte discipline. Astfel, oamenii din departamentul de programare vor estima cât timp va dura crearea jocului, câți oameni vor lucra, ce tehnologii vor fi folosite, care sunt milestone-urile și provocările. Este benefic ca încă de la etapa de concept să fie implicați cât mai mulți oameni din toate disciplinele, înainte ca producția efectivă să înceapă", a detaliat acesta.

Vlad Anghelahar, Team Leader, Engineering Guild în cadrul Amber, mi-a explicat ce se întâmplă când vine vorba de dezvoltare și limbaje de programare. Pe partea de client, sunt folosite în cele mai multe cazuri C++ și C#. Pe partea de servere, lucrurile sunt mai complexe. Aici variază între Python, Erlang, C# sau Golang. Există o varietate mare de limbaje, pentru că se lucrează cu multe tehnologii noi, iar opțiunile pentru un proiect sau altul se pot schimba de la o zi la alta. Dar jocurile video mai apelează la o componentă importantă: platforma de dezvoltare grafică. Și aici sunt foarte folosite Unity și Unreal Engine. Pentru Unity, dezvoltarea se întâmplă în partea de C#, iar pentru Unreal se întâmplă pe C++.

Vlad Anghelahar -Amber

"Începe să fie populară și partea de visual scripting în care se folosesc tot felul de tool-uri ajutătoare, în care se scrie mai puțin cod direct. Acesta este bun în etapa de prototipare, dar în zona de producție este nevoie, totuși, de un program mai optimizat pentru a stoarce cât mai multă performanță din joc. Cât despre crearea mecanicilor de jocuri, sunt aceleași tool-uri menționate mai sus, dar și tool-uri custom. Asta pentru că, în funcție de nevoi, creăm propriile noastre tool-uri. În afara celor două engine-uri, nu avem ceva foarte standardizat. Altfel spus, există unealta potrivită pentru job-ul potrivit", a adăugat Vlad.

În fine, când vine vorba de backend, standardul acum este în cloud. Amber lucrează cu Amazon Web Service (AWS), dar în trecut a folosit atât Google Cloud, cât și Azure de la Microsoft.

Compania susține că, pe partea de programare, în București, se bucură de o piață destul de evoluată în zona de gaming. "Recrutăm oameni cu experiență de freelanceri, oameni care sunt la primul job în industrie, recrutăm și studenți, căutăm talent cu diferite nivele de experiență. Important este ca aceștia să se potrivească și tehnic și cultural cu profilul nostru. Iar ca pregătire, programatorii trebuie să aibă o înțelegere foarte bună a conceptelor de bază, să aibă o experiență solidă pe unul dintre limbaje și trebuie să aibă deschiderea să învețe ceva nou. Este o industrie care se mișcă foarte repede și limbajul în care lucrăm anul acesta s-ar putea să nu fie limbajul în care lucrăm anul viitor", a mai adăugat Vlad.

Windows e rege când vine vorba de gaming. Dar are relevanță pe ce dezvolți un titlu?

Poți alege, ca utilizator, Windows, macOS sau Linux (cu orice fel de distribuție e mai potrivită nevoilor tale). Când vine vorba de oferta de jocuri, nu prea ai ce alege în afară de Windows. Sau poate macOS și folosești Windows în mașină virtuală. Însă asta e pentru clientul final. Ce folosește un dezvoltator? Și, mai ales, are relevanță?

Alexandru Chica, Studio Technical Director, EA România, mi-a explicat că diferențele sunt minime între sistemele de operare bazate pe o arhitectură hardware asemănătoare. Atât macOS, Windows și Linux rulează, de fapt, cam pe același hardware, cu mici diferențe. "Piața PC-urilor este atât de diversă, încât ne este extrem de dificil să optimizăm experiența pe toate combinațiile posibile de plăci video, RAM, procesoare, periferice etc. Platforma este însă relevantă în cazul consolelor, unde hardware-ul este «fix», nu se schimbă de la an la an, nu-ți poți face upgrade de placă video, de exemplu, dar este diferit (și câteodată foarte diferit) între modelele de console. Provocarea constă în a livra aceeași experiență pe hardware-uri diferite, fără a scrie cod specific pentru fiecare platformă. În general, cu cât apar mai multe particularități în cod pentru o anume platformă, cu atât este mai puțin scalabil în viitor, pe măsură ce apar platforme noi".

Alexandru Chica-EA Romania

În studiul publicat de RGDA, am găsit și un procent aparte: 36% dintre studiourile din România au o abordare multiplatform când vine vorba de cum lucrează efectiv la un titlu. Acum, în 2020, vorbim de câteva platforme consacrate: console video, computere, telefoane. Dar în fiecare dintre aceste categorii pot apărea schimbări de hardware, sau de abordare, care pot influența experiența de joc. De la Alexandru am aflat că orice hardware nou apărut ridică mai întâi întrebarea: "care este experiența ideală pe această platformă?".

"Un exemplu aici poate fi tranziția de la PS3 la PS4 pentru FIFA. A reprezentat un salt tehnologic imens. Gameplay-ul a fost refăcut complet pentru a oferi mult mai mult realism, autenticitate, fluiditate în animații, un AI mult mai complex și multe alte schimbări. Toate astea pentru că, bineînțeles, PS4 era mult mai puternic. Noile platforme oferă mereu șansa asta: regândești niște sisteme ample. Mă refer la console, în principal. Există și alte strategii – pe mobile de exemplu, evoluția hardware-ului are cu totul altă dinamică. Apare un dispozitiv nou, puțin mai puternic, de câteva ori pe an, și nu ar fi practic să avem aceeași abordare", a detaliat Alexandru.

Screenshot din FIFA21, care va fi lansat în această toamnă. Echipa EA din România e implicat în întregul proces de dezvoltare, alături de EA Vancouver

Vlad mi-a explicat că optimizările de hardware vin și de pe partea de design, și din grafică. "De exemplu, în loc să folosim 30.000 de texturi diferite, renunțăm la niște particule care se văd foarte puțin într-un colț al ecranului și câștigăm astfel încă 20 de device-uri pe care rulăm jocul la un frame rate bun", a adăugat acesta.

"Din punct de vedere strict hardware, sunt diferențe foarte mari între platforme. Pe mobile trebuie să ai ai în vedere niște considerente pe care în mod normal nu le-ai avea pe PC sau console, cum ar fi consumul de energie. Utilizatorii de mobile au un timp limitat de joc, iar dacă jocul consumă 40% din baterie în 20 de minute, șansele ca ei să renunțe la joc sunt foarte mari. În plus, apar probleme cu supraîncălzirea device-urilor, care este mai accentuată pe telefoane decât pe PC sau console. Îți limitează performanța jocului, pentru că în momentul în care procesoarele se supraîncălzesc, nu mai funcționează hardware-ul așa cum trebuie, iar jocul va avea de suferit".

Screenshot din modul VOLTA al noului titlu FIFA dezvoltat de EA Romania împreună cu EA Vancouver (Canada)

În cât timp ajunge o idee să fie un produs bun de folosit?

Totul pornește de la o idee, dar perioada de timp în care ea poate fi livrată e crucială. Și n-au fost puține momentele în care o idee a fost excelentă, a fost primită cu entuziasm de piață, iar jocul a întârziat sau n-a mai ajuns niciodată pe piață. Dar de la Mihai am primit și un răspuns încurajator: "Să creezi un joc hyper casual pentru mobile poate dura o lună, dacă ai deja o platformă creată. Dar, în funcție de complexitate, dezvoltarea unui joc pentru mobile poate dura și doi - trei ani. Practica în zona de jocuri mobile este să ajungi într-un stadiu de dezvoltare al jocului cât mai rapid pentru a-ți valida ideea în piață, interesul pentru joc va fi principalul semn care îți va spune dacă merită să continui să investești în el sau nu. Cel puțin nu ai petrecut 3 ani de zile și ai investit milioane de dolari în ceva ce nu funcționează".

Screenshot din jocul PositronX pe care studioul Amber îl va lansa în toamna lui 2020

Rămâne însă o regulă general valabilă: este important să-ți validezi ideea tot timpul. "Marele avantaj în zona de jocuri mobile este că poți verifica diverse aspecte pe parcursul dezvoltării și să găsești un răspuns cât mai repede. Poți verifica multe procese din timp, poți testa mecanicile și core gameplay-ul și funcțile majore ale jocului fără să avansezi foarte mult cu conținutul jocului", a adăugat Mihai.

Iar ideea, odată materializată, are un avantaj: jocurile rareori au granițe. "Jocurile video chiar creează o lume lipsită de granițe. Pornind de la oamenii și echipele care le dezvoltă, care colaborează adesea de pe mai multe continente și fusuri orare, și continuând cu cei care le joacă și leagă prietenii de la distanțe de mii de kilometri, universul jocurilor video este unul liber și destul de unit. Chiar dacă încă se perpetuează diverse stereotipuri despre gameri, mai mult sau mai puțin adevărate, aceștia nu doar că reprezintă o treime din populația planetei, dar sunt și foarte diverși – probabil mulți ar fi surprinși să descopere cât de mulți gameri din generațiile părinților și bunicilor lor există, de fapt, în lume sau cât de mică este diferența între gameri băieți și fete", a conchis Alexandru. "Jocurile video nu fac astfel de diferențe și cred că nici noi nu ar trebui să facem".