1. Prezentarea temei ………………………….. ………………………….. ………………………….. . 2 1.1 Introducere… [614147]
TODO NUME A PP
– 1 –
Cuprins
1. Prezentarea temei ………………………….. ………………………….. ………………………….. . 2
1.1 Introducere ………………………….. ………………………….. ………………………….. ……. 2
1.2 Descrierea temei ………………………….. ………………………….. …………………………. 2
1.3 Scop și obiective ………………………….. ………………………….. …………………………. 2
1.4 Tehnologii utilizate ………………………….. ………………………….. …………………….. 3
1.5 Cazuri principale de utilizare a aplicației ………………………….. ……………………. 4
1.6 Organizarea lucrării ………………………….. ………………………….. …………………….. 5
2. Considerații teoretice ………………………….. ………………………….. ……………………… 6
2.1 Motorul grafic Unity ………………………….. ………………………….. …………………… 6
2.1.1 Generalități ………………………….. ………………………….. ………………………….. . 6
2.1.2 Înaintea existenței motoarelor grafice ………………………….. …………………… 7
2.1.3 Componentele principale ale unui motor grafic ………………………….. ……… 8
2.1.4 Motorul grafic Unity ………………………….. ………………………….. ……………… 9
2.1.5 Scurtă istorie ………………………….. ………………………….. ……………………….. 10
2.1.6 Platforma și Editorul Unity ………………………….. ………………………….. …… 11
2.2 Scripting API -ul Unity ………………………….. ………………………….. ………………. 12
2.3 Limbajul de programare C# ………………………….. ………………………….. ……….. 12
2.4 Elemente și noțiuni fundamentale de grafică ………………………….. …………….. 12
2.5 Balsamiq Wireframes ………………………….. ………………………….. ………………… 12
2.6 Sistemul de versionare Git ………………………….. ………………………….. …………. 12
2.7 WAMP Server ………………………….. ………………………….. ………………………….. 12
2.8 Baze de date ………………………….. ………………………….. ………………………….. … 12
Bibliografie ………………………….. ………………………….. ………………………….. ……………… 13
TODO NUME A PP
– 2 –
1. Prezenta rea temei
1.1 Introducere
Tema alesă pentru această lucrare de licență se numește „TODO ” și reprezintă o
aplicație de divertisment care rulează pe sistemul de operare Microsoft Windows. Aplicația
dezvoltată este un joc 3D a căr ui concept se bazează pe două genuri diferite de jocuri : „Stealth ”,
în care jucătorul trebuie să se furișeze prin interiorul unei anumite locații în căutarea ieșirii fără
a fi detectat de către antagoniști, și „Time Attack ”, în care obiectivul principal este completarea
nivelului într -un timp cât mai scurt pos ibil.
1.2 Descrierea temei
Jocul are la bază cele două concepte amintite mai sus, alături de care au fost
implementate mici elemente distinctive desprinse din alte genu ri răspândite de jocuri, cum ar
fi: acordarea unui punctaj la finalizarea cu succes a niv elului, posibilitatea jocatorului de a -și
alege dificultatea pe care dorește să joace, pr ezența pe parcursul nivelului a obiectelor ce pot fi
colectate de către jucăto r pentru a primi o mică bonificație , existența unei abilități speciale ce
poate fi utiliz ată de catre jucător când acesta simte că are nevoie de puțin ajutor și, de asemenea,
a unui sistem de stocare și afișare a punctajelor jucătorilor . Toate aceste eleme nte țintesc la
crearea unei experiențe plăcute, inedite pe parcursul jocului și la accent uarea factorului
competitiv între jucători.
1.3 Scop și obiective
Mi-am propus să dezvolt această aplicație deoarece îmi doream să mă familiarizez mai
mult cu motorul grafic Unity, să îmi dezvolt mai mult abilitățile de programare în limbajul C#
și pentru că întotdeauna am fost fascinat de jocuri și mi -am dorit să creez, eu însumi, unul.
Jocul se adresează categoriei de jucători ocazionali, care își doresc să evadeze,
temporar, din stresul cotidian și să se delecteze cu un joc captivant și ușor de învățat.
TODO NUME A PP
– 3 –
Obiecivele principale pentru realizarea lucrării sunt următoarele:
• Determinarea și selecționarea tehnologiilor care ne permit implementarea
aplicatiei propriu -zise;
• Realizarea unei descrieri formale a aplicatiei și crearea unor mockupuri ce ne
vor facilita organizarea în timpul implementării;
• Crearea lumi în care există personajele, a unui decor și a unei atmosfere potrivite
pentru tematica jocului , utilizand doar resurs e puse la dispozitie în mod gratuit
în cadrul magazinului cu active Unity ;
• Dezvoltarea un ui nucleu logic al jocului, pe baza elementelor esențiale ale
genurilor de jocuri „ stealth ” și „ time attack ”, precum și crearea unui sistem de
punctare a jucătorilor î n care punctajul primit să fie în strânsă corelație cu timpul
petrecut de -a lungul nivelu lui, dificultatea selectată și eventuale bonificații și
penalizări adunate ;
• Încorporarea unor elemente adiționale inspirate din alte genuri răspândite de
jocuri, cum a r fi: obiecte colectibile care oferă diferite bonusuri jucătorului, dar
în același timp a u și posibilitatea de a genera efecte negative asupra sa, și
abilități speciale ce pot fi folosite de către jucător, cu timp de reîncărcare și
sistem de penalizare pro priu;
• Realizarea unei funcționalități prin care să se poată stoca punctajele jucătorilor
intr-o bază de date, pe un server, de unde să poată fi accesate pentru a fi afișate
într-o pagină dedicată vizualizării celor mai mari punctaje;
• Realizarea aplicației într -o manieră care să permită cu ușurință dezvoltări
ulterioare ;
• Întocmirea documentație i tehnice.
1.4 Tehnologii utilizate
În decursul realizării lucrării au fost utilizate numeroase cunoștințe acumulate în
decursul celor patru ani de studiu, de la discipline precum : programarea jocurilor, grafică,
programare orientată obiect, baze de date, te hnologii WEB , modelarea aplicatiil or software,
interactiunea om -calculator.
TODO NUME A PP
– 4 –
Pentru dezvoltarea aplicatiei s -au folosit urmatoarele tehnologii:
• Motorul grafic Unity ,
• Scripting API-ul Unity ,
• Mediul de dezvoltare Microsoft Visual Studio 2017,
• Limbajul de prog ramare C#,
• Sistemul de versionare Git,
• Serviciul de găzduire web GitHub,
• WAMP Server pentru a crea un server virtual local,
• Sistemul de gestionare a bazelor de date MySQL,
• Limbajul de script PHP ,
• Balsamiq Wireframes pentru crearea de mockupuri,
• TODO pentru generarea fișierului de instalare al ap licației.
Am ales folosirea motorului grafic Unity pentru implem entarea aplica ției deoarece este
de actualitat e, este în contin uare suportat, este puternic susținut de o comunit ate largă , pune la
dispozi ție o colec ție numeroasă de active în interiorul maga zinului de active și reușește să țină
pasul cu cerințele vremurilor moderne r ămân ând re levant și, în acela și timp, prietenos cu
utilizatorii noi , neexperimenta ți, dar și pentru că permite scrierea de cod în limbajul C#.
1.5 Cazuri principale de utilizare a a plicației
Admin bazei de date care poate face SIUD / CRUD ?
Aplicația este proiectă pentru a suporta un singur actor, și anume, jucătorul, căruia i se
atribuie următoarele cazuri de utilizare:
• Instalarea apl icației pe un dispozitiv cu sistem de operare Microsoft Windows;
• Luarea deciziei cu privire la setarea gradului de dificultate al jocului;
• Utilizarea sau evitarea utilizării abilității speciale;
• Colectarea sau evitarea colectării obiectelor;
• Completare a sau eșuarea în completare a jocului;
• Înregistrarea punctajului sau evitarea înregistrării lui;
• Vizualizarea celor mai mari punctaje.
TODO NUME A PP
– 5 –
1.6 Organizarea lucrării
Prezenta lucrare este structurată sub forma a 5 capitole, în cadrul cărora s unt abordate
atât deta lii generale, tehnologiile utilizate, arhitectura și detalii tehnice referitoare la
dezvoltarea aplicației , principalele provocări întampinate în implementare, cât și concluzii și
detalii despre posibile dezvoltări ulterioare ale aplicației.
Primul capitol , „Prezentarea temei”, este unul introductiv, în care sunt prezentate
aspecte generale: o scurtă descriere a temei și a scopului ei, enumerarea tehnologiilor utilizate
și a cazurile principale de utilizare a aplicației.
În cadrul celui de al II -lea capitol , „Considerații teoretice”, descrie tehnologiile care ne-
au permis să proiectăm și să implementăm aplicați a, cât și să salvăm și să gestionăm sursele
proiectului în toate etapele dezvoltării și implementării lui.
Capitolul 3 este constituit dintr -o descrie re formală a aplicației și modului în care
aceasta fu ncționează, cuprinzând detalii despre arhitectura apl icației, cazurile de utilizare
descrise și dezvoltate conform standardelor în vigoare și mockupurile utilizate în proiectarea
aplicației.
În cadrul ur mătorului capitol, denumit „Detalii de implementare”, sunt prezentate atât
principalele dificultăți și provocări întâmpinate în timpul dezvoltării aplicației, cât și modul în
care acestea au fost rezolvate.
Ultimul capitol, „Concluzii și dezvoltări ulterio are” este rezervat pentru două părți
importante: câte va concluzii referitoare la cât de mult am reușit să îndeplinim din ceea ce ne –
am propus la început și câteva aspecte legate de lucrurile pe care nu am reușit să le
implementăm momentan și dezvoltări ult erioare pe care le poate suferi aplicația în viitor.
TODO NUME A PP
– 6 –
2. Considerații teoretice
2.1 Motorul grafic Unity
2.1.1 Generalități
Pentru început, vom arunc a o privire asupr a conceptului de „ motor grafic ”, ce
reprezintă și ce implică acesta , și să aflam c âteva dintre capabilitățil e principale ale motoarelor
grafice .
Un motor grafic , denumit și motor de joc , arhitectur ă de joc sau framework de joc ,
reprezintă un mediu î ntreg de dez voltare software , care permite at ât interacțiunea prin acțiuni
de tip „drag and drop” c ât și prin crearea de scripturi personalizate pen tru a def ini diferite
comportamente , conceput și con struit pentru a facilita dezvoltarea de jocuri video pentru
diferite platforme .
Motoarele grafice sunt folos ite de către dezvoltatori pentru a construi jocuri v ideo
pentru computere cu diferite sisteme de operare , console și dispozi tive mobile . Funcționali tățile
esențiale oferite de către majoritatea motoarel or grafice includ : motoare de randare pentru
grafic ă 2D și 3D ; motoare re sponsabile de aproximarea și simu larea diferitelor sisteme fizice,
cum ar fi interac țiunea cu obiecte rigide și dinamica fluidelor , detectarea coliziunilor și
răspunsurilor la coliziuni î ntre obiecte ; instrumente de manipularea și redarea de conținut
audio , video și animații ; interfețe de script are; instrumente pentru lucrul cu rețele, in teligenț ă
artificia lă, thread uri și com ponente specializate pe optimizarea și managementul m emoriei în
cadrul aplicați ilor. (Wikipedia, 2020)
Toate aceste instrumente sunt împachetate intr -un mediu de dezvoltare vizual, in tegra t
pentru a permite și facilita o dezvoltare c ât mai rapid ă și într-o manieră cât mai sim plificată a
jocurilor. Astfel, m otoarele grafice furni zează o platform ă software solid ă, foarte flexibilă și
reutilizabilă direct din mo mentul finalizării instal ării acestora, fără a necesita alte interven ții
asupra mediului de dezvoltare pentru a crea un joc , astfel reducând co mplexitatea , timpul
necesar pentru de zvoltare și cost urile dezvoltării și intrării pe pia ță a u nui joc, practic, to ți
factorii cu impact cri tic din industria extrem de competitivă a jocurilor video.
TODO NUME A PP
– 7 –
De asemenea, o caracteristică foart e important ă motoarel or grafice este că oferă
abstractizarea la nivel de plat formă, permițând aceluia și joc să ruleze pe o gamă foart e
diversi ficată de platforme , de la console de joc uri, la dispozitive mobile și computere personale ,
prin modificarea unor mici porțiuni din intreg codul sursă al jocului.
Deși fiecare limbaj de programare este mai mult sau mai pu țin diferit din p unct de
vedere structural și al nivel urilor de acces la func ții specifice oferite , motoarele grafice pot fi
scrise în orice limbaje de programare , de la C și C++, la Java , iar adesea, este ad ăugat și un
limbaj de script , spre exemplu Ja vascript, ca un strat sec undar, în scopul ac celer ării ritmului de
dezvoltare .
Datorită avantaj elor enumerate anterior, oferite de motoarele grafic e, în ciuda
specializării și înclina țiilor lor spre industria jocurilor video, ele sunt adesea utilizate pentru
alte tipuri divers e de aplicații interactive cu nevoi grafic e, de la aplicații din domeniu l
marketing -ului, la aplicații pentru simulare și vizualizare de realiz ări arhitecturale : clădiri,
design interior, etc.
2.1.2 Înaintea existenței motoarelor grafice
Înainte de existent a motoarelor grafice , jocurile era u scrise, în mod obișnuit ca și entități
singu lare. Spre exemplu, un joc pentru c onsola Atari 2600 trebuia să fie proiectat de j os în sus
pentru a utiliza hardware -ul disponibil într-un mod optim. Aceast ă practică era foarte
costisitoar e, mai ales din punct de vedere al timpului , iar, datorită apari ției ulterioar e a
motoarelor grafice , este rar întâlnită astăzi .
Chiar dac ă ecranul și dimen siunea sa nu puneau probleme, constrângerile legate de
memorie împiedicau orice încercare de cre ere a unui design pentru un motor grafic .
Mai t ârziu, de și aceste constr ângeri începeau să își piardă , treptat , din relevan ță și
impact, existau prea pu ține aspecte comune între jocuri , iar din acest motiv, efortul necesar
creeri unui motor grafic mare, pentru jocuri multiple nu se justif ica. Ca urmare, printre
companiile din industria de jocuri video exista o practic ă comună de a -și dezvolta pr opriile
motoare grafice pentru a fi utilizate în aplicații 1st party . (Prezi, 2014)
TODO NUME A PP
– 8 –
2.1.3 Componen tele principale ale unui motor grafic
Așa cum a fost precizat anterior, un astfel de framework este compus din tr-o
multitudine de componente d iferite . Așadar, în continuare vor fi prezentate 3 dintre cele mai
importante c omponente ale unui astfel de frame work.
Motorul de randar e
După cum ne sugerează și numele, motorul de randare este respon sabil de generarea
elementelor grafice 3D animate folosind diverse metode , cum ar fi : scanline rendering,
rasterizare, ray-casting, ray-tracing, etc . De obicei , motoar ele de randare nu sunt p rogramate și
compilate , pentru a fi executate apoi direct de c ătre CPU sau GPU, ci sunt cons truite pe baza
uneia sau a ma i multor interfețe de pr ogramare a aplicațiilor de randare, cum ar fi Direct3D,
Vulkan sau OpenGL. De asemenea, librării low -level precum DirectX, Simple DirectMedia
Laye r (SDL ) sau Graphics Library FrameWork (GLFW) sunt folosite de s în dezvoltarea de
jocuri deoarece oferă acces la un sistem de ferestre independent de platforma pe care rulează
aplicația . Acest aspect asigură un anumit gra d de abstractizare software a graficii. (Wikipedia,
2020)
Motorul de fizică
Acesta este responsabil d e crearea unei simulări c ât mai realiste a legilor fizicii
aplicabile în cadrul aplicaț iei, oferind dezovltatorilor o colecți e de funcții concepute pentru
simularea for țelor fizice care ac ționeaza asupra obiectelor din cadrul aplicației , detectarea
coliziunilor între diferite obiecte și sim ularea unor r ăsunsuri realiste la coliziunile respective ,
prin aplicarea diverselor forțe fizice asupra obiectelor afectate .
Motorul au dio
Motorul audio este , și el , una dintre compone ntele principale ale motorului grafic. El
este răspunzător de înc ărcarea , alterarea , decomprimarea și redarea sunetului prin s istemul de
difuzoare a l sistemului pe care aplicaț ia rulează , utilizand di verși algoritmi specializați
implementa ți în cadrul acest uia. De ase menea, î n cazul motoarelor audio mai moderne și mai
TODO NUME A PP
– 9 –
avansa te, se pot rea liza diverse efecte , cum ar fi efectul de ecou, și se pot efectua ajustări în
ceea ce priveste amplitudine a și modul de oscilaț ie al semnalului audio .
2.1.4 Motorul grafic Unity
Exista o varietate largă de motoare grafice pe piață . Unul dintre cele mai popula re și
mai utilizate pe scară largă este Unity . De la fizic a realistă a jocur ilor, p ână la elemente grafice
și peisagistice , Unity oferă tot ceea ce un dezvoltator , fie el începător sau experimentat, are
nevoie pentru a proiecta următorul său mare joc pentru computer, consolă sau mobil.
Unity este un motor grafic multi-platform ă care permite cre erea de conținut 3D
interactiv cu ușurinț ă. Acesta este folosit de o multime de dezvoltator i indie1 pentru
funcț ionalitatea să excelent ă, conținutul de calitate înaltă , pentru capacitatea de a fi utilizat
pentru aproape orice tip de joc și pe ntru modelul tarifar oferit . Unity este oferit gratuit pentru
organiz ații cu venituri sub $100.000 anual , prețul fiind mai apoi sub formă de abonament bazat
pe veniturile clien ților.
Unity oferă , de asemenea , și o ediție personală complet gratuită pentru oricine. Aceasta
fiind și cea utiliza tă pentru implementarea acestei teme.
Acest model de business a făcut Unity să devin ă cel mai p opular motor grafi c printre
studiourile mici care nu î și permit să plătească pentru utilizarea unor motoare grafice scumpe.
Această popularizare a f ramework -ului nu a venit neânsoțită , ci, odată cu ea beneficiind
puternic piața de desfacere a magazinului de active. Acest magazin , denumit Unity Asset Store,
este un portal unde dezvoltatorii pot achiziționa sau vinde diverse materiale pre -configurate,
de la peisaje, skybox -uri, personaje , la animații, efecte speciale, vehicule, arme, etc. Acestea
pot fi, de asemenea, puse la dispo ziția dezvoltatorilor în regim gratuit , cum este, de exemplu,
cazul setului de obiectelor 3D utilizate în crearea h ărții, a pe rsonajului principal și al
antagoniștilor implementa ți în această tem ă.
Câteva dintre titlurile recente realizate cu ajutorul motorului grafic Unity sunt :
„Hearthstone, Heroes of Warcra ft”, „Pillars of Eternity” sau „Pokemon G O”.
1 Indie – Referitor la industria jocurilor video, un joc indie se refer ă la un joc independent, creat de obicei
de persoane individuale sau echipe mici de dezvoltator i, fără a beneficia de suport financiar de la editori mari de
jocuri .
TODO NUME A PP
– 10 –
2.1.5 Scurt ă istori e
Unity Technologies a fost fon dată în anul 2003, urm ând ca apoi, în anul 2005 , să fie
lansat Unity Engine, motorul grafic despre care știm c ă a raportat , în anul 2016, că , din întreaga
lume, controlează aproximativ 45% din pia ța moto arelor grafic e.
Acesta și-a făcut apariția pentru prima dată la Conferinta Dez voltatorilor Mondiali
Apple Inc. din iunie, 2005 , ca fiind un motor grafic pentru jocuri destinat exclusiv pentru
sistemul de operare Mac OS X. Acesta țintea la „democratizarea” dezvoltării jocurilor și a
reușit s ă fac ă procesul de dezvoltare de jocuri video mult mai accesibil dezvoltatorilor.
În 2007 a fost lansat Unity 2.0, care urma să aduc ă aproximativ 50 de fu ncținalități noi ,
printre care : un motor de generare de teren optimizat pentru me dii 3D detaliate , umbre
dinami ce reprezentate în timp real, lumini și proiectoare direcționale, radare vide și multe alte
funcționalități.
Unity 3.0 a fost lansat 3 ani mai t ârziu, în septembri e 2010 și a adus imbun ătățiri care
au extins ca pabilitățile grafice ale motorului , cu precădere pentru computere și console de
jocuri , a introdus asisten ță pentru Android , numeroase integrări pe ntru îmbunătățirea
sistemelor responsabile de iluminare și, printre altele, a introdus filtre audio .
Doi ani mai târzi u, Unity Technologies a continuat s ă inoveze și a livrat în noiembrie
2012 Unity 4.0, versiune care a ad ăugat DirectX 11, suport pentru Adobe Flash Player și noi
instrumente de anima ție.
Unity 5.0 , lansat în 2015, a introdus îmbun ătățiri maj ore la capitolele „iluminare” și
„audio”, această versiune oferind iluminare global ă în timp real , posibilitatea de previzualizare
a ma pării luminii , a adăugat efecte noi pentru a ajuta jocurile dezvoltate să para mai pu țin
generice și a introdus un nou motor de fizic ă, Nvidia PhysiX 3.3 .
Din momentul prim ei lansări și până în prezent, Unity a continua t să crească , a suferit
numeroase integr ări, a adăuga t nenumărate functionalit ăți noi și le-a îmbunătăți t pe cele dej a
existente , astfel că, până în 2018 a ajuns să evolueze într-o versiune care suportă peste 25 de
platforme , de la Windows, Ma c OS , Linux , la Android, iOS, WebGL , Tizen și platforme pentru
televizoare inteligente și console de jocur i, cum ar fi Play Station 4.
În prezent, motorul grafic Unity poate fi folosit pentru a crea jocuri cu realitate
bidimensiona lă, tridimensio nală, realitate virtual ă, realitate autumentat ă, precum și simulări
TODO NUME A PP
– 11 –
sau alte experiențe impresionante . Din acest mo tiv, acesta a fost adoptat de numeroase industrii
din afara ariei jocurilor video , industrii precum : film, ingi nerie, automotive , arhitectur ă și
design, construcții, etc. (Wikipedia, 2020)
2.1.6 Platforma și Editorul Unity
TODO NUME A PP
– 12 –
2.2 Scripting API -ul Unity
2.3 Limba jul de programare C#
2.4 Elemente și noțiuni fundamentale de grafic ă
https://en.wikipedia.org/wiki/3 D_rendering RANDARE
2.5 Balsamiq Wireframes
2.6 Sistemul de versionare Git
2.7 WAMP Server
2.8 Baze de date
TODO NUME A PP
– 13 –
Biblio grafie
Prezi. (2014). Preluat de pe https://prezi.com/w56f8xawwcyg/the -history -of-game -engines/
Wikipedia. (2020). Preluat de pe https://en.wikipedia.org/wiki/Game_engine
Wikipedia. (2020). Preluat de pe https://en.wikipedia.org/wiki/Unity_(game_engine)
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: 1. Prezentarea temei ………………………….. ………………………….. ………………………….. . 2 1.1 Introducere… [614147] (ID: 614147)
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.
