Capitol 1 Introducere [302434]
Capitol 1 – Introducere
Începutul jocurilor video a fost între anii 1950 și 1960, ele fiind o simplă curiozitate în lumea calculatoarelor. Din anii 1970, jocurile video au prins o popularitate la o [anonimizat].
[anonimizat] o [anonimizat]: Personal Computers (PC), Console (Xbox, Playstation, Nintendo DS) sau pentru telefoane mobile. [anonimizat] o activitate de petrecere a timpului liber. [anonimizat]-o dezvoltare continuă și câștigurile lor anuale sunt de zeci de miliarde de euro. [anonimizat], fiind un număr tot mai mare de persoane care intră în contact cu această lume.
[anonimizat], care în ultimii ani are parte de o expansiune extraordinară.
În ultimii 7 ani, [anonimizat]-ului, [anonimizat]. [anonimizat], componentele cele mai importante vor fi monitorul și placa video. [anonimizat]:
O grafică mult mai aproape de realitate.
Jocuri mult mai complexe si de toate genurile.
Ușurință de a [anonimizat] a [anonimizat].
Servere dedicate pentru majoritatea jocurile Multiplayer (online).
[anonimizat] (de exemplu pe console este limitat la 30 FPS).
[anonimizat] o [anonimizat]-[anonimizat].
Un rol important pentru jocurile video este scena de eSports (Electronic-Sports) care este într-o continuă creștere de la turneu la turneu.
[anonimizat]. [anonimizat] a crescut datorita celor trei ligi care le avem la noi în țară precum: Electronic Sports League (ESL), Professional Gamers League (PGL) și Arena Cyber League (ACL). [anonimizat] 2004, fiind fondată în Germania.
[anonimizat], care de obicei sunt formate din cinci jucători.
[anonimizat], unele meciuri fiind difuzate la televizor sau comentate în presa scrisă.
[anonimizat]. [anonimizat]. Începutul acestei scene a început prin anii 2000, meciurile fiind urmărite de doar câteva mii de oameni. [anonimizat] a unui joc putem vedea până la 200.000 de persoane care se uită la respectivul meci. [anonimizat] a crescut de la an la an. Dar nu numai numărul de spectatori a crescut, ci și premiile acordate. [anonimizat], a fost în anul 2016 la The International 2016 pentru jocul DotA2, în valoarea de $20.770.640!
Un rol important în eSports îl constituie și platforma de streaming Twitch.tv, care difuzează toate turneele și meciurile competitive care iau loc.
Acest stil de viață, de gamer competitiv, poate fi un job pentru unii. Majoritatea persoanelor care fac parte dintr-un clan profesionist au parte de un salar și sponsorizări.
Chiar și la noi în țara, avem parte de asemenea “angajați”. Unul dintre cei mai importanți, care merită să fie enumerat, este Aliwi Omar. Face parte din scena competitivă de DotA2, iar din anul 2016 este un nou milionar român. În anul 2016, el și echipa sa au câștigat The International 2016, menționat mai sus, terminând turneul pe locul 2, câștigând nu mai puțin de $2.000.000. Se poate observa că jocurile nu mai sunt doar pentru petrecerea timpului liber și relaxare, el putând să fie un stil de viață.
Din cauza tendințelor pieței, îmi propun prin intermediul acestei lucrări, dezvoltarea si prezentarea unui joc pe PC. Jocul se încadrează în categoria Walking Simulator și Rich Story Telling. Jocul urmărește să ofere o experiență celui care joacă. Prin experiență, mă refer că va încercă sa inducă jucătorul într-o stare de relaxare, cu o muzică clasică și lentă în fundal, în timp ce se va explora harta și toate locațiile ei. Fiecare locație (Point of Interest – POI) va avea o poveste ce este narată in engleza (un VoiceOver) și o subtitrare in diferite limbi (Engleza – prestabilit). Accentul este pus pe poveste în acest joc, spunând cum ai ajuns tu (caracterul controlat) să trăiești singur pe o insulă și cum ai participat la sfârșitul lumii care o știm noi.
În primul capitol (Capitol 1) este prezentat, pe scurt mediul de dezvoltare a jocurilor pe PC. Au fost prezentate și tendințele jocurilor video și industrii strâns legate de jocurile video. Voi prezenta un top a celor mai populare jocuri in momentul de față pentru fiecare gen de joc și platforma cea mai folosita pentru jocurile de PC, numită STEAM. Se va putea regăsii și procesul de aplicare a jocurilor video (procesul de Greenlight). În capitol va apărea și motivația utilizatorului de a juca jocuri, în special pentru aplicația prezentată în această lucrare. Am prezentat și niște concluzii despre tipul de joc walking-simulator. Contribuțiile proprii aduse acestei aplicații prezentate vor fi și ele regăsite în acest capitol.
În al doilea capitol (Capitol 2) este o introducere în lumea dezvoltării jocurilor video și se va prezenta tehnologiile folosite pentru dezvoltarea jocului prezentat in această lucrare. Ca și tehnologi, se poate regăsii sistemul de operare Windows, motorul de joc (game engine) Unity si aplicația folosită pentru crearea de modele 3D (Maya). Sa făcut și o comparație între mai multe motoare (game engines) care m-au făcut să ajung la alegerea Unity.
În al treilea capitol (Capitol 3) se va descrie în detaliu toate funcționalitățile jocului si metodele folosite pentru implementarea lor, precum mediul C# și .NET.
În al patrulea capitol (Capitol 4) se va prezenta aplicația cap-coadă, cu toate implementările aduse ei. Se va prezenta harta, jucătorul cu toate setările aduse acestuia, scripturi și o prezentare a implementării fișierelor audio. Am prezentat și procedeul prin care un utilizator poate folosii acest joc.
În al cincilea capitol (Capitol 5) am prezentat pe larg toate scenele care sunt implementate în joc și ce anume conțin ele. Am prezentat și o schemă logică a traseul pe care utilizatorul îl va parcurge prin toate scenele din joc.
În al șaselea capitol (Capitol 6) sunt prezentate concluzii finale, legate de jocul prezentat. Se pot regăsii provocări întâlnite pe parcursul dezvoltării acestui joc și ceea ce doresc să implementez pe viitor asupra sa.
Windows este în prezent cel mai folosit sistem de operare (OS) si totodată cea mai puternică platformă de dezvoltare a jocurilor. Acest sistem de operare se află într-o continua dezvoltare, încât se ofere utilizatorilor si dezvoltatorilor performanțe din ce în ce mai ridicate și noi metode de funcționalitate.
Unele jocuri, indiferent de tipul lor, vor avea niște secrete, foarte bine ascunse. Ele sunt numite de fani, și chiar și de dezvoltatori “easter eggs”. Unele, au durat până la câțiva ani pentru a putea fi descoperite. Unul dintre “easter eggs” care este amuzant și chiar plăcut se află în jocul Halo 3. Secretul se activa o singură dată pe an, în 25 decembrie. În loading screen, apare un inel misterios. Dacă jucătorul va apăsă o combinație de două butoane specifice, va apărea mesajul “Happy Birthday Lauren”. Acest mesaj a fost adăugat de unul dintre dezvoltatorii acestui joc pentru aniversarea zilei de naștere a soției sale. Pentru a fi descoperit acest ”easter egg” a fost nevoie de 7 ani. El nu a fost descoperit de către Lauren, persoana căruia ia fost dedicat acest ”easter egg”, ci un fan al jocului care din greșeală a apăsat acele două taste, la momentul oportun.
Context
Există mai multe genuri de jocuri. Ele sunt: Acțiune, Aventură, Arcade, Casual, Massively Multiplayer Online (MMO), Racing, Role Play Game (RPG), Sport și Strategie.
Aproape fiecare din aceste genuri de jocuri au si o subcategorie.
Acțiune
Acest tip de jocuri care pune accent pe acuratețe, timp de reacție mic si coordonare mână-ochi. În jocurile de acțiune, de obicei, jucătorul controlează un caracter sau avatar care trebuie să navigheze un nivel, să completeze obiective, să se ferească de obstacole și să ia parte in bătălii cu inamici.
Caracterul sau avatarul va avea puncte de viață (Hit Points-HP) care de obicei este 100. Aceste puncte de viață sunt reduse când caracterul este atacat de inamici sau de alte pericole aflate în nivel. Punctele de viață pot fi refăcute prin mai multe metode. Cea mai des întâlnită metodă sunt poțiunile care sunt găsite aleatoriu în nivel sau primite ca și recompensă pentru terminarea unui obiectiv.
Majoritatea acestor jocuri au un sistem de punctaj, fiecare sistem de punctaj fiind diferit de la joc la joc. Cele mai des folosite sisteme de punctare sunt Kill-Death-Assists (KDA) și timpul completării unui obiectiv sau nivel.
Inamicii găsiți au un tipar de mișcare și de acționare, având un drum care îl vor parcurge dus-întors până vor fi eliminați. În jocurile mai noi și mai complexe, inamicii se vor folosi de inteligență artificială să urmărească caracterul sau sa creeze o ambuscadă.
Jocurile de acțiune pot avea un impact pozitiv asupra jucătorilor. Un test făcut de Universitatea din Rochester, New York, arată că oamenii își pot îmbunătăți vederea si timpul de reacție jucând un joc de acțiune numit Unreal Tournament. Studiul arată că testul de vedere, majoritatea jucătorilor au avut o creștere de aproximativ 20% a vederii.
Jocurile care au stabilit nișa și mecanicile acestui tip de jocuri sunt Unreal Tournament, reamintit mai sus, DOOM și QUAKE.
Sub-genurile jocurilor de tip acțiune sunt: Shooters (Fist-Person Shooters și Third-Person Shooters) în care jucătorul ia parte la acțiune de la distanță folosind o armă având nevoie de acuratețe și Fightning care are de obicei la bază lupta corp la corp și mișcări din artele marțiale.
Aventură
În acest tip de jocuri, jucătorul își asumă rolul de protagonist într-un joc condus de o poveste în care se pune accentul pe explorare si rezolvarea de puzzle-uri. O mare parte din aceste jocuri, sunt inspirate din literatură si filme. Toate aceste jocuri sunt concepute pentru a fi jucat în Single Player.
Rezolvarea puzzle-uri nu înseamnă neapărat un puzzle convențional, ci mai degrabă un puzzle pus sub formă unui conținut narativ care jucătorul trebuie să deblocheze bucată cu bucată în timp.
De obicei, mediul înconjurător în aceste jocuri este un mediu fantastic care este schimbat din capitol în capitol pentru a oferii o diversitate jucătorului.
Temele alese pentru poveștile acestor jocuri sunt de obicei drama si comedia.
Sub-genurile jocurilor de tip aventură sunt: Point-and-Click în care jucătorul își controlează caracterul si acțiunile sale printr-un click de mouse. Aceste click-uri fac ca jucătorul să interacționeze cu obiectele din jurul său. Cea mai mare parte a acestor jocuri este colectarea de articole și explorarea. Exploration în care jucătorul resimte povestea prin explorare si descoperire. Acest sub-gen nu au puzzle-uri deloc. O altă denumire pentru acest tip de jocuri poate fi walking simulator (simulator de mers). Puzzle în care se pune accent pe puzzle-uri logice. Fiecare puzzle terminat va debloca alt puzzle cu o dificultate mai mare. Visual Novel sunt de obicei făcute pentru piața din Japonia și pentru fanii culturii japoneze. Acest sub-gen este bazat pe o poveste spusă ca și text și ajutată de imagini statice.
Arcade
Sunt jocuri repetitive, care pun accent pe gameplay si ignoră complet story line-ul. De obicei, aceste jocuri vor avea nivele foarte scurte și simple în care dificultatea va crește constant. Unul dintre cele mai cunoscute jocuri de tip arcade este PAC-MAN.
Casual
Acest tip de jocuri este destinat mai mult persoanelor care se joacă ocazional jocuri pe PC. Ele pot fi de la shootere până la strategii real-time, cu niște reguli simple și puține, fără să consume prea mult sau sa fie nevoie de îndemânare față de alte jocuri. Acest tip de jocuri au cel mai mic cost de producție pentru producător.
De cele mai multe ori acest tip de jocuri sunt făcute sa fie jucate in browser (ca și exemplu avem cunoscutul site Miniclip.com).
De obicei, persoanele care joacă acest tip de jocuri sunt mai în vârstă decât ceilalți jucători și aproape 74% din aceștia sunt de sex feminin.
Massively Multiplayer Online
Acest tip de jocuri sunt doar online, fiind posibilă conectarea a unui număr destul de mare de jucători simultan. Harta este de tip open-world, jucătorul putând sa se plimbe pe toată harta fără niciun fel de condiții.
În toate jocurile MMO există o economie virtuală, de obicei bazată pe monede sau gold, care pot fi primite ca și recompensă pentru terminarea unor misiuni sau pur și simplu gasiti în diferite zone. Pe lângă economia virtuala a jocului, există și mecanica de negociere-schimb (trade).
Pilonii acestui tip de jocuri este World of Warcraft și RuneScape. Există o comunitate foarte mare de jucători a acestui tip. World of Warcraft, este un joc lansat in 2004 de compania Blizzard din USA. În anul 2010, acest joc avea 12 milioane de conturi active iar în anul 2015 avea 5.5 milioane de conturi active. Încet, lumea renunță la acest tip de jocuri, orientându-se spre altele.
Racing
Un tip de joc în care jucătorul ia parte la o cursă fie pe pământ fie pe apă sau în aer.
Jucătorul trebuie sa parcurgă un traseu și să termine pe un loc cât mai înaintat, de preferat locul I.
În această categorie pot intra și simulatoarele, care replică manevrarea autovehiculelor cât mai aproape de realitate. De obicei în simulatoare vor apărea ligi de curse licențiate și circuite din viața reală.
Unul dintre cele mai jucate jocuri din acest tip de jocuri este DiRT:Rally care este un simulator al campionatului WRC.
Role Play Game
Acest tip de joc presupun ca jucătorul să își asume un caracter și să acționeze ca și cum ar fi o realitate. Acest tip de joc poate fi găsit și în jocurile de societate, nu numai în cele PC.
Este un tip de joc destul de simplist, fiecare joc având un set de reguli, diferite de la joc la joc.
Cel mai jucat joc din acest gen este Dungeon & Dragons, care se află și pe PC dar și ca joc de societate.
Sport
Sunt jocuri care simulează practicile unui sport. Majoritatea sporturile existente au fost recreate în jocuri video (sporturi de contact, de echipă, de teren sau sporturi extreme). Majoritatea acestor jocuri încearcă să simuleze practicarea acelui sport. Unele din ele, pun mai mult accent pe strategie și management.
Majoritatea acestor jocuri vor avea atleți și echipe din viața reală, licențiate.
Ele nu sunt open-world, jucătorul fiind aceste jocuri iau parte pe un stadion sau într-o arenă cu limite clare. În fundal se va auzi un comentariu “live” al meciului sau cursei prin clipuri audio înregistrate.
Se poate juca fie cu un singur jucător din echipă sau jucătorul putând să controleze toți jucătorii, inclusiv antrenorul.
Jocul legendă a acestui tip este cunoscutul FIFA, având ca referință fotbalul. În fiecare an va apărea un nou joc FIFA cu echipele actualizate și îmbunătățiri grafice. Iar pentru cei din America, NHL și NFL.
Strategie
Se pune accentul pe planificarea fiecărei mișcări. Sunt strategice, tacticale și câteodată este nevoie de logică. Pe un plan secundar putem spune că se află explorația și provocările.
Conflictele în acest tip de jocuri au parte între mai multe grupuri care au denumirea de units. Există multe căi prin care jucătorul poate ajunge la terminarea obiectivului și câștigarea meciului.
Jucătorul comanda unitățile sale prin click-uri de mouse. Comenzile găsite sunt: Mișcă, Atacă, Stop și păzirea unui punct. Există și comenzi mai complexe, cum ar fi patrularea.
Există mai multe tipuri de unități, fiecare clasă având roluri și abilități diferite. Există unități specializate pe atacurile la distanță, atacuri corp la corp sau prin vrăji.
În conflicte, deșii sunt într-o lume fantastică, se vor regăsii unele elemente din viața reală, cum ar fi flancarea, diversiunea sau distrugerea resurselor vitale pentru un imperiu. Terenul unde ia parte conflictul este important în strategie, unde unitățile pot pierde sau să câștige un avantaj. Unele jocuri au început să adopte mecanicile de diplomație și spionare.
Jocurile de tip strategie, în cele mai multe cazuri vor lua parte în trecut sau in viitor.
În majoritatea jocurile de acest tip va exista o economie și resurse. Înseamnă că unele jocuri pot fi niște provocări economice. Resursele pot fi folosite pentru a construi unele clădiri sau creșterea populației. Se pot face și unele cercetări în schimbul unor resurse care vor aduce beneficii orașului/imperiului sau unităților.
Tiparul acestor jocuri este o viziune a jucătorului de sus (top-down view), pentru o viziune mai amplă a câmpului de bătălie. Interfața jocurilor este complexă, afișând o fereastră separată pentru economie și resurse, statistici și timpul petrecut/ora in-game.
Cele mai importante jocuri pentru acest tip sunt Civilization (pentru cele din trecut) și Starcraft (pentru cele care iau parte în viitor).
1.2 Platforma de jocuri Steam
Cu un număr de peste 12.000.000 utilizatori activi zilnic, putem spune cu ușurință că STEAM este cea mai folosită librărie online de jocuri. Majoritatea jocurilor pe PC sunt valabile pe Steam, excepție făcând jocurile unor firme care au propria librărie (de exemplu EA – cu platforma numită Origin).
Figura 1: Pagina Principala a platformei Steam
Interfața platformei este destul de simplă și intuitivă. Pe prima pagină a aplicației vom putea vedea jocurile recomandate pentru noi, în funcție de ce jocuri jucăm (de exemplu dacă jucam multe jocuri tip Shooters – vom avea recomandări pentru jocuri de acel tip). Mai jos vor apărea ofertele la unele jocuri, unele jocuri având parte de unele reduceri. Mai jos vom găsi câteva liste cu jocuri, precum: jocurile noi apărute și populare, cel mai des cumpărate, jocurile care urmează să apară și o pagină cu jocurile care sunt la reducere.
Figura 2: Librăria de jocuri a platformei Steam
Pe a doua pagină, numită librărie, vom găsii o listă cu jocurile noastre, care sunt legate de cont. Fiecare joc va avea un spațiu mare de detaliere, precum orele petrecute în joc, prietenii care se joacă în acest moment și noutăți despre acel joc, care de obicei sunt publicate de dezvoltatori. Mai jos pot apărea și screenshoturile captate în jocul respectiv, având opțiunea de a le publica pe profilul nostru de Steam sau pe paginile de socializare (precum Facebook).
Pe a treia pagina regăsim comunitatea, care ne va afișa noutăți despre majoritatea jocurilor, recenzii la jocuri, cele mai votate screenshoturi și unele ghiduri care sunt populare în acel moment.
Iar a patra pagină, este o pagină în care multă lume pune timp și migală, încât să arate bine. Putem spune că această pagina, adică Profile, are unele trăsături cu pagina personală a fiecăruia persoane de facebook. Pe profil regăsim o poză de profil, un nume, locația sa, grupuri favorite, joc favorit. Ceea ce mai putem regăsi pe profil este un urmăritor de joc, care va fi afișat pe profilul nostru cu toate jocurile jucate recent și timpul petrecut în ele. În josul paginii de profil găsim secțiunea de comentarii în care orice vizitator poate lăsa un comentariu. Profilurile oferă și un sistem de leveling. Cu cât nivelul profilului nostru este mai mare, vom avea parte de mai multe secțiuni de completat, pentru a face profilul mai complet. Se pot adăuga pe fundal poze de tip wallpaper din anumite jocuri. Acele poze care pot fi utilizate ca și fundal sunt primite din completarea unui joc.
Cu un rol de înfrumusețare a profilului, există un sistem de insigne (badge-uri) care sunt primite la terminarea unui joc. Fiecare insigna va avea un titlu și o imagine descriptivă în stânga sa.
Figura 3: Pagina de profil a contului de Steam
Oricare joc care se află pe Steam, va avea o pagină de Store, unde se pot regăsii detalii precum prețul, o descriere a jocului, ultimele noutăți aduse jocului, prietenii care dețin acel joc, recenzii și desigur, cerințele necesare pentru rularea aplicației.
Figura 4: Pagina de magazin a unui joc
Recenziile create de jucătorii unui joc pot fi negative (reprezentate printr-un thumbs down) sau pozitive (reprezentate printr-un thumbs up). Sistemul de recenzii prin stele sau prin notă este inexistent. În recenzie, utilizatorul nu are limită la cuvinte/caractere. Recenziile au un rol foarte important pe Steam. Dacă un joc are un număr mare de recenzii pozitive, jocul va fi vizibil mai multor persoane drept recomandare.
Fiecare joc va trebui să prezinte un trailer al jocului și minim 3 screenshoturi din joc, ne-editate pentru o imagine cât mai reală a jocului.
Descrierea folosită pentru joc este menită să informeze utilizatorul care urmează să cumpere acel joc și să aibă o idee despre ce este jocul.
La cerințele recomandate pentru rularea jocului, vom găsii toate detaliile de care avem nevoie pentru a ști dacă este posibilă rularea sa pe un terminal. Găsim cerințe pentru placă video, procesor, memorie RAM, spațiu de stocare și altele. Acest spațiu trebuie completat neapărat de dezvoltator, cu detaliile cât mai realiste, încât utilizatorul să știe dacă este posibilă rularea jocului.
Steam oferă funcția de returnare a banilor după ce un utilizator a cumpărat un joc sau o aplicație. Sunt niște condiții care trebuie îndeplinite, totuși. Jocul trebuie să fie cumpărat în ultimile 20 de zile de la aplicarea cererii și să nu aibă mai mult de două ore jucate. Pentru dezvoltatorii de jocuri scurte, care oferă un gameplay scurt, mai puțin de două ore, această funcție de returnare a banilor nu este tocmai benefică, mulți dintre utilizator cerând banii înapoi după ce au terminat jocul.
Sistemul de friends implementat în Steam este destul de complex. Oferă funcții precum voice și text chat (plus emoji), funcție pentru a invita anumite persoane din lista de prieteni in jocuri, pentru formarea de echipe.
Figura 5: Fereastra de chat a platformei Steam
Din punctul de vedere al dezvoltatorilor, majoritatea funcțiilor de care are nevoie sunt aflate pe site-ul Steam și nu în client. Site-ul oferă tot felul de detalii pentru dezvoltatori, precum editarea paginii a jocului pus la dispoziția jucătorilor (preț, informații, poze, clipuri) dar și funcția de finanțe, unde dezvoltator poate vedea cu ușurință toate detaliile financiare asupra jocului (câte persoane au cumpărat, din ce regiune, profitul făcut pe un anumit joc, câte persoane au jocul la wishlist și multe alte detalii).
Figura 6: Funcții de edtiare a paginii de magazine unui joc
Orice dezvoltator își poate publica jocul său propriu pe platforma Steam. Există unele etape pe care un dezvoltator va trebui să le facă, încât jocul său să fie valabil prin Steam.
Plătirea unei taxe de 100€: această taxă ne va permite să publicăm jocul pe Greenlight, o platformă secundară unde utilizatorii votează dacă le place jocul prezentat, printr-un vot pozitiv sau negativ.
Prezentarea jocului pe Greenlight: dezvoltatorul va publica un trailer și un video cu gameplay-ul din joc, plus niște screenshoturi, încât cei care votează să aibă o idee despre ce este jocul. Se va face o prezentare a sa, cu funcțiile jocului și obiectivele sale. Utilizatorii pot lăsa întrebări sau nelămuriri în secțiunea de comentarii, unde dezvoltatorul le poate răspunde fiecăruia. Dacă jocul a luat un număr mare de voturi negative, însemnând că utilizatorii nu sunt curioși sau pur și simplu nu le place acest joc, jocul nu va putea fi publicat pe Steam. În caz contrar, se va trece de Greenlight, și va începe editarea paginii de magazin (Store Page).
Completarea actelor și documentelor necesare pentru publicarea unui joc: primul pas după ce jocul este votat pozitiv pe Greenlight, vom fi puși să completăm unele acte și detalii bancare. Fiecare țară are documentele ei, în funcție de TVA-ul din țara respectivă. Steam va sustrage 30% din veniturile făcute din joc, iar TVA-ul (în cazul Romaniei) este de 19%. Așadar, dezvoltatorul va avea doar 51% din profitul făcut pe Steam. Banii sunt transferați (în moneda țării contului scris în acte) la fiecare început de lună.
Editarea paginii de magazin (Store Page): Dacă sa ajuns în acest stadiu, jocul va fi publicat pe Steam și va putea fi cumpărat de oricine, după ce s-au adus modificările necesare. Aici, dezvoltatorul va trebui să facă o descriere mai pe larg a jocului, cu toate funcțiile implementate în joc, să atașeze bannere și logo-uri pentru a fi recunoscut mai ușor. Pe lângă acestea, mai trebuie adăugate și un trailer cu jocul plus screenshoturi din joc. Mai trebuie adăugat și prețul la care se dorește vânzarea sa. Jocul poate fi și gratis, daca dezvoltatorul decide asta.
Acceptarea editărilor aduse de către Steam: După ce dezvoltatorul a făcut toate modificările de care a fost nevoie pentru ca jocul său să apară pe Steam, trebuie așteptat între o zi sau două pentru aprobarea lor.
Încărcarea jocului propriu-zis: După ce pagina de magazin a jocului (Store page) a fost acceptat de către Steam, dezvoltatorul va fi nevoit să încarce fișierul .EXE (plus restul fișierelor rezultate din exportarea jocului din game engine). Din nou, va fi nevoie de aprobarea executabilului de către Steam, încât jocul să fie funcțional.
Aprobarea jocului propriu-zis: Dacă s-a ajuns în acest stadiu, înseamnă ca executabilul jocului a fost funcțional, fără a întâmpina niciun fel de probleme la rularea sa. După aprobare, dezvoltatorul va introduce data în care dorește să publice jocul într-o versiune live pe Steam.
Figura 7: Procedeul de publicare a jocului pe platforma Steam
1.2.1 Platforme asemănătoare cu Steam
Mai există platforme asemănătoare cu Steam, oferind aceleași funcții. Ele nu au o gamă largă de jocuri valabile pe ele, decât cele dezvoltate de ei. Iar acesta este unul dintre motivele de ce nu au un succes așa mare, precum Steam.
Principalele platforme care există pe lângă Steam sunt: battle.net (oferit de către cei de la Blizzard Entertainment), Origin (oferit de către cei de la EA) și uPlay (oferit de către cei de la UbiSoft).
Pentru a juca un joc de la firmele enumerate mai sus, vom avea nevoie de platforma lor, având și rol de protecție (un anti-cheat implementat). Funcțiile care nu se regăsesc pe aceste platforme față de Steam este complexitatea editării paginii de profil și abilitatea unui dezvoltator să-și adauge propriul joc pe acea platformă.
Figura 8: Interfața platformei Origin
Figura 9: Interfața platformei battle.net
Figura 10: Interfața platformei uPlay
Toate cele trei, au o interfață minimalistă, unde icoanele jocurilor ocupă o mare parte a ferestrei. Dând click pe un joc putem vedea toate noutățile în jocul respectiv, incluzând updateurile făcute jocului.
1.3 Motivație
Jocurile de tipul walking simulators au aceeași trăsătură. Țintesc să inducă jucătorul într-o stare de relaxare (prin diferite metode) și să lase jucătorul să afle și să asculte povestea personajului care îl joacă. Aproape toate jocurile de acest tip vor avea și o poveste, fie ea spusă în formă narativă fie prin subtitrări. Poveștile pot fi inspirate din filme sau cărți, fie scrise de cineva cu o minimă experiență special pentru joc. De obicei se urmărește ca povestea să fie de tip dramă sau romanță, rar fiind o poveste Sci-Fi sau de acțiune pură.
Din punct de vedere al marketingului, dezvoltatorii de jocuri, în special de tip walking-simulators trebuie să ceară un preț corect pentru acest tip de joc. Este o idee simplă, dar mulți dezvoltatorii greșesc la acest capitol. Jocurile de tip walking-simulator nu sunt făcute pentru a avea un preț mare de vânzare, deoarece acest tip de jocuri este destul de scurt, până în 5 ore de gameplay.
Un preț maxim pentru un joc walking-simulator, ar fii în jurul a 10-15€, în cazul în care este de o calitate bună, nelipsind nimic din joc. Trebuie analizată și piața, dezvoltatorul să știe de la început pentru cine se va adresa acest tip de joc. Majoritate oamenilor care vor să experimenteze acest tip de jocuri, nu vor fi dispuși să ofere mai mult de 10-15€ pentru un joc a cărui durată este de aproximativ 4 ore.
Jocurile trebuie să aibă acel “ceva” care vor face jucătorul să revină la joc, dorind să continue. Nici jocurile de tip walking-simulator nu fac excepție la partea de motivare a jucătorului. Aceste jocuri fiind de o durată mai scurtă. Dorind să facă jucătorul interesat de acest tip de jocuri, chiar prin lipsa gameplay-ului, chiar și cu o poveste captivantă, jocul tot va trebui să aibă un element în plus, care să îl țină pe jucător captivat. De aceea pentru acest tip de jocuri, combinația de poveste captivantă, un mediu înconjurător captivant, interacțiunea cu elementele aflate în mediul înconjurător și o linie melodică care se potrivește cu toate aceste setări, este combinația perfectă, care va face jucătorul să continue să joace jocul respectiv, încercând să îi ofere o experiență.
Melodie care se află de obicei pe fundal, de obicei va fi clasică, melancolică, potrivită cu mediul înconjurător unde jocul ia loc. Rolul liniei melodice este de a nu lăsa o liniște completă în timp ce jucătorul se deplasează de la un punct de interes la altul. Poate avea și rolul de o accentuare a stării de relaxare pe care jocul încearcă să o inducă.
În continuare, voi descrie câteva exemple de jocuri tip walking simulators care au dat naștere acestui tip.
Dear Esther (2012): Developat de The Chinese Room, acest joc ia parte pe o insulă cu o climă ploioasă, unde o voce misterioasă citește fragmente din povestea jocului. Jucătorul controlează caracterul doar prin mișcarea sa, plimbându-se pe toata harta. Acest joc a avut un succes masiv, având un uimitor număr de vânzări (aproape 900.000). Jucătorul își va pune niște întrebări, care nu îi vor fi răspunse direct, ci trebuie ascultate atent din poveste si puse cap la cap. La început, jucătorul va crede ca este un personaj viu, care nu știe de ce este singur sau de ce tot el este și naratorul. La final, va afla că el de fapt joacă rolul unei “fantome”, care povestește ce a pățit și cum a ajuns așa.
The Witness (2016): Acest joc este puțin mai diferit față de cel prezentat anterior. În The Witness se pune accentul mai mult pe explorat, decât pe ascultarea unui povesti. Apare și un element nou in acest joc, puzzle-urile. Grafica găsită în acest joc este și ea diferită față de majoritatea jocurilor, fiind o grafică de tip low-poly sau “cartoonish”. Puzzle-urile găsite în acest joc sunt destul de grele, dar asta nu înseamnă că nu sunt corecte sau rezolvabile. Un concept regăsit la aceste puzzle-uri este dacă nu te simți pregătit, poți și chiar ești încurajat să pleci de lângă acea problemă. Fiecare element de pe hartă, copacii, pietrele, după un timp se vor simți că au fost puse acolo cu un scop anume sau că ascund un indiciu important pentru rezolvarea unui puzzle. Asta încearcă și jocul să ne învețe, să fim mult mai atenți la detalii, să ne întrebăm dacă ceea ce am găsite ne poate ajuta să continuam explorarea noastră sau să privim lucrurile din altă perspectivă. De multe ori, răspunsul la un puzzle este pur și simplu să plecăm de lângă el și să ne întrebăm ce anume am omis pe drum. Pentru a descoperii cine a locuit pe acea insulă, cere răbdare din partea jucătorului. Dezvoltatorii spun că dacă dorim să aflăm toate indiciile și fișierele audio ascunse, ne va trebui în jur de 80-100 de ore de joc, ceea ce este foarte impresionant pentru un joc de genul acesta.
The Stanley Parable (2015): Acest joc este puțin mai unicat fața de celelalte walking-simulators. Jucătorul va controla un caracter iar vocea narativa îl va îndruma pe jucător încotro să meargă, doar ca ceea ce naratorul spune este total greșit, jucătorul fiind nevoit să facă fix opusul. La început pare simplu, dar spre sfârșit indicațiile devin mai complicate și cu subînțeles. Acest joc este un hibrid între walking simulator și un puzzle game. Jocul ia parte într-o clădire de birouri, jucătorul trezindu-se la biroul său, dar toți colegii săi au dispărut. Fiecare alegere făcută de jucător va duce la un alt final al jocului. Partea interesantă este că un mediu înconjurător destul de mic și limitat, poate avea atâtea moduri de finalizare a jocului. Bazat pe acțiunile sale, jucătorul poate fi luat peste picior de către narator, jocul fiind o combinație de un joc amuzant și un puzzle.
The Vanishing of Ethan Carter (2014): Fiind unul dintre cele mai complexe jocuri de acest tip, The Vanishing of Ethan Carter este considerat de multe persoane cel mai bun joc de tip walking simulator, având un premiu la British Games Academy Awards. Oferă puzzle-uri și interacționarea cu elementele aflate pe hartă. Mediul înconjurător și obiectele aflate în nivel au fost developate cu tehnologia fotogrammetriei, totul fiind scalat și “desenat” ca și în realitate. Povestea jocului ia parte într-o zonă rurală, în care caracterul principal, controlat de jucător, este un detectiv pe urmele unui copil pierdut. Abilitatea lui este de a vedea în trecut, putând să pună cap la cap memoriile fragmentate. Aceste puzzle-uri au un rol mare în acest joc. Mediul înconjurător trebuie explorat destul de bine, el oferind detalii mici dar care vor ajuta mult în rezolvarea cazului (de exemplu o frânghie aruncată lângă drum).
What Remains of Edith Finch (2017): Un joc nou apărut dar cu recenzii destul de bune date de jucători. Acest joc ia parte într-o casă din Washington și spune povestea familiei Finch. Jucătorul joacă rolul lui Edith, ultima fată a familiei și ascultă povești legate despre istoria familiei sale și încearcă să înțeleagă de ce ea este ultima rămasă. Fiecare poveste spusă va sfârșii cu moartea unui membru din familie. Dezvoltatorii acestui joc spun că mesajul care încearcă jocul să îl transmită este de a ne face să ne simțim umili și uimiți despre lumea vastă și necunoscută din jurul nostru. Casa în care ia parte jocul este ca și un labirint, în care jucătorul va fi ghidat încât să nu se piardă. Fiecare poveste spusă va avea o experiență de gameplay diferită. Cum fiecare poveste se termină cu moartea unui membru din familie, este destul de plăcut să vedem și să auzim fiecare parte a poveștii care este plină de viață și momente fericite. Un punct interesant al acestui joc este felul cum moarte fiecăruia membru din familie este legată de ceilalți membrii din familie. Este un mozaic frumos și inconfundabil, care dă viață jocului într-un anume fel, chiar dacă la final apare moartea tragică a unei persoane.
Meadow (2016): Un walking-simulator în care jucătorul va juca rolul unui animal într-o pădure. Jocul acesta nu încearcă sa spună o poveste sau să ne pună pe gânduri, punând un accent mare pe explorare. În joc sunt peste 9 tipuri de animale pe pământ, în apă sau în aer. Animalele pot “comunica” între ele prin diferite metode, fiecare animal spunându-și povestea sa și pericolele prin care trece zilnic, jucătorul putând să treacă prin acele experiențe. În joc nu vor exista prădători de care trebuie să ne ferim, lăsând jucătorul să facă ce dorește el. Mediul înconjurătorul este interactiv și realistic. De exemplu un pui de urs se va putea să miște unele pietre mai mici, pe când alte animale (de exemplu o broască) nu va putea să facă asta. Și în acest joc vom regăsi o linie melodică în fundal, care încearcă să ofere o stare de calm și o atmosferă aparte. Cu cât explorăm mai mult cu un anume animal, vom deschide niște expresii pe care doar acel animal îl va putea face, drept recompensă pentru timpul petrecut cu acel animal. Multe persoane consideră acest joc drept un joc bun, fiind unicat. Nu multe jocuri lasă jucătorul să ia rolul unui animal într-o pădure și să interacționeze cu alte animale. Jocul va avea toate anotimpurile, schimbându-se de la oră la oră.
Firewatch (2016): Un joc lansat în 2016 de compania Campo Santo, Firewatch a avut parte de recenzii foarte bune din partea celor care l-au jucat. Mulți consideră ca acest joc ar trebui să fie standardul jocurilor de tip walking-simulator/adventure. Povestea din acest joc ia parte într-o pădure în mai multe zile de vară. Fiecare zi este un capitol din poveste. Acest joc are și el de asemenea funcția de ciclu noapte-zi. Povestea este spusă sub forma unor conversații radio între caracterul care este controlat de jucător și mai o voce a unui caracter feminin, pe care nu îl cunoaștem. Chiar de la început, putem să observăm că relația celor doi este destul de reală, fără să avem parte de o imagine vizuală a celor doi. Jucătorul, dacă dorește să interacționeze cu celălalt caracter (Delilah) o poate face destul de simplu, folosind un walkie-takie. Ea va avea o replică tot timpul, încercând să te ajute să parcurgi traseul sau să spună o mică poveste care a avut parte în locul în care te afli. Povestea de spatele acestui joc este foarte bună, fiind tensionată, înfricoșătoare și amuzantă, câteodată povestea putând fi toate cele trei feluri la câteva minute depărtare una de alta. Dacă există cărți care ne fac să dam pagină cu pagină, fără să ne oprim, încercând să aflam toata povestea, acest joc poate face parte din acea categorie.
Everybody’s Gone to The Rapture (2016): Jocul ia parte într-un sat englezesc, unde locuitorii acestuia încep să dispară unul câte unul. Jurnale audio, interacțiunea caracterelor și nararea poveștii prin mediul înconjurător prin găsirea de indicii, fac împreună un joc fantastic cu o poveste misterioasă. În timp ce jucătorul va juca acest joc, el va cunoaște mai multe caractere principale, și va arăta cum fiecare caracter acționează într-un scenariu unde toată lumea dispare în fiecare zi. De la un preot, putem vedeam gândirea mai religioasă, căruia nu îi este frică, sau un vizitator din America, care este aflat la kilometrii distanță de casa sa. Fiecare caracter are modul său unic de a trăi în aceste momente. Deși jocul nu te va obliga să faci lucrurile în anumită ordine, el te va ghida în caz că te vei pierde și nu știi de unde să mai continui. Jocul pune accent pe explorare, având toată harta la dispoziție pentru aflarea secretelor.
Gone Home (2013): Locuințele pot spune cele mai multe povești. Despre persoanele care locuiesc acolo, despre orice zgârietură făcută pe un dulap, fiecare magnet aflat pe frigider, pozele deteriorate sau cănile ciobite, iau parte la istorie cu familia care a locuit în acel loc, cu amintiri bune, voioase dar și acele amintiri mai neplăcute. Acest joc oferă jucătorului o casă care trebuie să o exploreze. Pe parcurs ce este explorată, ea va scoate la iveală poveștile persoanelor ce au locuit cândva în acea casă. O poveste de genul este destul de intimă și sinceră. Caracterul care este controlat este una dintre cele două fiice ale familiei ce locuia în casă. Este ușor să uiți că este vorba despre un joc la urma urmei, totul fiind realist, chiar și povestea. Jocul se bazează mai mult pe amintirile găsite în casă (poze, scrisori, cărți poștale, casete, discuri). Ceea ce oferă acestui joc un aer de original și de realism este stilul în care sunt prezentate amintirile, toate fiind amintiri prin care orice adolescent a trecut, nefiind ceva de stilul fantastic. Pe scurt, prezintă povestea unei familii simple, în deosebi povestea fetei (prietenele sale, scrisorile sale, muzica ce o asculta și alte amintiri).
1.4 Concluzie
Studiind aceste exemple menționate în subcapitolul anterior, se pot observa niște trăsături comune care pot definii experiența din jocurile de tip walking-simulators.
În toate aceste jocuri, jucătorul va fi singur într-un mediu sigur, care nu îl poate rănii, așa că funcția de “moarte” nu există în acest tip de jocuri. Starea de singurătate indusă de joc are ca și scop să induce jucătorul într-o stare curiozitate și să își pună întrebări despre cum s-a ajuns în acest stadiu.
O altă trăsătură a acestui tip de jocuri este povestea. Ea poate fi spusă printr-o voce narativă (voice over), prin subtitrări sau prin ambele modalități. De multe ori, povestea este una dramatică sau de dragoste încercând să ofere jucătorului o stare de spirit.
Un accent destul de mare se va pune și pe medium înconjurător, încercând conțină detalii mai multe față de alte jocuri, încât jucătorul să îl exploreze și să interacționeze cu el.
Termenul de “walking-simulator” poate fi adresat și jocurilor de acțiune de exemplu, dacă o mare parte din acel joc este de a mers/alerga pe distanțe mari.
Termenul de “walking-simulator” a luat naștere printr-o glumă, inițial. Acesta a fost adresat unor jocuri (precum DayZ) în care o mare parte a jocului, jucătorul trebuia pur și simplu să alerge. De la acea glumă, mulți fani a acestui mod au “îmbrățișat” acest termen și a fost folosit ca un termen ce descrie jocurile de genul acesta. Cu puțin timp în urmă, acest termen a devenit oficial și folosit pe ca și o categorie de jocuri.
Un joc bun de tipul walking-simulator, trebuie să facă jucătorul să nu simtă că obiectivul principal al jocului este de a merge. Jucătorul va trebui să fie captivat de poveste și de mediul înconjurător, mersul fiind ceva natural de făcut, fără a se simți obligat.
Acest tip de jocuri sunt pentru jucătorii cărora le place să caute adevărul și să afle misterul. În spațiul proiectat cu obiecte ascunse, misterioase și secrete interpretabile, mecanicile valabile sunt de a explora, descoperii, a deschide și a explora mai mult. Actul virtual de a merge, devine ceva mai mult, un angajament cu povestea, făcând jocul să prindă viață.
Cum în ultimul timp, popularitatea cărților a scăzut față de anii trecuți, iar jocurile video devenind din ce în ce mai populare, în special în fața tinerilor, o implementare a acestui tip de jocuri ar putea fi destul de benefică pentru toată lumea. Mă refer la faptul că autorii de cărți sau nuvele, pot lucra împreună cu dezvoltatorii de jocuri pentru un mod mult mai ușor și plăcut de a transmite pe cale digitală povestea lor.
1.5 Contribuții proprii
În scopul realizării acestei lucrări am dezvoltat un joc video 3D pentru PC-uri, în game engine-ul Unity, unde jucătorul preia controlul unui caracter masculin, în perspectiva first person (personajul va observa lumea ce îl înconjoară prin ochii caracterului). Caracterul se va afla pe o insulă pustie și necunoscută numită Helgoland.
Harta creată este de aproximativ 10 km care conțin peste 25 de locații de interes (POIs – Point of Interests) precum sate părăsite, peșteri, căi ferate ș.a.m.d. Jucătorul își va petrece timpul în joc căutând aceste locații. Fiecare locație va spune o poveste, povestea naratorului și a personajului principal din joc.
Prin schimbarea vremii, a ciclului zi-noapte, jucătorul este introdus într-o lume căruia în tehnici de game development, i se spune imersiune.
Prin crearea unei povești interesante și a unor locații cu un aspect impresionant, naște curiozitatea jucătorului și dorința de a afla toată povestea și a găsi secretele insulei pe care el se află.
Povestea este cea care încearcă să mențină jucătorul activ, curios și să joace în continuare. Povestea jocului are 25 de fragmente pe care jucătorul trebuie să le descopere. Povestea fiind un hibrid sau mai bine spus o combinație între mai multe genuri – dramă, psihologică și polițistă, cu elemente fantastice, aprinde curiozitatea jucătorului care automat dorește să afle toate părțile lipsă din poveste. Încă din prima replică, atât prin subtitrare și voce, jucătorului îi este prezentat caracterul principal și motivul pentru care el se află pe insulă, singur, departe de civilizație.
Din punct de vedere grafic, jocul arată bine, pentru tehnicile folosite în anul 2017. Din orice punct al hărții se pot vedea 2 sau 3 puncte de interes, fie un deal cu copaci căzuți și pietre, sau ruinele găsite pe insulă.
Iluminarea, texturile și modelele foarte detaliate fac ca Oracle (numele jocului), să fie destul de apropiat de jocurile făcute de firmele cele mai mari din domeniu. Atenția la detalii, sunete, camera și iluminarea în combinație cu povestea și vocea actorului, stârnește curiozitatea jucătorului și dă senzația că jucătorul chiar se va afla în acel loc și trăiește viața personajului principal. Pe parcurs, jucătorului îi sunt introduse caractere noi și relațiile dintre acestea cu personajul principal.
În comparație cu alte jocuri de pe piață, Oracle oferă o hartă de aproximativ 3 ori mai mare față de altele și un tip de joc între 4 și 5 ore. Jocul iese în evidență prin grafica de generație nouă, realism, efectul de noapte-zi și elementele fantastice din poveste.
Modul în care am atins acest obiectiv a fost scrierea unor scripturi în limbajul de programarea C# precum declanșatoare de sunete în anumite poziții de pe hartă care declanșează o voce narativă (voice over) și o subtitrare. A mai fost creat un script pentru o “librărie” audio unde sunt introduse toate vocile narative. Când o voce narativă a fost declanșată și s-a terminat, fișierul audio cu acea voce va fi distrus, încât jucătorul să nu asculte de mai multe ori același sunet. După distrugerea fișierului audio, în următoarea locație se va rula următorul fișier audio, pentru continuarea poveștii.
Vocea narativă este în engleză și a fost înregistrată într-un studio folosind un microfon profesional.
În tot timpul jocului, în fundal se va reda o melodie în surdină, clasică care încearcă să relaxeze jucătorul și să ofere o stare plăcută în timp ce jucătorul explorează.
Sunetele de sărituri, de pași și de bătăi ale inimii sunt sample-uri gratis de sunete generice.
Subtitrările sunt poze de tip .png cu un fundal negru și text scris în culoare albă pentru vizibilitate. Ele vin în mai multe limbi, precum germană, rusă și chineză.
Subtitrările vor avea un efect de fade când ele vor apărea sau dispărea, numit efect de fade-in sau fade-out.
Figura 11: Prezentare menu
Implementarea jocului pe Steam a fost făcută respectând pașii scriși amintiți mai sus.
Figura 12: Procedeul pentru implementarea jocului pe Steam
Plătirea taxei de Greenlight: Am plătit taxa aferentă sistemului de voturi numit Greenlight, în valoare de 100€. Am primit accesul la platforma Greenlight, încât am putut să creez o prezentare nouă, în care prezentam jocul acesta.
Prezentarea jocului: Am încărcat 10 screenshoturi, capturate direct din joc, fără a le edita sau aduce alte modificări. Pe lângă aceste screenshoturi am adăugat și două fișiere video. Unul dintre ele un trailer, care era o prezentare în mare a harții și mediului înconjurător, iar al doilea video era un clip cu gameplay real înregistrat din joc, unde am arătat și o mică bucată din poveste plus nararea ei.
Voturile pozitive: După aproximativ trei săptămâni, și aproape 1000 de voturi pozitive pentru joc, și doar 150 voturi negative, jocul a fost în sfârșit acceptat!
Completarea documentelor: În acest stadiu am fost obligat să completez niște documente și informații despre mine și firmă (dacă era cazul), precum numele meu, numele companiei (dacă este cazul), CNP, CUI (dacă este cazul) și contul bancar (IBAN).
Editarea paginii de magazin (Store Page): Pe pagina de magazin, trebuia să pun bannere și logouri descriptive jocului pentru a fi mai vizibil pe pagina principală de la Steam. Am adăugat o descriere despre joc și ce anume este el, care anume sunt obiectivele din joc și care este scopul său. Am făcut o mică descriere a hărții, făcând o comparație cu alte hărți din jocuri asemănătoare. Am mai adăugat taguri pentru toate categoriile de jocuri, în care se poate încadra aplicația. Am mai adăugat 10 screenshoturi din joc, ne-editate, plus două fișiere video pentru ca utilizatorul să își facă o idee despre ce este jocul.
Aprobarea paginii de magazin (Store Page Approval): Aprobarea durează aproximativ două zile. Un administrator al platformei Steam verifică toate datele introduse și decide dacă sunt corecte și sunt poate fi înțeleasă de oricine.
Încărcarea jocului în format .exe: După ce modificările aduse paginii de magazin au fost aprobate, a trebui să urc jocul propriu-zis, în format .exe pe serverele celor de la Steam. Acest lucru se realizează destul de ușor, având o interfață grafică care ne ajută să urcam jocul.
Aprobarea jocului: După ce executabilul a fost urcat pe serverele de la Steam, un alt administrator va verifica tot executabilul, încât să nu aibă fișiere malicious (ca și virus sau bitcoin miners). Se va verifica dacă jocul se poate rula pe specificațiile ce le-am introdus în pagina de magazin. Am optat să folosesc și subtitrări în alte limbi (precum chineză, germană și rusă). Și acestea au fost verificate dacă sunt cât de cât corecte și existente. Acest proces durează între două și trei zile.
Lansarea jocului: După ce jocul a fost aprobat de către un moderator, a urmat să mai setez doar data de lansare a jocului. Din acea dată, jocul a fost vizibil de către toți utilizatorii de Steam. Pe pagina dedicată dezvoltatorilor de către Steam, au apărut statistic despre joc. Precum câți utilizatori au cumpărat jocul, din ce regiune, câte persoane au adăugat jocul la wishlist și alte detalii. Și după ce jocul a fost lansat, se pot aduce editări jocului sau paginii de magazin fără nicio problemă. Fiecare schimbare de genul acesta va aduce la o altă aprobare a schimbărilor.
Figura 13: Acceptarea jocului pe Greenlight
Cerințele minime pentru rularea acestei aplicații prezentate sunt:
Microsoft Windows 7/8/10
CPU Quad-Core 2.4GHz
4GB RAM
nVidia GTX 660/ATI Radeon 7970
DirectX 11
3GB HDD Space
Cerințele recomande pentru rularea acestei aplicații, fără a avea probleme de rulare și o rulare fluidă sunt:
Microsoft Windows 7/8/10
CPU Intel i3-3220 sau AMD FX-6300
8GB RAM
nVidia GTX 950/ATI Radeo RX 460
DirectX 11
3GB HDD Space
Cerințele pentru rularea unui joc de genul acesta sunt destul de ridicate. Optimizarea jocului a fost și încă este o provocare pentru mine, încercând să fac să aibă cerințe de rulare mult mai mici, dar să nu afectez cu nimic calitatea grafică, care se regăsește în joc.
Acest proces se numește optimizare. Optimizarea unui joc constă în a prioritiza resursele valabile a PC-ului și a folosii toate resursele posibile, nu doar CPU-ul. Trebuie găsită o balansă între resursele folosite de CPU și resursele oferite de GPU.
Un alt proces de optimizare poate fi eliminare de poligoane din toate modelele aflate pe hartă. Modelele create în softuri de modelare 3D sunt create prin punerea cap la cap a multor poligoane. Calitatea unui model este datorită unui număr mare de poligoane și textura folosită. Și în acest caz, trebuie găsită o balansă între numărul de poligoane folosite, încercând să fie un număr cât mai redus, dar care să nu afecteze în niciun fel calitatea vizuală care o oferă deja.
Chiar și punctele de reflecție a luminii joacă un rol foarte important în optimizarea unui joc. Optimizarea fiind un subiect foarte important pentru dezvoltatori, există mai multe trucuri care încearcă să redea efectul dorit. La iluminare, un truc foarte ușor de aplicat este de a ”lipii” lumina de modele unde dorim să reflecte, fără a fi nevoie de a seta sursa de lumină originală să facă acel lucru. Folosirea unui surse de lumini dinamice va avea un efect mare asupra resurselor dedicate jocului, încercând să construiască toată iluminarea la fiecare secundă, când sursa de lumină se va mișca. În acest caz, este vorba de soare drept sursă de lumină.
Platforma pe care am ales să dezvolt acest joc este pentru sistemele de operare Windows. Am avut de ales între sistemele de operare mobile (precum Android), console sau Windows.
Procesul de dezvoltare pentru un joc de console este foarte asemănător cu cele dezvoltate pentru PC. Diferența constă în implementarea tuturor funcțiilor dorite, ele implementându-se diferit față de cele pentru PC. Publicarea unui joc pentru console (precum PlayStation, Xbox, Nintendo, etc.) este foarte strictă. Dezvoltatorul trebuie să respecte un set mare de reguli foarte strict. Este foarte recomandat ca jocul dezvoltat să fie vândut și sub formă fizică (ca și CD), dar nu este obligatoriu. Pentru varianta comercializată în formă fizică pe CD, va trebui atașat un manual de utilizare, cu toate mecanicile jocului și o introducere foarte largă a jocului, care este rolul său și obiectivele sale. Trebuie prezentate și unele tipuri. Jocul trebuie să prezinte și un sistem de tutorial, încât jucătorul să știe cum se controlează caracterul și toate funcțiile sale.
Jocurile dezvoltate pentru console nu se pot face pe PC-uri Windows, ci este nevoie de un anumit “dev-kit” care poate fi cumpărat doar de la producătorii consolei respective (de exemplu – Xbox Dev-kit vândut de Microsoft).
O funcție interesantă și care poate ajuta dezvoltatorul destul de mult, este funcția de debugging a codului prezent în joc. Limbajul folosit pentru jocurile de console este C++, compilat prin Visual Studio. Dev-kiturile sunt conectate la rețeaua consolei respective (de exemplu la rețeaua Xbox). Dezvoltatorul poate cere funcția de debugging oricând are nevoie, ajutorul venind din partea companiei.
Procesul de cumpărare a unui dev-kit nu este nici el ușor. Dezvoltatorul va trebui să prezinte producătorului unele dintre jocurile lui sau a echipei sale dezvoltate până în prezent. În caz că compania accepta dezvoltatorii să folosească platforma lor de jocuri, li se va pune la dispoziție acel Dev-Kit, care este în valoarea de $10.000.
Dezvoltatorii jocului trebuie să aibă un contract cu un publisher licențiat, ca să fie acceptați să folosească platforma respectivă.
După cum se poate vedea, jocurile dezvoltate pentru console sunt făcute doar de echipe mai mari. Nu există posibilitatea unui singur dezvoltator independent (indie) să dezvolte jocuri pentru console. De aceea, și jocurile valabile pentru console sunt mai puține la număr decât cele pentru PC. Din această cauză, unele companii de console au început să fie puțin mai permisive, dorind să fie o paletă mai mare de jocuri disponibile pe platforma lor. Xbox este una dintre companiile acestea. Dacă portofoliul dezvoltatorilor este abundent și de calitate, ei vor primii gratis 2 dev-kituri și o licență Unity. Nu este mult, ce e drept, dar este un prim pas benefic pentru companiile mai mici de jocuri care vor să înceapă dezvoltarea de jocuri pe console.
În schimb, cei de la PlayStation (adică Sony) sunt foarte stricți în privința dezvoltatorilor acceptați. Firma de dezvoltare a unui joc, va trebui să aibă sediul localizat în US, Mexic, America Centrală, America de Sud sau Canada. Nu permit firme localizate pe alte continente.
Dacă o companie dorește să dezvolte un joc pentru mai multe platforme, precum PC și console, nu trebuie să se repete procesul de două ori. Proiectul principal, dezvoltat inițial pentru una dintre platforme poate fi portat pentru altă platformă. Procesul de portare poate dura până la câteva luni, tot timpul existând diferențe între cele două proiecte. Cea mai mare problemă care apare în timpul portării sunt shaderele, care sunt gândite total diferit pentru PC și console, nefiind asemănări între ele.
Shaderele sunt acele ”efecte” dinamice care se ”lipesc” de modele sau teren. De exemplu, unul dintre cel mai dificil shader de dezvoltat este cel de zăpadă. Dacă din cer cade zăpadă, ea trebuie să se așterne pe teren într-un mod uniform și real. Dacă un caracter sau ceva obiect trece prin zăpadă, el va trebui să lase o urmă sau să modifice forma zăpezii. Datorită complexității sale, mulți dezvoltatori încearcă să folosească cât mai puțin acest tip de shader.
Dezvoltarea de jocuri pe platformele mobile, precum Android și iOS este posibilă și prin engine-urile detalie în capitolul următor. Acele motoare sunt recomande pentru a dezvolta jocuri mai complexe pentru mobile, în plan 3D. Asta nu înseamnă că ele nu pot fi folosite pentru a dezvolta jocuri 2D, sau cu o grafică low-poly.
Un engine care este foarte des folosit în dezvoltarea jocurilor de mobile este BuildBox. Multe jocuri dezvoltate în BuildBox au fost de succes, având un design minimalist și foarte ușor de înteles. Jocuri dezvoltate în BuildBox și de un succes mare sunt: Color Switch și Tap Jump Spikes.
Interfața oferită de BuildBox este foarte user-friendly și intuitivă. Acest engine oferă și niște funcții minime de animare și adăugare de efecte asupra caracterelor, care poate ușura munca dezvoltatorului fără a crea modele în aplicații separate. Codurile sau scripturile nu sunt obligatorii de implementat, încât motorul le generează automat din setările alese de dezvoltator prin interfața grafică.
În BuildBox se pot dezvolta și jocuri pe PC, în 2D. Un exemplu de joc ce poate fi dezvoltat în BuildBox, este cunoscutul Super Mario. Acest tip de jocuri cu platforme/side-scrolling sunt mai ușoare de dezvoltat față de alte tipuri de jocuri mai complexe. BuildBox oferă și funcția de drag-and-drop, acceptând majoritatea extensiilor de poze, fără a fi nevoie de o extensie specială a unui program anume. Creare unei hărți în 2D constă în plasare de obiecte (poze) peste un fundal, dezvoltatorul fiind nevoie să adauge coliziune fiecăruia model (poze) încât caracterul să nu se scufunde în modele, încât să nu mai fie vizibil.
Alte funcții valabile în BuildBox este de a adăuga o viteză sau o rotire a modelelor, dezvoltatorul putând să creeze obiecte ce se mișcă după un traseu prestabilit. Acest tip de obiecte pot fi folosite drept capcane în nivelul jocului.
Se oferă și funcții de scor, fiecare acțiune având o recompensă. De exemplu, o recompensă ar putea fi când jucătorul ajunge într-un anume punct din nivel să îi fie adăugate un număr de puncte la punctajul principal.
Funcția de reclame precum AdWords, AdMobs și alte platforme pentru advertising sunt integrate deja în game engine. Dezvoltatorul trebuie doar să adauge contul său a platformei de advertising aleasă. Se pot seta și în ce fel vrem ca reclamele să apară în joc. Fie pe mijlocului ecranului, fie un banner de dimensiuni reduse în subsolul ecranului în diferite momente ale jocului. Un alt sistem de advertising, utilizat din ce în ce mai des în jocuri de mobile este redarea unui clip video, iar la sfârșit utilizatorul fiind recompensat cu puncte sau în moneda implementat în joc, dacă este cazul.
Tot în cadrul acestui motor, avem și posibilitatea de a implementa sistemul de Leaderboards, oferit de Google și Apple, fiecare pentru sistemul lor specific de operare.
Jocurile dezvoltate pentru mobile sunt de obicei jocuri casual sau care sunt rapide, scopul lor fiind în majoritatea cazurilor strict punctajul. Desigur, se pot concepe jocuri precum cele de PC, aici făcând referire la stilul de gameplay. Dar, datorită pieței de jucători pe mobile care preferă jocuri casual și care nu necesită mult timp sau o îndemânare precisă.
Principalele sisteme de operare a mobilelor sunt Android și iOS.
Implementarea unui joc pe iOS necesită îndeplinirea unor condiții stricte. Dezvoltatorul trebuie să plătească o taxă în valoare de 100€, iar după aceea va putea fi posibilă încărcarea jocului pe serverele Apple. Există și un proces de verificare a aplicației sau jocului (în funcție de caz) de către un moderator, încât se va verifica dacă jocul este conform descrierii prezentate de dezvoltator și oferă toate funcțiile prezentate. Taxa de 100€ va fi plătită tot timpul când dezvoltatorul va dorii să urce o aplicație sau un joc.
Implementarea unui joc pe Android este puțin mai permisivă, dar tot trebuie urmărite niște condiții. Prima din ele este achitarea unei taxe în valoare de 25€, încât contul respectiv va trece în categoria de Dezvoltator (Developer). Doar conturile de dezvoltatori pot încărca aplicații sau jocuri în Play Store. Această taxă se percepe o singură dată.
După procesarea plății către Google pentru activarea contului de dezvoltator, el va putea încărca jocul său pe serverele Google. Implementarea jocului sau aplicației se face prin încărcarea jocului propriu-zis sub format .APK, alături de un fișier C++ unde sunt notate unele date tehnice despre joc.
Și aici vom întâlnii procesul de verificare a jocului, durând aproximativ o zi. După aprobare jocul va fi vizibil tuturor în Play Store.
Fișierul .cpp care este adăugat alături de .APK conține note tehnice asupra aplicației. Ea este compilată și oferită la fiecare exportare a unui .APK. Dezvoltatorul, în funcție de caz, va trebui să completeze versiunea aplicației sale, pentru o organizare mai bune a schimbărilor și versiuniile pe care poate fi utilizată aplicația (precum Android 4.0+).
Fiecare mediu de dezvoltare pentru o aplicație sau un joc de Android va venii cu un IDE sau framework de dezvoltare. De multe ori, ele vin alături de Eclipse IDE. Un IDE este Integrated Development Environment (adică un mediu integrat de dezvoltare) utilizat în codarea programelor. Limbajul de programare pe care este bazat acest framework este în C++.
Figura 14: Procedeu de implementare unui joc pe Play Store
Toate aplicațiile și jocurile aflate pe Play Store vor avea sistemul de recenzii. Acest sistem de recenzii, găsit pe Play Store urmează modelul de “star review”. Utilizatorii vor lăsa un număr de stele (maxim 5) în funcție de experiența fiecăruia cu aplicația respectivă.
În caz că utilizatorii au lăsat recenzii pozitive, nu de la mult timp de la data lansării, jocul va fi vizibil în pagina de Trending. De aceea recenziile de pe Play Story joacă un rol foarte important, în special pentru dezvoltator. Recenziile vor decide soarta jocului, dacă el va fi jucat de un număr mare de utilizatori sau nu.
Recenziile sunt importante și pentru utilizatori, făcându-și o idee despre jocul care urmează să îl descarce și toate hibele sale, dacă este cazul.
Pe pagina aplicației de Play Store, dezvoltatorul va avea opțiunea să adauge screenshoturi și un scurt fișier video cu gameplayul regăsit în joc. Ca și descriere, este asemănător cu descrierea de pe Steam, dezvoltatorul putând să scrie același detalii despre joc, precum mecanicile implementate în joc, scopul lui și ce presupun jocul.
Decizia mea de a dezvolta acest joc pe PC este datorita factorilor prezentați mai sus. Dezvoltarea jocului pe console nu a fost viabilă datorită costurilor foarte mari și investiției necesare pentru dezvoltare.
Pentru platforma de telefoane mobile, jocul care am încercat eu să îl dezvolt nu se încadra în tendințele tipului de jocuri preferate de persoane care se joacă pe acest tip de terminal.
Un rol important în luare deciziei mele de alegere a mediului de dezvoltare a fost și înțelegerea mai amplă a mediului de dezvoltare de aplicații pe PC.
După analizarea tuturor factorilor prezentați mai sus și o documentație aprofundată despre mediile de dezvoltare, am luat decizia că cel mai optim mediu de dezvoltare a jocului este pentru PC.
1.6 Extinderea jocului pe viitor
În acest sub-capitol voi descrie ce doresc să extind și să adaug la versiunea actuală a jocului.
Pentru o experiență mai plăcută pentru utilizator, plănuiesc să adaug mai multe voci narative, în diferite limbi, în special în limbile în care sunt traduse și subtitrările. Această extindere presupun modificarea sub formă minimală a codului deja existent și a meniului implementat în joc.
Doresc implementarea unui caracter vizibil, încât jucător se poate vedea pe el însăși. Implementarea acestui lucru se poate realiza prin dezvoltarea unui model în Maya și adăugarea tuturor animațiilor folosite de caracter în joc.
Un element care doresc să implementez în joc este interacțiunea cu majoritatea obiectelor din mediul înconjurător, precum inspectarea de aproape a unui obiect (precum o carte), rotirea sa sau deschiderea de uși și dulapuri.
Ceea ce mai doresc să implementez în joc este generarea hărții și modelelor aflate pe hartă în funcție de anotimp. Toamna de exemplu, copacii folosiți vor avea altă textură și culoare față de cei folosiți în timpul verii.
În momentul de față, suportul oferit de joc pentru controller/gamepad nu este stabil. Uneori, comenzile introduse prin gamecontroller nu vor fi înregistrate de joc, ca și cum nu există un controller folosit. Doresc să elimin toate bugurile încât jocul să ofere un suport complet funcțional pentru gamecontroller.
Doresc să optimizez jocul, în momentul actual jocul având un număr mai scăzut de FPS (Frames per Second) din cauza texturii de înaltă calitate aflate pe majoritatea modelelor. Acest procedeu este un procedeu care consumă mult timp, încât toate texturile și modelele trebuie editate, reducerea poligoanelor și re-scalarea lor.
Doresc să fac jocul valabil și pentru celelalte sisteme de operare, precum Linux (Ubuntu) și Mac OS X.
Capitol 2 – Platforma de Dezvoltare
În momentul de față, piața platformelor de dezvoltare a jocurilor video se bucură de un apogeu, fiind oferită o largă gamă de opțiuni. Opțiunile sunt accesibile tuturor acum, încât oricine care are o idee și o suficientă motivație poate începe să dezvolte un joc video din confortul propriei camere.
Cele mai populare și des folosite platforme, precum Unreal Engine 4, Unity sau RPG Maker VX au ajuns într-un stadiu atât de matur, încât pentru crearea unui joc video modest, nici nu sunt necesare foarte multe cunoștințe de programare. Merită menționat faptul că fiecare platformă enumerată mai sus, pe lângă documentația de bază oferită de producătorii acestor platforme, este susținută și de câte o comunitate imensă formată din entuziaști care sunt dispuși să ajute persoanele care se descurcă mai greu. Așa că, în cazul în care un dezvoltator, indiferent de nivelul de experiență, se găsește pus în situații în care se poate confrunta cu o problemă, care nu o poate rezolva singur. Sunt șanse mari ca problema pe care o întâmpină să fie deja discutată pe un forum dedicat dezvoltatorilor de jocuri video. În caz ca problema sa nu este deja discutată pe aceste forumuri, cu siguranță va găsi pe cineva care s-a confruntat deja cu o problemă similară, gata să îl ajute.
2.1 Opțiuni de dezvoltare
În funcție de scopul și ideea a produsului finit, există posibilitatea alegerii dintre mai multe platforme de dezvoltare, precum cele enumerate anterior. În cazul de față, jocul prezentat în această lucrare ia parte în spațiu tridimensional (3D), așa că platformele din care puteam alege s-a restrâns, unele din ele fiind doar 2D. Bugetul alocat acestui proiect fiind foarte restrâns, am avut de ales doar dintre platformele gratis. Dorind să arate bine și sa fie și ușor de lucrat în el, am rămas cu foarte puține opțiuni, adică Unreal Engine 4 și Unity.
Figura 15: Frame din Unreal Engine 4
Din curiozitate personală, în trecut, am mai urmărit tutoriale pe internet despre game development, în special în Unity, așa că pot spune era puțin familiar cu acest engine. Unreal Engine, știind că acest engine a fost baza succesului comercial al multor titluri de jocuri, am fost tentat și de el, dar nu eram deloc familiar cu interfața acestuia. Așa că, Unity era o opțiune foarte atrăgătoare pentru mine datorită facilității, iar Unreal Engine era o opțiune atrăgătoare datorită calității care îl poate oferii a jocului final. De menționat, este faptul că Unreal Engine a început să fie gratis nu de mult timp, deci comunitatea celor care foloseau Unreal Engine era mai mică și restrânsă față de cea de la Unity. Un alt dezavantaj pentru mine a fost că toate asseturile pentru Unreal Engine 4 nu sunt gratis, față de cele din Unity.
Așa că, după puțină documentație, și analizarea diferențelor dintre ambele game engine-uri, am ajuns la concluzia că Unity ar fi alegerea optimă pentru realizarea acestui tip de joc care mi l-am propus.
2.2 Unreal Engine 4
Unreal Engine este un game engine lansat în anul 1998 și scris în C++. Inițial el a fost folosit și dezvoltat pentru jocurile de tip shooter. Datorită complexității oferite în Unreal, au putut fii realizate și alt tip de jocuri, nu numai shooters. Unreal Engine a fost premiat de către cei de la Guinnes World Records drept cel mai de succes game engine. În momentul actual, Unreal Engine se află la versiunea 4, ea fiind lansată în anul 2016. El este făcut pentru a rula pe sistemul de operare Windows și permite dezvoltarea jocurilor pentru toate platformele de jocuri existente (PC – Windows, Linux, Mac; Xbox, PlayStation, iOS, Android, Ouya și chiar pentru browesere de tip HTML5).
Ceea ce Unreal Engine 4 a adus nou față de versiunile sale vechi este un design nou și mult mai ușor de folosit a interfeței sale. De exemplu, dacă doream să schimbăm cât damage poate un glonț al unei arme să facă asupra unui inamic, acest procedeu dura până la câteva zile, totul realizându-se din cod. Acuma, datorită interfeței grafice, acest procedeu durează câteva secunde.
La începutul lansării acestui engine, el nu era gratis. Era oferit sub forma unui abonament (subscription) care costa $15/lună. În 2014, acest engine era oferit gratis școlilor și universităților încât studenții să aibă un engine performante pe care puteau să învețe. Din 2 martie 2016, Unreal Engine 4 a fost oferit gratuis, tuturor persoanelor. Fiind gratis, orice joc realizat cu Unreal Engine și cu un mai mare de $3.000 pe an, dezvoltatorul va trebui să plătească către dezvoltatorii Unreal Engine 5% din profitul realizat de jocul său.
În urmă cu nici un an, Unreal Engine a început să suporte și jocurile destinate realității virtuale (VR), care este la început, având un număr destul de redus de jucători.
Tabel 1: Resurse folosite de Unreal Engine 4
Acestea sunt resursele folosite pentru un proiect mic, fără a avea foarte multe modele incluse în proiect. Dacă am avea un proiect mai complex, cu sute de modele și texturi introduse în proiect, utilizarea CPU și GPU ar fii ~50%. Rendarea (sau desenarea) tuturor modelor este realizată și de CPU și de GPU. Pentru unele sistem cu placi video mult mai performante, speciale pentru crearea filmelor sau animațiilor 3D (precum nVidia Quadro), GPU ar fi utilizat mult mai mult față de CPU, având o putere mai mare de procesare a datelor vizuale. Indiferent de ce proiect este dezvoltat în Unreal Engine, utilizarea memoriei RAM nu va fi ridicată, fiind majoritatea timpului sub limita de 8GB recomandați.
Specificațiile recomande pentru rularea Unreal Engine 4, fără a întâmpina probleme sunt:
Windows 7/10 64-bit sau Mac OS X
8GB RAM
Quad-Core CPU
GPU DirectX 11 compatibil.
2.3 Unity Game Engine
Unity este un game engine lansat în anul 2005 și scris în C/C++, având parte de update-uri constante. El se bucură de popularitatea pe care o are, datorită unor mai mulți factori precum: soluții de dezvoltare a jocurilor în 3D cât și în 2D care pot fi jucate pe mai multe platforme. Jocurile realizate în Unity pot fi concepute pentru aproape toate sistemele de operare, precum: Android, Android TV, Facebook, Fire OS, VR, Google Cardboard, Google Daydream, HTC Vive (VR), iOS, Linux, Mac, Hololens, Nintendo 3DS, Nintendo Switch, Oculus Rift, Ouya, PlayStation 4, PlayStation Vita, PlayStation VR, Samsung SmartTV, Tizen, tvOS, Wii, WiiU, Windows, Windows Phone, Windows Store, webGL și Xbox. În această listă putem regăsii toate platformele care suportă jocuri. Astfel, dezvoltatorii pot scoate un joc pe mai multe sau chiar toate platformele de jocuri, nefiind limitați într-un fel.
Figura 16: Interfața Unity Engine
Unity vine în 4 planuri:
Personal: Are aproape toate funcțiile valabile. Este recomandat începătorilor și persoanelor care vor să învețe acest game engine. Acest plan este gratis. Jocurile realizate cu acest plan, vor plătii dreptul de utilizare doar dacă jocul realizat de ei a avut un profit mai mare de $100.000. Această versiune lasă dezvoltator să creeze jocuri doar pentru platforma de Windows și Linux. Acest plan acceptă un singur utilizator (dezvoltator).
Plus: Ceea ce are în plus față de planul prezentat anterior este că jocurile pot fi dezvoltate pentru toate platformele menționate în acest capitol. În plus, se va oferii și funcția de Multiplayer, pentru 50 de utilizatori activi. Practic, înseamnă că se vor putea dezvolta jocuri multiplayer fără a fi nevoie de scripturi și coduri create de dezvoltatori, pentru a fi posibil acest lucru. Dacă pe planul de Personal, $100.000 era pragul de profit acceptat de Unity fără a plătii drepturi de utilizare, în acest plan este vorba de $200.000. Prețul pentru acest plan este de $35/utilizator/lună. Poate accepta până la 10 utilizatori.
Pro: Diferit față de planul Plus, este un număr mai mare de utilizatori ce pot fi conectați la jocul dezvoltat în acest engine, numărul fiind de 200, în loc de 50. Pe acest plan, nu va mai exista drepturi de utilizare, dezvoltatorii putând să aibă orice profit realizat de pe urma jocului lor. Prețul pentru acest plan este de $125/utilizator/lună. Se pot accepta până la 100 de utilizatori.
Enterprise: Acest plan este destinat companiilor mari, cu peste 100 de dezvoltatori care lucră simultan la același proiect. Dacă acest plan este ales, se va primii o versiune modificată a motorului, în funcție de nevoile firmei. Nu există un preț standard pentru acest plan.
Un aspect foarte util în procesul de dezvoltare al jocului meu este posibilitatea de a scrie și utiliza scripturi și coduri pentru aproape orice, cele mai utilizate limbaje fiind C# și JavaScript.
Eu am ales să folosesc C# (în condițiile în care nu mai folosisem C# până atunci), principalele motive fiind ușurința aplicării unei gândiri POO și faptul că marea majoritate a celor din comunitatea de game development încurajează utilizarea acestor limbaje pentru a ușura rezolvarea (cu sau fără ajutor din exterior) a potențialelor probleme ce pot apărea în dezvoltare.
Tabel 2: Resurse folosite de Unity
Acestea sunt resursele folosite pentru un proiect mic, fără a avea foarte multe modele incluse în proiect. Dacă am avea un proiect mai complex, cu sute de modele și texturi introduse în proiect, utilizarea CPU și GPU ar fii ~50%. Rendarea (sau desenarea) tuturor modelor este realizată și de CPU și de GPU. Pentru unele sistem cu placi video mult mai performante, speciale pentru crearea filmelor sau animațiilor 3D (precum nVidia Quadro), GPU ar fi utilizat mult mai mult față de CPU, având o putere mai mare de procesare a datelor vizuale. Indiferent de ce proiect este dezvoltat în Unreal Engine, utilizarea memoriei RAM nu va fi ridicată, fiind majoritatea timpului sub limita de 6GB recomandați.
Tabel 3: Resurse folosite de Unity pe proiectul prezentat
În acest tabel regăsim resursele folosite de Unity pentru proiectul care este prezentat în această lucrare. Putem observa că nu este o mare diferență față de un proiect cu mai puține modele și texturi aplicate în el. Rendarea tuturor modelelor și texturile se face real-time, fără să simțim niciun fel de sacadare sau efectul de “mers în reluare”.
Cerințele minime recomandate pentru rularea Unity Engine sunt:
Windows 7/8/8.1/10 sau Mac OS X
6GB RAM
Dual-Core CPU
GPU DirectX 11 compatibil
2.4 Assets
O parte importantă a dezvoltării jocurilor în Unity este și prezența Asset Store-ului. Este o platformă de cumpărare a unor asseturi create de comunitatea ce folosește acest engine. Ca și asset, ele pot fi modele (de exemplu o casă sau un palat), sunete, texturi (care se pot aplica pe modele – de exemplu rugină aplicată pe un stâlp metalic) sau chiar și scripturi.
Figura 17: Asset Store
Pentru o exemplificare a acestei noțiuni, importanța acestor asset-uri se poate vedea și în jocul prezentat în această lucrare. Asset-urile folosite în acest joc sunt: Tenkoku Dynamic Sky, Swimono, Gaia. Acestea sunt considerate asseturi principale, dar și modelele regăsite (precum un castel) va putea intra în categoria de asset.
Tenkoku Dynamic Sky este un asset care creează un cer mai complex decât cel oferit de Unity, unde dezvoltatorul poate schimba orientarea norilor, viteza cu care se mișcă norii, densitatea lor, poziționarea sursei de lumină (în cazul nostru soarele), culoarea razelor de lumină, schimbarea climei și multe alte opțiuni care țin de cer. Se poate seta și un ciclu de zi-noapte, în care ora se poate schimba ca și în realitate (real-time) sau la o viteză pusă de dezvoltator (de exemplu 10x față de timpul real). Creat de Tanuki Digital, prima publicare a acestui asset a fost în 2015, având parte de update-uri dese, implementând funcții noi aproape la fiecare update. Prețul pe Asset Store este de $65.
Al doilea asset folosit, Swimono este un asset care rendează apa cât mai realistic. Se pot adăuga valuri daca se dorește, viteza valurilor, reflecții (a unor obiecte sau a razelor de lumină). Dacă jucătorul vrea să intre în apă, acest asset oferă și sunete pentru pășirea pe un obiect umed, sunet de înot. Se pot adăuga și alge pe sub apă pentru a oferii o experiență cât mai apropiată de real. Se poate alege într-o apă clară sau o apă mai tulbure, chiar și culoarea apei poate fi editată, fără a fi pierderi la calitatea ei. Este creat tot de Tanuki Digital, prima publicare a acestuia fiind în 2012, cu update-uri în fiecare an cu funcții noi de editare a apei. Prețul pe Asset Store este tot de $65.
Al treilea asset, Gaia este un asset pentru generarea terenului. Desenarea terenului este mai ușoară decât cea oferită de Unity, având și funcția de a genera un teren aleatoriu (de exemplu un spațiu muntos). Oferă și aplicarea unor texturi pe terenul creat de noi (de exemplu iarbă, pietre sau nisip). Mai vine și cu unele modele de copaci de diferite dimensiuni. Putem crea și lacuri cu acest asset, selectând adâncimea lacului iar de restul se va ocupa acest asset. Majoritatea dezvoltatorilor de jocuri care folosesc Unity spun că este necesar acest asset, făcând toată munca mai ușoară. Creat de Adam Goodrich, un membru al comunității din 2015, Gaia are parte de update-uri destul de dese, implementând funcții noi la fiecare update. Prețul pe Asset Store este de $45.
Figura 18: Implementarea assetului Gaia pe hartă
Modelele regăsite în joc, unele au fost create de mine iar restul cumpărate de pe Asset Store, amintit mai sus.
O mare parte din modelele create pentru jocuri sunt dezvoltate fie în Maya sau în 3DsMax. Voi face o prezentare între cele două, diferențe și punctele forte ale fiecăreia aplicații.
Ca și parte de modelare, 3DsMax este cel mai preferat software de către arhitecți și designeri interiori. Interfața aflată în acest program este mai minimalistă și face lucrurile puțin mai ușoare pentru designeri, având o gamă foarte largă de unelte care ajută la “desenarea” unui obiect. El oferă unelte pentru a desena orice dorim.
Maya nu oferă unelte mult mai avansate sau sofisticate decât 3DsMax la capitolul de modelare. Orice obiect sau model care dorim să îl desenam poate fi realizat în ambele programe.
Modelarea în spațiul virtual constă în punerea cap la cap a poligoanelor. Majoritatea modelelor (de exemplu o cască) va avea între 100-1000 de poligoane. Dacă un obiect sau model are multe poligoane, acel obiect va părea mult mai finisat și realist, în special pentru obiectele rotunjite (exemplu o cască).
În jocuri, un număr foarte mare de poligoane asupra obiectelor poate influența negativ jocul, dând acea senzație de “sacadat”, jocul rulând la un frame-rate mai mic. De aceea, dezvoltatorul va trebui să găsească o balanță între un număr redus de poligoane pentru a nu afecta frame-rateul jocului dar și un număr destul de poligoane încât modelul final să arate realistic.
La capitolul de animație, Maya va strălucii în față programului 3DsMax. Are o librărie imensă de unelte pentru animarea unor obiecte sau modele. Pentru a anima un obiect sau model în Maya, sunt nevoie de niște cunoștințe minimale în Python. Majoritatea filmelor, care au câștigat un premiu pentru efectele video folosite și animațiile regăsite, au avut Maya drept software de animație. Asta nu înseamnă ca 3DsMax nu este capabil să animeze un obiect sau model, nici pe departe. Doar că, Maya are o librărie mult mai mare de unelte pentru animare și este mult mai ușor de folosit, folosindu-se de keyframes. Mișcările complexe, precum o scenă cu un caracter care aleargă și se ferește de obstacole, este mai ușor de dezvoltat în Maya, datorită funcției de keyframes pe care o are implementată.
Deoarece Maya este bazat pe un limbaj de programare/scriptare precum Python (numit MEL în Maya), majoritatea dezvoltatorilor de jocuri și de filme animate vor alege Maya în defavoarea lui 3DsMax. Prin Python, dezvoltatorii își vor putea crea uneltele dorite de ei, fără a fi limitați de ceea ce programul de oferă la bază.
Un atu pentru 3DsMax este că se pot realiza lucrări mari, precum un apartament plus designeul interior, unde Maya nu excelează, fiind concentrat doar pe unul sau două obiecte per proiect.
Maya este disponibil pentru platformele Windows, Linux și Mac. Pe când 3DsMax este valabil doar pentru Windows.
În concluzie, după ce am analizat toți factorii și diferențele dintre aceste două programe am ales să folosesc Maya, drept program de modelare 3D și animare. Ceea ce m-a făcut să aleg acest software, față de 3DsMax este partea de animare, care poate fi folositoare în jocuri, dând un aer de “polished” jocului. Alegând 3DsMax mă simțeam oarecum restrâns, neputând folosii animații dacă doream. Și comunitatea de utilizator a programului Maya a jucat un factor decisiv pentru mine, ea fiind mult mai activă față de cea de la 3DsMax.
Figura 19: Dezvoltarea de modele în Maya
Capitol 3 – Tehnologii Folosite
În acest capitol voi încerca să prezint tehnologiile folosite în scopul dezvoltării aplicației prezentate, un joc realizat în Unity bazat pe scripturi în C#.
La fiecare subcapitol, la sfârșit se va găsi o trimitere bibliografică, unde subiectele discutate pot fi aprofundate.
3.1 Limbajul C#
C# este un limbaj de programare, dezvoltat de Microsoft. Inițial, el a fost dezvoltat în cadrul proiectului .NET, care mai apoi a fost acceptat ca standard de către ECMA și ISO (ISO/IEC 23270:2006).
Scopul său este general, fiind orientat pe obiecte și bazat pe componente. De aceea, el oferă mai multe variante de rezolvare pentru o gama mai variată de probleme. Mai oferă și posibilitatea de a construii aplicații web prin intermediul ASP .NET, aplicații desktop prin WPF (adică Windows-Presentation-Foundation) sau chiar aplicații mobile pe Windows Smartphone. În Windows Azure, platforma Microsoft de cloud computing, putem regăsi impactul limbajului C#.
3.2 Platforma .NET
.NET este o platformă dezvoltată și ea tot de Microsoft, ce include un limbaj de programare, un run-time și o bibliotecă de framework, care permite dezvoltarea unui număr mare de tipuri de aplicații. Un limbaj de programare inclus în această platformă este C#, descris în subcapitolul anterior. Se mai poate regăsii Visual Basic, F#, C++ și altele.
Figura 20: Compilare traditională (a) și CLR (b)
Numele formal pentru run-time este Common Language Runtime (CLR). Limbajele de programare care au implementat acest run-time se compilează într-un Intermediate Language (IL). Practic, acest CLR este un Virtual Machine (VM) care rulează un IL și oferă mai multe servicii, precum gestionarea memoriei, gestionarea excepțiilor, rol în securitate și multe altele.
3.3 .NET și C# în Unity Game Engine
Majoritatea platformelor de dezvoltare ale jocurilor, pun la dispoziție un GUI (adică Graphical User Interface) dar și posibilitatea ca dezvoltatorul să scripteze sau să codeze în diverse limbaje de programare, diferite elemente sau aspecte. Unity este și el un program care oferă aceste unelte pentru ușurarea dezvoltării jocurilor.
La începerea unui proiect nou în Unity, sa pune un semn de întrebare în privința limbajului de programare ales. Unity propune două soluții mai “oficiale”, și anume în C# și o variantă ajustată pentru Unity, a limbajului Javascript. Unity nu are nicio restricție la alegerea limbajelor, chiar lăsând dezvoltatorul să lucreze cu ambele, daca se dorește. Majoritatea dezvoltatorilor privesc acest lucru ca și un “bad practice”, putând să ducă la confuzie și la unele conflicte la compilare.
Recomandat este de a alege un singur limbaj și a-l utiliza oriunde este necesar în dezvoltarea jocului. Limbajul ales de mine, după cum reiese și din capitolele anterioare, este C# din mai multe motive.
Nu există un limbaj “rău” sau care să facă lucrurile mai greu de realizat între C# și JavaScript. Motivul acestei alegeri este faptul că informațiile și conceptele dobândite de dezvoltator înainte de a începe proiectul se transferă cu ușurință în C# (exemplu gândirea orientată-obiect). C# are de asemenea o poziție importantă în creșterea platformei Unity, fiind strâns legat de .NET. În Unity, .NET este folosit sub numele de “Mono”, și semănând cu C++, care a fost folosit intens în dezvoltarea jocurilor.
Capitol 4 – Prezentarea aplicației
În acest capitol voi prezenta aplicația/jocul propriu-zis. Voi încerca să explic procesul de dezvoltare al acestuia, unele probleme care au apărut pe parcurs și soluțiile găsite. Voi mai arăta și bucăți de cod care va fi diferit față de restul textului din lucrare. Exemplu cod:
Figura 21: Exemplu cod
4.1 Specificații funcționale
Această aplicație reprezintă un joc, în 3D care este definit de mai multe aspecte:
O insulă pustie, cu o atmosferă care încearcă să facă jucătorul să își pună niște întrebări, neștiind unde se află și ce anume este pe acea insulă.
O melodie clasică se va auzi în fundal, care va încercă să inducă jucătorul într-o stare de relaxare și calm.
Fiecare punct de interest (POI – Point of Interest) va reda un voce narativă (voice over) care va spune o parte din poveste având parte și de o subtitrare.
Așadar jucătorul va lua rolul unui bărbat căruia nu îi va ști numele iar prin ochii lui va explora insula abandonată, ascultând vocea sa povestind ce s-a întâmplat.
Jucătorul își va putea da seama din primul minut despre ce este vorba în acest joc, având primul POI în fața sa. El va ști pe unde să meargă, fiind o potecă care duce aproape la toate punctele de interes din joc. Punctele de interes întâlnite de jucătorul sunt foarte ușor de recunoscut, fiind niște obiecte mari și care știe că pot ascunde ceva. Pentru a amplifica starea de nesiguranță a jucătorului este implementat ciclul de noapte-zi și de schimbarea climei, putând să treacă de o zi însorită la o furtună în câteva minute.
Jocul încearcă să inducă jucătorul într-o stare de relaxare. Factorii care încearcă să contribuie la construirea acestui lucru sunt:
Senzația de singurătate
Muzică clasică în fundal
Un mediu înconjurător plăcut
Liniștea inițială găsită pe insulă
Prezența vocii narative calme
Voice overul este rulat cu ajutorul unor scripturi care „construiesc” o librărie de fișiere audio. În librărie se află 25 de fișiere audio (VO) care vor fi “distruse” după ce au fost redate odată. Mai jos voi arată cum funcționează mai exact acest procedeu.
Sunetele sunt așezate în ordine, respectând povestea.
Pe fiecare punct de interes (POI) se află un cub invizibil. Când jucătorul va intra în acel cub se va declanșa scriptul de redare a sunetelor, redând sunetul care urmează să fie redat.
Se va reda sunetul și o subtitrare format .PNG va apărea în josul ecranului în limba aleasă de jucător.
După terminarea redării sunetului, cubul, sunetul și subtitrarea vor fi șterse. Jucătorul nu va mai putea să asculte din nou același parte din poveste.
Sunetele care au fost ascultate deja sunt salvate în fișierele de save, care salvează și locația jucătorului. Dacă jucătorul dorește să șteargă acel save file, el va putea asculta din nou sunetul redat deja.
4.2 Arhitectura aplicației
Pentru o reprezentare fidelă a arhitecturii unui joc dezvoltat în Unity Game Engine, trebuie să spunem că aceste jocuri sunt bazate pe componente. În scopul înțelegerii noțiunii de component în Unity, se va defini întâi conceptul de GameObject. Fiecăruia GameObject le-am pus alt nume pentru a recunoaște mai ușor, direct din nume pe ce se bazează acel obiect.
În mare, acest joc poate fi privit ca și o îmbinare a mai multor elemente ce definesc jocul, și anume:
Un GameObject (numit teren) care corespunde hărții și a spațiului în care se petrece jocul, cu toate setările sale
Un GameObject (numit FPSController) care corespunde jucătorului și toate setările sale
Un GameObject (numit Cubes) care corespunde cuburilor descrise anterior care conțin declanșatoarele pentru sunete
Un GameObject (numit SpawnObject) care corespunde tuturor modelelor plasate pe hartă (de exemplu stânci) cu toate setările aferente
Un GameObject (numit TenkokuDynamicSky) care corespunde assetului descris mai sus pentru ajustarea cerului
Un GameObject (numit Gaia) care corespunde cu copacii plasați pe hartă
Un GameObject (numit MapCollider) care corespunde coliziunii hărții propriu-zise, în care se creează niște pereți invizibili, încât jucătorul să nu poată părăsii harta.
Mai există alte GameObject care nu au o importanță așa mare, având cuprinse doar niște bucăți mici de hartă, precum o cascadă. Ele puteau fi cuprinse în alte GameObject care au fost scrise mai sus, dar am preferat să le am separat datorită setărilor abundente de care au parte.
Un alt GameObject care îl putem regăsi este numit Waterfall, care va conține toate detaliile și setările aferente cascadei găsite în joc. Putem modifica viteza apei curgătoare, intensitatea splashului și culoare sa. Putem adăuga și un sunet specific unei cascade.
4.2.1 Harta
Figura 22: Harta implementată în Unity
Majoritatea hărții a fost creată manual, cu uneltele oferite de Unity. A mai fost folosit și un asset descris mai sus, numit Gaia, care a ajutat la crearea unor cratere și munți, încercând să le facă cât mai apropiat de realitate.
Harta în care ia loc jocul este de aproximativ 10km² în care putem regăsi munți, lacuri, plajă, dealuri, văi, cascade și zone abrupte.
Pe hartă s-au folosit doar câteva texturi. Regăsim iarbă, fân, diferite tipuri de flori, nisip și pământ pietros.
Din orice loc în care s-ar afla jucătorul, va exista o modalitate prin care poate ajunge la cărarea principala, pentru a ajunge la toate punctele de interes. Asta înseamnă dacă jucătorul dorește să sară în apă, va putea ieșii întreg și ajunge din nou la drumul principal. Nu va putea rămâne blocat în nicio zonă.
Mărimea texturii aflate pe teren este foarte mare pentru a oferii totul mult mai detaliat la o calitate ridicată.
Inițial doream să fac ca harta să fie generată automat, folosind teoria Perlin Noise . Implementarea aceste teorii în practic a fost o provocare pentru mine. Trebuia setat dimensiunea hărții care să fie creată la fiecare pornire a jocului, texturile aplicate pe ea și setările pentru Dynamic Sky, încât să pară realist. Cea mai mare problemă pe care am întâlnit-o în acest proces a fost lipsa punctelor de interes, unde Unity nu putea să plaseze pe hartă toate punctele de interes dorite de mine. O altă problemă care m-a făcut să renunț la generarea unei hărți automate a fost dorința mea de a avea cât mai multe forme de relief, extrase din realitate. Din păcate, la acest capitol, generarea unei hărți automate nu excelează. Genera un teren generic, format din puncte mai înalte sau gropi.
Figura 23: Perlin Noise
Așa că, am ajuns la concluzia că cel mai practic și optim pentru joc este de a dezvolta o hartă, fără ca ea să conțină elemente aleatorii date de un script, totul fiind pus manual și cu un scop.
4.2.2 Jucătorul
Având în vedere faptul că acest proiect prezentat în această lucrare este un joc, modul în care jucătorul interacționează cu aplicația nu ar trebui să surprindă pe nimeni. Jucătorul va observa și se va mișca pe hartă prin ochii (First Person sau Persoana Întâi) unui caracter fără nume.
Acest FPSController este un asset care reprezintă un caracter ce poate fi controlat de jucător printr-o perspectivă de tip “first-person” (adică jucătorul va observa lumea universului prin ochii caracterului). Acest asset include scripturi pentru detectarea și tratarea comenzilor oferite de jucător.
Oferă modificarea setărilor caracterului, precum sunete pentru pași, sunet pentru respirație dacă se dorește, un collider (un obiect cu proprietăți fizice, folosit în cazul acesta pentru a detecta coliziuni cu suprafața pământului) și o cameră atașată acestui collider (camera reprezintă perspectiva din care poate privi un utilizator universul jocului).
Mai oferă posibilitatea editării câmpului vizual (Field of View) fie pe orizontala fie pe verticală. Se poate modifica și poziționarea camerei, în jocul prezentat camera fiind plasată puțin mai sus, încercând să fie cât mai apropiată de poziția ochilor.
Aceste setări pot fi modificate din FPSController după bunul plac.
4.2.3 Cuburi
Aceste cuburi au rolul de a declanșa sunetele pentru redarea poveștii. Ele sunt 25 la număr, iar dimensiunea lor este destul de mare, încercând să acopere complet punctul de interes.
Cuburile sunt invizibile, încât să nu deranjeze experiența jocului. Când jucătorul va intra într-un cub, el va rula un script, iar acel script va rula un voice over plus o subtitrare în josul ecranului, în limba aleasă de jucător.
După rularea sunetului, jocul se va salva, creând un save-file de unde jucătorul își poate continua jocul, iar cubul plus sunetul respectiv vor fi șterse, încât jucătorul să nu asculte din nou aceeași bucată de sunet.
Figura 24: Procedeul de redare a fișierului audio
Figura 25: Cod pentru redarea fișierelor audio
4.2.4 Spawn Objects
Aici vom găsii toate elementele și modelele găsite pe hartă, precum mașini, trenuri, poduri, stâlpi de iluminare și multe alte modele ce le putem regăsii. Opțiunile de editare ale acestora nu sunt multe la număr, dar sunt foarte importante.
Scalarea, este una dintre cele mai importante schimbări ce le putem aduce unui model. Putem sa le facem mai mici, mai înalte, mai late sau mai subțiri. Am încercat să fac majoritatea obiectelor găsite pe insulă cât mai aproape de realitate, fără să aibe dimensiuni ciudate.
O altă editare ce putem să le aducem este adăugarea coliziunii. Unity oferă o funcție automată de a adăuga coliziune, dar câteodată poate fi incompletă sau pur și simplu greșită. Noi ca dezvoltatori putem crea orice fel de coliziune la un obiect, încât jucătorul să nu treacă prin acel model, încercând să fie cât mai realistic.
4.2.5 Tenkoku Dynamic Sky
Figura 26: Exemplu cer implementat de Tenkoku Dynamic Sky
Este un asset care ne permite să adăugăm un cer mult mai bun decât cel oferit de Unity, fiind mult mai aproape de realitate. Ne oferă diferite funcții de editare, precum schimbarea vitezei norilor, densitatea lor, direcția în care ei se mișcă.
Cel mai important lucru oferit de acest asset este adăugarea unei surse de lumini. Fiecare joc va avea nevoie de această sursă. În caz că lipsește sursa de lumină, umbrele și reflecțiile vor fi aleatorii, dând un aer de falsitate. În cazul nostru, sursa de lumină aflată în acest joc este soarele, unde putem edita intensitatea sa, direcția razelor de lumină, poziționarea lui.
Acest asset are și o funcție automată. De exemplu dacă introducem o oră și un anotimp, el va încerca să reproducă soarele din acea perioada. O funcție care poate ajuta destul de mult pe dezvoltator.
4.2.6 Gaia
Este un asset pentru Unity Game Engine care creează forme de relief automat, folosind ștampile ale zonelor din realitate pe pământ. Poate adăuga o textură la teren automat, detectând terenul folosit, poate ajusta înălțimea terenului.
O altă funcție care o oferă este adăugarea de copaci și iarbă automat, în funcție de verticalitatea reliefului pentru a păstra cat mai realist peisajul aflat în joc.
Dacă este să ne luăm după recenziile dezvoltatorilor, acest asset este cel mai recomandat dacă dorim să creăm o hartă care nu este desprinsă din Sci-Fi.
4.2.7 Map Collider
În acest grup avem câteva panouri sau mai bine spus pereți, care pentru jucător sunt invizibili. Rolul acestora este de a delimita zona, încât jucătorul să nu poată părăsii locul în care se desfășoară jocul.
Fiecare perete are o coliziune adăugată, încât nimic nu poate trece de acei pereți.
Figura 27: Map collider
4.2.8 Librărie fișiere audio
Modul în care am ales să implementez fișierele audio sunt printr-o librărie audio creată printr-un script simplu în C#.
Acest mod mi s-a părut cel mai optim mod de a le implementa. O alternativă era ca fiecare cub din cele descrise mai sus sa ruleze un anumit fișier audio. Această variantă era mai ușor de dezvoltat, dar apăreau bug-uri și câteodată sunetul deja redat nu dispărea. Așadar, am ales această variantă la recomandarea unor persoane din comunitate.
Figura 28: Cod librărie fișiere audio
4.3 Procesul de încărcare și descărcare a aplicației
Jocul va fi încărcat pe serverele platformei Steam după aprobarea jocului. El va fi încărcat sub formatul .exe, de unde fiecare utilizator care deține o copie a acelui joc va putea să îl descarce oricând el dorește. O conexiune la internet este nevoie doar când utilizator dorește să descarce aplicația. Daca se dorește rularea acestei jocului, conexiune la internet nu mai este obligatorie.
Fiecare cont de Steam, are o regiune de descărcare, ea fiind automat completată de către aplicație cu țara de unde suntem conectați. Rolul acestei regiuni de descărcare este de a face utilizatorul de a descărca jocul direct de pe serverele din acea țară.
Nu există un număr maxim de conexiuni simultane asupra unui singur joc, putând exista zeci de mii de conexiuni active și simultane asupra jocului.
Procesul de descărcare va putea fi vizibil pentru utilizator cu toate informațiile de care poate avea nevoie. Se poate regăsii viteza de descărcare, viteza de scriere pe HDD, un timp estimativ până la terminarea descărcării și un grafic cu fluctuațiile vitezei de descărcare.
Figura 29: Procesul de descărcare a unui joc de pe platforma Steam
Jocul va fi încărcat o singură dată de către dezvoltator. Update-urile aduse jocului vor fi încărcate, în același procedeu iar utilizatorii care au jocul deja instalat, vor primii și instala updateul instant.
Capitol 5 – Scene
Fiecare joc video este alcătuit din scene. Jocul propriu-zis, unde jucătorul controlează acel caracter este o scenă.
Jocul prezentat în această lucrare, beneficiază de mai multe scene, care le voi prezenta mai jos. Traseul parcurs de utilizator dar și de joc pentru a se intra în jocul propriu-zis este:
Figura 30: Traseul parcurs de utilizator prin toate scenele implementate
5.1 Scena de pornire a jocului
Prima scenă de care jucătorul se va lovi este cea de la pornirea jocului. În acea scenă se va afla o fereastră mică cu un logo și două tab-uri. În primul tab, se vor afla setările grafice ale jocului. Jucătorul va putea să își aleagă rezoluția pe care o dorește să o folosească în timpul jocului, să aleagă calitatea grafică în funcție de componentele PCului său și pe care monitor dorește să joace, în caz ca are mai multe monitoare. În al doilea tab vom găsi tastele folosite pentru controlarea caracterului (key inputs). Jucătorul poate să schimbe tastele care vin deja setate, în funcție de preferințe. Tastele care vin deja setate sunt W (pentru mers în față), S (pentru mers în spate), A (pentru mers în stânga) și D (pentru mers în dreapta).
WASD sunt tastele cu care toate jocurile vin presetate, fiind deja un standard pentru jucători să se miște cu acele taste.
Vor apărea și două butoane în josul ferestrei. Unul dintre ele este numit PLAY!, iar dacă utilizatorul va da click pe el va fi trimis în următoarea scenă. Cel de-al doilea buton este numit QUIT, iar dacă utilizatorul va da click pe el va închide aplicația.
Figura 31: Fereastră de pornire a jocului
5.2 Scena de intro a jocului
În această scenă vom găsi un fișier video în formatul .MOV în care va fi scris numele firmei (doar ca și exemplu) plus niște animații cu sunete în timp ce apare scrisul.
De obicei în acest intro va apărea numele firmei, ratingul ESRB, tehnologiile folosite și drepturile de autori dacă este nevoie.
Eu am ales să fac un intro minimalist în care scrisul are o animație de scris de mână în care se va auzi un sunet de scris pe foaie cu un creion.
Programul folosit pentru crearea acestui video este Adobe AfterEffects CS6. Rezoluția video-ului este 1920×1080, acesta fiind maximul în care jocul poate fi rulat.
Figura 32: Intro al jocului prezentat
5.3 Scena de Meniu al jocului
După ce se va termina rularea fișierului video din a doua scenă, descrisă mai sus, utilizatorul va intra în cea de-a treia scenă, adică în Menu.
Figura 33: Screenshot din scena de Menu al jocului
Este un meniu simplist, care oferă toate butoanele de care utilizatorul va avea nevoie. În fundal se va regăsi o poză din joc, cu niște particule galbene plutitoare având rol doar de design. Tot în fundal se va auzi și o melodie clasică, cea care se va auzi și în timpul jocului.
Butoanele și textul au efectul de “parallax” implementat. Asta înseamnă dacă utilizatorul va mișca cursorul în timp ce se află în meniu, butoanele și textul din meniu vor “urmării” cursorul. De exemplu, daca cursorul se află în stânga, butoanele și textul se vor orienta puțin spre stânga.
Butoanele aflate în meniu sunt cinci la număr.
Continue – acest buton va încărca fișierul de salvare a progresului din joc și va lăsa jucătorul să continue de unde a rămas ultima oară. În caz ca nu există un fișier de salvare, adică este prima dată când se joacă acest joc, butonul nu va face nimic.
New Game – acest buton va introduce jucătorul la începutul jocului. În caz că există un fișier de salvare a progresului, acesta va fi șters și înlocuit cu altul nou.
Language – Acest buton ne va duce într-un alt meniu pentru a lăsa jucătorul să aleagă limba dorită a subtitrărilor. Momentan, Oracle dispune de mai multe limbi, precum engleza, germană, rusă și chineză. Mai există și un al cincilea buton, numit Back, care ne va aduce înapoi la meniul principal. După ce utilizatorul va selecta limba dorită, el va fi adus înapoi în meniul principal, automat, fără să fie nevoit să dea back.
Credits – În acest buton putem regăsii toate persoanele care au contribuit la acest joc, precum scriitoarea, naratorul, compozitorul melodiei din fundal și dezvoltatorii.
Quit – Al cincilea buton, și ultimul din meniu, rolul său este simplu. Ieșirea din joc.
5.4 Scena de încărcare (loading screen)
Figura 34: Loading Screen
După selectarea butonului de Continue sau New Game din meniu, utilizatorul va sării în a patra scenă care este cuprinsă dintr-un fișier video – numit Loading Screen.
Rolul său este de a nu ține utilizatorul cu un ecran negru până ce toate texturile și datele sunt încărcate și să arate progresul încărcării.
Fișierul este de zece secunde, mai mult decât destul pentru încărcarea jocului. În caz că încărcarea durează mai mult de zece secunde, fișierul video se va repeta, până când încărcarea este terminată.
5.5 Scena principală a jocului
A cincea scenă este cea principală, unde se află jocul propriu-zis. După redarea fișierului video de încărcare, jucătorul va apărea pe hartă.
Figura 35: Screenshot din joc
De aici jucătorul poate să controleze caracterul cu cheile prestabilite, sau cele introduse de el (dacă este cazul) și să pornească în explorarea adevărului.
Dacă jucătorul va apăsa tasta ESC (prestabilită) el va fi adus într-un meniu secundar, unde va avea patru butoane.
Resume – Dacă va fi apăsat de către jucător, va fi dus înapoi în joc.
Main Menu – Va duce jucătorul înapoi în meniul principal al jocului, descris mai sus.
Credits – Același meniu credits, descris și el mai sus.
Quit – Se va ieși din joc.
Capitol 6 – Concluzii
Ca și concluzii finale, cea mai mare provocare a fost implementarea librăriei audio sub forma care a fost prezentată în această lucrare. Inițial, dorisem ca fiecare zonă să redea un fișier audio specific. Sub forma care este implementată acuma în joc, este optimă pentru ceea ce jocul dorește să ofere. Ca și o comparație între cele două moduri în care redarea fișierelor audio, este că jucătorul putea să omită o zonă și să sară peste o parte importantă din poveste. Sub acest mod, jucătorul va asculta toate capitolele poveștii, în ordine fără a omite o parte, el vizitând oricare punct de interest (POI) dorește.
Acest tip de jocuri sunt pentru jucătorii cărora le place să caute adevărul și să afle misterul. În spațiul proiectat cu obiecte ascunse, misterioase și secrete interpretabile, mecanicile valabile sunt de a explora, descoperii, a deschide și a explora mai mult. Actul virtual de a merge, devine ceva mai mult, un angajament cu povestea, făcând jocul să prindă viață.
Cum în ultimul timp, popularitatea cărților a scăzut față de anii trecuți, iar jocurile video devenind din ce în ce mai populare, în special în fața tinerilor, o implementare a acestui tip de jocuri ar putea fi destul de benefică pentru toată lumea. Mă refer la faptul că autorii de cărți sau nuvele, pot lucra împreună cu dezvoltatorii de jocuri pentru un mod mult mai ușor și plăcut de a transmite pe cale digitală povestea lor.
Recenziile aduse jocului prezentat sunt mixte. Cele negative pun accentul că harta este mare și că procesul de mers este prea lung, ajungând la monotonie, respectiv la plictisire. Cele pozitive, sunt de părere că harta și modelele plasate pe ea oferă o stare de nesiguranță și de necunoscut, făcând multe persoane să continue să joace jocul până vor afla răspunsul la întrebările lor.
Bibliografie
Horia Ciocârlie (2015). Tehnici de Compilare, Editura Orizonturi Universitare, Timișoara, 13-22 pp
Horia Ciocârlie (2016). Limbaje De Programare. Concepte Fundamentale, Editura Eurostampa, Timișoara, 13-50 pp
Joey Mayo (2015). C# Succinctly, Syncfusion Inc., Morrisville
http://www.businessinsider.com/esports-market-growth-ready-for-mainstream-2017-3
http://www.casualconnect.org/newscontent/11-2007/casualgamesmarketreport2007.html
http://www.docs.unity3d.com/Manual/index.html
http://www.docs.unrealengine.com/latest/INT/GettingStarted/RecommendedSpecifications/
http://www.gamepeople.co.uk/familygamer0105.htm
http://www.kalifi.org/2016/02/walking-simulators.html
http://www.knowledge.autodesk.com/support/maya/learnexplore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-3CC75458-42A5-4703-B001-6A7B53F6CAD7-htm.html
http://www.redblobgames.com/maps/terrain-from-noise/
http://www.rochester.edu/news/show.php?id=2764
http://www.store.unity.com
http://www.teambeyond.net/halo-3-loading-screen-easter-egg-discovered/
http://www.unity3d.com/unity/system-requirements
http://www.unrealengine.com/faq
http://www.xbox.com/en-US/developers/id
DECLARAȚIE DE AUTENTICITATE
A
PROIECTULUI DE FINALIZARE A STUDIILOR
Titlul proiectului _____________________________________________________
___________________________________________________________________
___________________________________________________________________
Autorul proiectului _____________________________________________
Proiectul de finalizare a studiilor este elaborat în vederea susținerii examenului de finalizare a studiilor organizat de către Facultatea _______________I.E.T.I._________________________ din cadrul Universității din Oradea, sesiunea________iulie_________ a anului universitar __2017___________.
Prin prezenta, subsemnatul (nume, prenume, CNP)_____________________
___________________________________________________________________
___________________________________________________________________,
declar pe proprie răspundere că aceast proiect a fost scris de către mine, fără nici un ajutor neautorizat și că nici o parte a proiectului nu conține aplicații sau studii de caz publicate de alți autori.
Declar, de asemenea, că în proiect nu există idei, tabele, grafice, hărți sau alte surse folosite fără respectarea legii române și a convențiilor internaționale privind drepturile de autor.
Oradea,
Data Semnătura
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Capitol 1 Introducere [302434] (ID: 302434)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
