FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI TIMIȘOARA [303574]

FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA

UNIVERSITATEA “IOAN SLAVICI” [anonimizat]. MIRCEA VLĂDUȚIU

ABSOLVENT: [anonimizat] 2017 –

FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA

UNIVERSITATEA “IOAN SLAVICI” [anonimizat]

”VISELE COPILĂRIEI”

CONDUCĂTOR ȘTIINȚIFIC

prof. dr. ing. MIRCEA VLĂDUȚIU

ABSOLVENT: [anonimizat]

2017

UNIVERSITATEA DIN ORADEA

FACULTATEA de Inginerie Electrică și Tehnologia Informației

DEPARTAMENTUL Calculatoare și tehnologia informației

TEMA ________________________

Proiectul de Finalizare a studiilor a student: [anonimizat]

1). Tema proiectului de finalizare a studiilor: Conceperea jocului ”VISELE COPILĂRIEI”.

2). Termenul pentru predarea proiectului de diplomă 31 mai 2017

3). Elemente inițiale pentru elaborarea proiectului de finalizare a studiilor: scripting în limbajul de programare C#, motor de joc Unity3D.

4). Conținutul proiectului de finalizare a studiilor: un joc realizat pentru calculator având o planșă, [anonimizat].

5). Material grafic: [anonimizat]3D.

6). Locul de documentare pentru elaborarea proiectului de diplomă: manuale pentru programare în C#, tutoriale ale motorului Unity3D.

7). Data emiterii temei 20 octombrie 2016

Coordonator științific

prof. dr. ing. [anonimizat]

A

ABSOLVENT: [anonimizat] 2017

Titlul proiectului Conceperea jocului ”Visele copilăriei”

Structura proiectului

Proiectul este structurat pe șase capitole:

Introducere

I Abordare și organizare

II Baza teoretică a aplicației

III Scopul și specificațiile aplicației

IV Structura generală a aplicației

V Rularea și setările aplicației

VI Concluzii

Aprecieri asupra conținutului proiectului de DIPLOMĂ, (finalizare a studiilor), [anonimizat], actualitate, deficiențe

Lucrarea se caracterizează printr-o construcție echilibrată cu o bună pondere între dezvoltarea noțiunilor teoretice și descrierea aplicatiei. [anonimizat] o bună coerență. Lucrarea conține o parte aplicativă consistentă implicând soluții atât hardware cât și software. Capitolele cuprind o descriere detaliată a modulelor hardware și software implicate în realizare.

Aprecieri asupra proiectului (se va menționa: [anonimizat], calitatea și diversitatea surselor consultate; modul în care absolvent: [anonimizat], totuși investigația de literatură de specialitate este limitată. Sursele bibliografice sunt alese în mod corespunzător. Considerăm tematica dată spre rezolvare

(se va menționa: opțional locul de documentare și modul în care absolvent: [anonimizat] 12 titluri bibliografice, informațiile luate din surse fiind citate în mod corespunzător.

Concluzii (coordonatorul proiectului trebuie să aprecieze valoarea proiectului întocmit, relevanța studiului întreprins, competențele absolventului, rigurozitatea pe parcursul elaborării proiectului, consecvența și seriozitatea de care a dat dovadă absolventul pe parcurs)

În baza celor menționate mai sus apreciez lucrarea elaborată de absolventă ca fiind valoroasă, bazându-se pe un amplu studiu de literatură de specialitate și absolventa dovedind reale competențe în domeniul calculatoarelor.

Redactarea proiectului respectă ………………………………………………….cerințele academice de redactare (părți, capitole, subcapitole, note de subsol și bibliografie).

Consider că proiectul îndeplinește/ nu îndeplinește condițiile pentru susținere în sesiunea de Examen de LICENȚĂ (finalizare a studiilor) din IULIE 2017 și propun acordarea notei ………………

Oradea,

Data 20 iunie 2017 Conducător științific

prof. dr. ing. Mircea Vlăduțiu

Introducere

Jocul pe calculator cel mai vechi, o simulare de rachete, a apărut în 1947, apoi între anii 1950 și 1960 au fost realizate de Jon Snell primele jocuri video. În 1952, o versiune a jocului X și 0 a fost creată de A. S. Douglas . În 1958 a apărut jocul ”Tennis for Two” creat în laboratoarele din Brookhaven de către William Higinbotham. Programul considerat primul joc pe calculator, fiind și unul dintre cele mai importante, este un joc de simulare spațială numit Spacewar creat în 1962 de către Steve Russel.

”Părintele Jocurilor Video” este considerat a fi Ralph Baer care, în 1967, a creat un joc pentru consolă asemănător cu Tennis for Two, iar în 1968 a patentat o versiune a unei console de jocuri numită Television Gaming and Training Apparatus. A creat în 1972 prima consolă, numită Magnavox Odyssey.

Acestea au fost începuturile jocurilor video, urmând apoi dezvoltarea continuă a acestora. De la primele console, unde codul mașină se facea cu ajutorul logicii discrete, și până până astăzi industria jocurilor a evoluat putând vorbi acum despre multe evenimente de prezentare a jocurilor, mondiale sau în România, precum și organizații de jucători profesioniști.

Unele tipuri de jocuri se pot juca doar online, cum ar fi cele ”MMO”( „Massively Multiplayer Online“) în care pot fi foarte mulți jucători în același moment, în aceeași lume virtuală.

Multe jocuri sunt o combinație de genuri stabilite în francize care folosesc aceleași caractere, situații, conflicte și teme în variantele urmatoare. De-a lungul timpului și odată cu creșterea fondurilor destinate producției jocurilor video a crescut valoarea lor comercială, iar cererea de talent creativ s-a mărit obligând aducerea de profesioniști din afara industriei specifice.

În ziua de azi, calculatorul a devenit o foarte importantă parte din viața noastră, jocurile pe calculator fiind foarte răspândite și variate, făcându-se competiții cu premii foarte mari. Dar sunt, de asemenea, foarte frecvent criticate de către părinți cu privire la potențialele daune cauzate prin expunerea copiilor la un conținut neadecvat.

Capitolul I. Abordare și organizare

I.1 Motivația abordării

Studii realizate în ultimii ani de către cercetători diferiți ne arată că jocurile video pot ajuta la dezvoltarea persoanelor, a abilităților emoționale și a celor intelectuale ale acestora. Ca un efect se arată și că aceste jocuri pot fi educative, ajutând copiii să-și dezvolte deprinderi și abilități pentru reușita pe mai departe în existență. Aceste jocuri pe calculator sunt din ce în ce mai populare, investițiile în acest domeniu fiind foarte mari.

Jocul este, indiferent de vârsta, o formă de socializare și relaxare, dar, într-adevăr, este mai popular în rândul adolescenților. În prezent jocul a luat tot mai mult forma virtuală fiind preferat cel transpus pe calculator, telefon, tabletă, în general dispozitive electronice.

Rolul jocurilor este benefic, reprezentând forma de socializare pentru cei mai timizi. Dacă individul se joacă pe calculator și se află într-o echipă virtuală, el nu știe cine se afla în spatele personajului și comunică mai bine nesimțindu-se presat să-și părăseasca zona de siguranță creată.

Jocul virtual testează și antrenează logica și reflexele, motorica, multitudinea de jocuri existente necesitând reflexe bune și o minte antrenată.

Jocurile virtuale ocupă un loc important în viața tinerilor, a copiilor, fiind un mod de relaxare și socializare. Acestea îi ajută la antrenarea simțurilor, la realizarea priorităților și a împărțirii timpului cât mai judicios pentru celalate lucruri importante existente în viața lor, cum ar fi școala, prietenii sau alte hobby-uri. În timpul jocurilor sunt necesare reacții rapide și decizii pe moment care ajută în supraviețuirea virtuală. Deci aceste reacții rapide antrenează creierul pentru a lua decizii în lumea reală. Jocurile au și rolul de a stimula luarea deciziilor corect de către jucător, acesta gestionând informațiile rapid și acționând în consecință.

Jocurile pe calculator pot ajuta la îmbunătățirea atenției distributive, al spiritului de observație, pot reduce anxietatea și stresul, restabili funcțiile motorii și ajută la îmbunătățirea vederii. Chiar dacă majoritatea jocurilor presupune o activitate sedentară, datorită evoluției tehnologice s-au dezvoltat generații noi de console care ajută la mișcare și dezvoltare fizică

În timp ce copiii se distrează, deprind și abilități și competențe prin rezolvarea problemelor, gândire critică, matematică și limbă. De asemenea, copiii pot învăța să fie mai creativi, să dezvolte abilități sociale și de colaborare prin interacțiunea cu alți jucători, să dezvolte abilități de rezolvare a problemelor și multe altele. Cu alte cuvinte jocurile video pot fi și educaționale nu doar distractive.

I.2 Organizarea lucrării

Lucrarea este alcătuită din Introducere si 6 capitole (Abordare și organizare, Baza teoretică a aplicației, Scopul și specificațiile aplicației, Structura generală a aplicației, Rularea și setările aplicației, Concluzii), fiecare capitol având două sau mai multe paragrafe, excepție făcând capitolele V și VI.

Aplicația vrea sa pună în valoare modalitățile de creare a unui joc video, cât și de a atrage pe cei neintreresați de acestea prin grafică, caracter draguț și inamici simpatici. Proiectarea acestuia are ca scop general implementarea unui mod de joc intuitiv având obiectivul de a se refugia din fața inamicilor și a-i învinge. Pentru ca acest lucru să se poată realiza, utilizatorul trebuie să-și folosească aptitudinile de a controla direct caracterul jocului prin câteva butoane de la tastatură și mouse. Abilitățile jucătorului puse la încercare sunt capacitatea de concentrare, gândirea, atenția distributivă pentru a observa toate elemente prezente în același timp pe ecranul jocului.

Capitolul II. Baza teoretică a aplicației

II.1 Motorul grafic Unity3D

Unity3D, dezvoltat de Unity Technologies, este un motor de joc pentru platforme multiple, este folosit la dezvoltarea de jocuri video pentru PC, console, dispozitive mobile și site-uri. Inițial a fost proiectat doar pentru Mac OS, la Worldwide Developers Conference Apple în 2005, apoi aceasta a fost extinsă ca să vizeze mai multe platforme, cincisprezece la număr.

Începând cu versiunea Unity 5.0, lansată la data de 3 Martie 2015, acesta a devenit complet gratuit, inclusiv toate caracteristicile, excepție făcând codul sursă și suportul. Unity se remarca prin capacitatea sa de face ca jocurile sa fie compatibile pe mai multe platforme.

Fig. II.1

Fig. II.1 reprezintă sigla Unity.

Motorul vizează următoarele API-uri: Direct3D pe Windows și Xbox 360; OpenGL pe Mac, Windows, Linux și; OpenGL ES pe Android și iOS; și API-uri de proprietate pe console de jocuri video, aceasta dând accent pe portabilitate. Acest motor permite specificarea mai multor setări de compresie a texturilor și de rezoluție a texturilor, pentru fiecare platformă de joc sprijină și oferă suport pentru cartografierea bump, cartografierea reflecției, cartografiere paralaxă, ecran ocluzie spațiu înconjurător (SSAO), umbre dinamice folosind hărți de umbre, render-to-texture și post-procesare full-screen. Având o mare diversitate, motorul grafic oferă un shader cu multe variante și o specificație de rezervă declarativă, aceasta permite motorului Unity să detecteze cea mai bună variantă pentru hardware-ul video curent, iar dacă nu sunt compatibile schimbă înapoi la un shader alternativ, aceasta ar putea sacrifica din unele caracteristici de performanță.

Versiunea ultimă de Unity adaugă anticipata iluminare globală realizată în timp real bazată pe tehnologia Geometrics Enlighten. Schimbări majore mai includ și physically-based shaders, HDR sky-boxes, sonde cu reflecție, mixer audio nou cu efecte și o unealtă nouă, îmbunătățită, folosită pentru crearea de animații.

Pe parcurs Unity a introdus și opțiunea de a dezvolta jocuri video 2D aceasta ajutând ca timpul necesar pentru a realiza jocul să fie redus considerabil. Sunt acceptate două limbaje de programare native: C #, fiind un limbaj standard în industria calculatoarelor similar cu C ++ sau Java, celălalt fiind UnityScript, un limbaj special care a fost conceput pentru utilizarea cu unitatea și modelat după JavaScript.

Unity3D este notabilă pentru capacitatea sa de a face ca jocurile sa fie compatibile pe mai multe platforme. Dezvoltatorii, în cadrul unui proiect, au control asupra dispozitivelor mobile, a livrării de browsere web, desktop-uri și console.

Platformele care sunt suportate includ: BlackBerry 10, Windows Phone 8, Windows, OS X, Linux (Ubuntu în special), Android, iOS, Unity Web Player (inclusiv Facebook), Adobe Flash, PlayStation 3, PlayStation 4, PlayStation Vita, Xbox 360, Xbox One, Wii U, 3DS New și Wii, incluzțnd și un motor de fizică, Nvidia PhysX. Plugin-ul de browser Unity Web Player acceptat doar pentru Windows și OS X.

Unity este un kit de dezvoltare software standard (SDK) pentru Wii U consolă de jocuri video, având un exemplar gratuit inclus de Nintendo fiecărei licențe de dezvoltator de Wii U. Unity Technologies spune că gruparea cu SDK este o "premieră" în industrie.

Unity are trei părți:

Motorul de joc care permite crearea jocurilor, testarea lor precum și reușita de a le juca în medii diferite.

Designul sau interfața cu utilizatorul se poate pune impreuna cu opțiunea de previzualizare grafică și cu funcția de redare control.

Editorul de cod: mediul de dezvoltare integrat – IDE – oferă un editor de text pentru a scrie cod. Cu toate acestea, un editor de text separat este adesea folosit pentru a evita confuzia.

Unity este o platformă excelentă pentru inițierea în a începe dezvoltarea de jocuri video și, cu siguranță, poate fi recomandat pentru cei care doresc să înceapă o carieră în acest domeniu aflat în plină dezvoltare si progres.

Unity oferă, de asemenea, numeroase tutoriale complexe bazate pe exemple video și audio, care familiarizează pe viitor dezvoltatorul cu procesul realizării unui joc video. [1][2][3][4][5]

II.2 Programarea cu ajutorul limbajului C#

Notația ♯ (diez) din numele limbajului C# a fost inspirat din muzică, aceasta indicând faptul că o nota muzicală urmată de notația ♯ este mai înaltă cu un semiton. Aceasta reprezintă o similitudine cu numele limbajului C++, deoarece aici ++ reprezintă incrementarea unei variabile cu valoarea 1, dar și faptul că C++ aduce ceva în plus limbajulului C.

Limbajul C# a fost dezvoltat în cadrul Microsoft, creatorii principali ai limbajului fiind Anders Hejlsberg, Scott Wiltamuth și Peter Golde. Prima implementare C# larg distribuită a fost lansată de către Microsoft în cadrul și ca parte a inițiativei .NET în iulie 2000.

Acesta este momentul din care, practic, se poate vorbi despre o evoluție spectaculoasă. Foarte mulți programatori în C, C++ și Java, au migrat foarte ușor spre C# deoarece se aseamănă foarte mult, dar, mai ales, calităților acestui nou limbaj. Astfel, cu timpul, C# și-a câștigat și atrage în continuare numeroși adepți, devenind unul dintre cele mai utilizate limbaje din lume.

Creatorii C# au înzestrat limbajul cu mai multe facilități, succesul acestuia în prezent, confirmând calitățile sale:

Este un limbaj de programare simplu și modern, cu productivitate mare în programare, de utilitate generală.

Este un limbaj de programare orientat pe obiecte.

Permite dezvoltarea aplicațiilor industriale robuste și durabile.

Oferă suport complet pentru dezvoltarea de componente software, fiind foarte necesare mai ales în medii distribuite. C# se poate caracteriza ca fiind nu numai un limbaj orientat pe obiect, ci și orientat spre componente.

La aceste caracteristici generale se adaugă și altele, cum ar fi suportul pentru internaționalizare, aceasta dând posibilitatea de a fi scrise aplicații care adaptate cu ușurință pentru a fi utilizate în diferite regiuni ale lumii unde se vorbesc limbi diferite, fără să trebuiască să fie necesare schimbări în arhitectura software.

În legătură cu Arhitectura .NET (.NET Framework) pe care funcționează, C# gestionează în mod automat memoria utilizată. O facilitate importantă a limbajului este eliberarea memoriei ocupate (garbage collection) de către obiectele care nu mai sunt necesare aplicației.

Programatorii nu mai trebuie să decidă singuri, așa cum o fac de pildă în C++, care este locul și momentul în care obiectele trebuie distruse.

În C# se pot scrie aplicații pentru sisteme complexe și care au menirea să funcționează sub o mare varietate de sisteme de operare,dar și pentru sisteme dedicate (embeded systems). Acestea din urmă au mare întindere, de la dispozitive portabile: ceasuri digitale, telefoane mobile, MP3 playere și până la dispozitive de staționare ca: semafoare de trafic, controlere pentru automatizarea producției.

Sintactic, C# derivă din limbajul C++, dar include și influențe din alte limbaje, mai ales Java[6][7][11][12].

Pentru scripting în Unity3D, C# este unul dintre cele două limbaje de programare acceptate.

Fig. II.2

În Fig. II.2 este un exemplu de cod în C#.

Scripturile din Unity scrise în C# ajută la realizarea multor lucruri, de exemplu controlarea obiectelor din mediul jocului, controlarea jucătorului prin intermediul butoanelor tastaturii sau a mouse-ului.

Fig. II.3

În Fig. II.3 este prezentat modelul de script care este o componentă a obiectului ,,Main Player’’ în Unity3D.

II.3 IDE-ul MonoDevelop

MonoDevelop este un mediu de dezvoltare integrat sursă-deschisă pentru Linux, OS X și Windows. Dezvoltarea de proiecte care folosesc framework-urile Mono și .NET este accentul său principal. MonoDevelop integrează caracteristici similare cu cele ale lui NetBeans și Microsoft Visual Studio: completare automată a codului, control al sursei, interfață grafică cu utilizatorul (GUI) și Web designer.

MonoDevelop integrează un designer Gtk # GUI numit Stetic. Acesta susține Boo, C, C ++, C #, CIL, D, F #, Java, Oxygene, Python, Vala, și Basic.NET Visual.

MonoDevelop poate fi folosit pe Windows, OS X și Linux. Primele două au fost sprijinite în mod oficial de la versiunea 2.2. Xamarin oferă o versiune îmbunătățită de MonoDevelop 4.0 ca și Xamarin Studio care folosește acum cod platforma specific în diferite locuri pentru a spori aspectul. Mono oferă un pachet pentru Solaris 10 rulând pe SPARC. Pachete de MonoDevelop pentru OpenSolaris sunt furnizate doar de grupurile din comunitatea OpenSolaris. MonoDevelop pe FreeBSD este de asemenea susținută doar de comunitatea FreeBSD.

O versiune personalizată a MonoDevelop este integrată în Unity, motor de joc realizat de către Unity Technologies[8].

Fig. II.4

În Fig. II.4 este un model de script scris în C# în IDE-ul Unity, MonoDevelop.

Capitolul III. Scopul și specificațiile aplicației

III.1 Scopul aplicației.

În acest subcapitol voi prezenta funcționalitățile viitoare și obiectele aplicației.

Obiectivul acestei aplicații este punerea în valoare a modalițăților de creare a unui joc pe calculator, de a-i atrage pe cei neinteresați prin grafică, caracter draguț și inamici simpatici.

Fig. III.1

În Fig. III.1 este prezentat jucătorul în prim plan, grafica și mediul jocului

Proiectarea generală are scopul de a implementa un mod de joc intuitiv cu obiectivul de a fugi și a se ascunde de inamici cu scopul de a-i împușca si apoi a-i învinge. Pentru a face acest lucru utilizatorul trebuie să își folosească aptitudinile sale pentru a controla direct caracterului jocului prin câteva butoane de la tastatură și mouse.

Inamicii îl urmaresc pe jucător oriunde s-ar duce și dacă-l vor ajunge și atinge acestuia i se diminuează viața.

Fig. III.2

În Fig. III.2 se prezintă inamicii care îl urmăresc pe jucător, acesta eliminându-i.

III.2 Specificațiile aplicației.

Jocul este construit dintr-o scenă alcătuită din planșa jocului, mediul înconjurător, caracterul și cele trei tipuri de inamici.

Caracterul jucătorului – elementul principal al aplicației care este controlat direct de către utilizator prin intermediul tastelor A, S, D, W, iar pentru a ataca se folosește mouse-ul.

Fig. III.3

În Fig.III.3 se prezintă modelul jucătorului, reprezentat printr-un humanoid.

Totodată jucătorul poate trage în inamici cu ajutorul armei, unii dintre aceștia fiind eliminați dar numărul lor crește continuu până ce jucătorul este eliminat.

Fig. III.4

În Fig.III.4 se prezintă modelul armei jucatorului

Fig.III.5

În Fig.III.5 se prezintă modelul jucătorului inarmat

Obstacolele – sunt reprezentate de obiecte statice care trebuiesc ocolite atât de jucător cât și de inamici.

Fig. III.6

În Fig. III.6 sunt prezentate unele obstacole.

Inamicii – sunt diferite personaje care îl vor urmări pe jucător oriunde s-ar duce pe planșă, fiind controlați prin agentul de navigație al motorului de joc Unity.

Fig. III.7

În Fig. III.7 este prezentat modelul unuia dintre inamici

Capitolul IV. Structura generală a aplicației

IV.1 Configurarea aplicației

Aplicația a fost dezvoltată utilizând motorul de joc Unity3D, având un mod simplist și eficient de realizare a unei aplicații de acest gen prin diferite unelte care au rolul de a ajuta în muncă dezvoltatorul software. Industria fiind în continuă dezvoltaare, la realizarea jocurilor video se lucrează în echipe medii, mari și foarte mari de oameni. Realizarea unui joc video implică foarte mulți factori de aceea este nevoie de mult timp pentru o singură persoană să finalizeze un joc. Cu ajutorul motoarelor de genul Unity3D, proiectele reușesc să fie realizabile într-un timp relativ scurt, printr-un mod de lucru simplificat, având la dispoziție și o documentație bine pusă la punct, existând de aseamenea o multitudine de tutoriale inspiaraționale online.

Părțile importante al acestui motor de joc, uneltele sale și elementele folosite pentru a face viabilă aplicația interactivă, a acestui joc video utilizat la dezvoltarea copiilor printr-un mod de joc simplu și distractiv, le voi prezenta în cele ce urmează. Unul dintre cele mai importante elemente pentru crearea unui joc în Unity este un Game Object sau obiect de joc. Unui obiect de joc i se pot atribui diferite componente, cum ar fi: componentă de poziție, scripturi C# sau UnityScript, grafice, elemente audio, animații și elemente de fizică.

Fig. IV.1

În Fig. IV.1 se prezintă modul de organizare a fișierelor în cadrul motorului Unity3D.

IV.2 Componente ale motorului de joc

IV.2.1 Elementul ”Scene”

Aplicația este constituită dintr-o scenă, motorul rulând câte o scenă pe rând, între scene fiind create legături cu ajutorul scripturilor sau a altor elemente de interfață.

Cu ajutorul ferestrei ,,Scene” se poate controla direct cum va arăta jocul în varianta finală. Aici se pot poziționa obiectele de joc. Setam poziția mediului la coordonatele (0,0,0), adică X=0 Y=0 Z=0. Aceasta e poziția inițială care se poate seta și cu ajutorul reset position. Coordonata Z este inițializată cu 0, dar pentru un control mai bun asupra obiectelor se poate modifica și coordonata Z. Tot aici se poate modifica poziționarea camerei cu ajutorul coordonatelor X,Y și Z.

O scena noua se salveaza în directorul Sceene sub o denumire agreată. Se poate vizualiza planșa, iar dacă din meniul din stanga sus alegem pictograma cu mana aceasta poate fi mișcată.

Fig. IV.2

Fig. IV.2 prezintă vederea scenei în Unity3D.

IV.2.2 Elementul ”Ierarhie”

Pentru organizarea proiectului Unity are posibilitatea să pună la dispoziție o ierarhie listă text a obiectelor din scenă prin căsuța numită ,,Hierarchy”. Obiectele sunt organizate în funcție de propria categorie sau funcționează împreună cu alte obiecte care aparțin unui alt obiect. Acest obiect va prelua implicit atributele părintelui, ca exemplu poziționarea lor care va fi legată.

Fig. IV.3

Fig. IV.3 prezintă componentele jocului în Unity.

Organizarea fișierelor din aplicație se face prin intermediul căsuței numită ,,Project”.

Fig. IV.4

Fig. IV.5

Această organizare poate fi modificată pentru a eficientiza utilizarea lor, fapt demonstrat cu ajutorului Fig.IV.4 și Fig. IV.5.

IV.2.3 Elementul ”Inspector”

Reprezentat prin căsuța numită ,,Inspector” acest element specifică toate informațiile pentru fiecare obiect de joc în parte. Aici sunt informații despre: numele și tipul obiectului, coordonatele de poziție X,Y,Z, eticheta pe care o are, layer-ul din care face parte și componentele asignate. Componentele asignate pot fi: C# script sau UnityScript, audio, de fizică însemnând figuri geometrice, texturi grafice sau materialul obiectului respectiv.

Fig. IV.6

În Fig. IV.6 este prezentat inspectorul caracterului nostru din Unity.

IV.2.4 Elementul ”Vizualizare joc”

Acesta este reprezentat prin fereastra numită ,,Game View” si este afișată varianta jocului care este vizualizată de utilizatori. În timp ce aplicația va rula aceasta este varianta finală și cuprinde toate elementele grafice afișate.

Pentru vizualizarea camerei principale a jocului trebuie setat modul de poiecție din perspectivă utilizând din meniul derulant opțiunea ortografic, rezultând o vedere ortografică a jocului. Aceasteia ii dau valoarea dimensiunii proiectiei 4,5, iar culoarea fundalului este setată pe negru.

Fig. IV.7

În Fig. IV.7 este reprezentată setarea proiecției ortografice a jocului.

Totodată, în acestă fereastră, se poate face testarea directă a aplicației deoarece exista deasupra ei un buton de rulare prin apăsarea căruia se efectuează testul. Având acest buton, motorul de joc are un atu foarte mare deoarece dezvoltatorul software poate testa imediat rezultatul final. Astfel este facilitată rezolvarea erorilor și a problemelor care inevitabil pot apărea în cursul lucrului.

Fig. IV.8

În Fig. IV.8 este reprezentată vederea jocului prin fereastra ,,Game View’’.

IV.2.5 Elemente ale Obiectelor de joc

O scenă conține foarte multe elemente, dintre care unele sunt obiecte de joc sau sunt componenente ale obiectelor de joc.

Oricare dintre obiectele de joc conține cel puțin o componentă care se numește ”Transform” conținând coordonate ale poziției obiectului, mărimea și rotația lui. Alte componente depind de tipul obiectului, aceste sunt componente audio, script-uri, meșe, materile, texturi.

Câteva dintre cele mai importante și utilizate componente ale obiectelor de joc sunt:

Grafica (Graphics) – este partea vizuală cu care interacționează utilizatorul, de aceea acestea au un impact mare la vizualizarea pentru prima dată a jucului. Aceste elementele de grafică sunt reprezentate prin fișiere ,,png” și sunt importate în Unity sub formă de fișiere numite ,,sprites”.

În cazul jocurilor 2D, acestea sunt imaginile care alcătuiesc lumea de joc, mediul, inamicii, fundalul audio și cel mai important este caracterul jucătorului.

Fig. IV.9

În Fig.IV.9 este prezentat un exemplu de obiecte de grafică folosite în joc.

Fizica (Phisics) – pentru ca un comportament să fie cât mai convingător, obiectele de joc pot fi afectate de elementele fizicii, adică gravitația, coliziunea cu obiecte sau forțe. Motorul Unity dispune de simulatoare de fizică, acestea fiind două și anume unul pentru jocuri 3D celălalt pentru jocuri 2D. Forțele aceste care afectează lumea jocului nu sunt la fel pentru toate obiectele, ele fiind diferite de la unul la altul. De exemplu caracterul jucătorului este afectat de gravitație, aceasta fiind transpusă prin componenta fizică Rigidbody, totodată poziția lui este fermă pentru a nu se înclina sau afunda în podea, pe când a inamicilor nu.

Fig. IV.10

În Fig.IV.10 este prezentată componenta fizică ”Rigibody”.

O altă componentă fizică este ”Capsule Collider” care delimitează zona de coliziune cu alte obiecte a lumii de joc. În acest fel cu ajutorul unui script, moneda va fi dezactivată în momentul în care intră în coliziune cu caracterul jucătorului. Totodată acest tip de coliziune este folosit în cazul interacțiunii caracterului cu mediul sau cu inamicii.

Fig. IV.11

În Fig.IV.11 este prezentată componenta fizică ”Capsule Collider”

Animațiile – sunt create în Unity cu ajutorul ferestrei numite ,,Animator”. Aici se poate specifica când și care imagine (sprite) să se deruleze.

O animație ,,Animator” este iluzia optică a mișcării, aceasta fiind creată prin derularea unor imagini care reprezinta elemente statice ale acesteia. În acest proiect sunt folosite două animații, una pentru caracterul jucătorului și o alta animație pentru caracterele inamicilor. Mai exista o componenta numita ”Animator”. Diferența dintre cele două, ,,Animator’’ și ,,Animation’’, este ca ,,Animator’’-ul este mai nou realizat și, începând cu Unity 4.0, ,,Animation’’-ul este mai puțin folosit deoarece are comportamentul predispus la bug-uri.

Fig. IV.12

În Fig.IV.12 este prezentat un tabel de stări cu animații.

Prefabs – acestea sunt obiecte specifice motorului de joc Unity. Ele constituie o declarare a unui obiect acesta putând fi refolosit de oricâte ori este nevoie. Au exact aceeași structură ca și obiectul inițial. De exemplu, se poate folosi un prefab pentru a crea mai multe obstacole.

Fig. IV.13

În Fig.IV.13 sunt prezentate unele prefab-uri folosite în aplicație.

Tags & Layers (etichete și straturi) – acestea sunt elemente care ajută la organizarea obiectelor dintr-o scenă și a interacțiunile dintre ele. Un tag sau etichetă ajută la împărțirea obiectelor de joc în diverse categorii, care mai apoi pot fi apelate foarte ușor în scripturi prin folosirea atributului tag al clasei gameObject. Un layer sau strat ajută la categorisirea elementelor care nu vor interacționa între ele și la o ordine a layer-elor care va fi afișată pe ecranul de joc.

Fig. IV.14

Fig. IV.15

În Fig. IV.14 și Fig. IV.15 sunt prezentate două exemple de ,,Tags & Layers’’

IV.2.6 Script-uri în limbajul C#

Scripturile în această aplicație au fost scrise în limbaj C# cu ajutorul motorului MonoDevelop din Unity, fiind adăugate ca și componente ale obiectelor din joc. Scriptingul este o parte importantă a dezvoltării de jocuri video folosind motorul de joc Unity. Scripturile au fost folosite pentru a crea efectele grafice, pentru controlul comportamentului fizic al obiectelor și nu în cele din urmă pentru a implementa un sistem personalizat al caracterelor jocului.

Lumea jocului poate fi influențată cu ajutorul scripturilor scrise în C# sau în UnityScript, asemanator cu JavaScript, în orice mod.

Fig. IV.16

În Fig. IV.16 este reprezentată componenta scriptului ,,EnemyManager’’.

Fig. IV.17

În Fig. IV.17 este prezentat scriptul ,,EnemyManager”

Acest script se referă la sănătatea jucătorului, la cât de mulți noi inamici apar și cât timp este necesar pentru o nouă apariție. De asemenea, dacă jucătorul nu mai are viață se iese din joc. Acest script se referă și la găsirea unui indice aleatoriu între zero și unul mai mic decât numărul de apariții.

Cand se crează un script nou în C#, este foarte important ca el să fie numit cu exactitate. Pentru a realiza un script mai complex care conține două funcții este nevoie de cunoștințe avansate de programare. Cu ajutorul documentație disponibile online se poate înțelege modul în care funcționează motorul de joc.

În această aplicație sunt 8 scripturi care definesc modul de joc.

Acesta este un script scris cu ajutorul tutorialelor de pe site-ul Unity și face camera jocului să găsească jucătorul.

Acest script este folosit de obiectul camerei pentru a putea urmări constant caracterul. Este posibil să facem zoom in sau zoom out, să învârtim camera pentru a putea observa caracterul și mediul din diferite unghiuri. Zoom se face cu ajutorul rotiței de la mouse, iar învârtirea se face ținând apasată tasta ,,Alt’’ și mișcând mouse-ul.

Aceste două comenzi pot fi efectuate chiar dacă jucătorul este în mișcare sau atacă. Se crează o poziție pe care o urmărește camera pe baza decalajului de la țintă și se interpolează între poziția actuală a camerei și poziția țintă a acesteia.

Fig. IV.18

Fig. IV.18 prezintă o parte a scriptului ,,CameraFollow”.

IV.3 Caracterul obiectului ”Jucător”

Obiectul controlat de jucător este reprezentat printr-un humanoid și arată astfel:

Fig. IV.19

În Fig. IV.19 este prezentat modelul jucătorului

Obiectul care controlează, afișează și modifică atributele celui mai important element al aplicației, și anume caracterul jucătorului, în funcție de interacțiunea cu celelalte obiecte ale jocului.

Fig. IV.20

Fig. IV.20 prezintă componentele obiectului jucător.

Obiectul jucător conține un animator, un corp rigid, o componentă de navigare, două componente de tip script și o componenta „AudioSource”.

Fig. IV.21

Fig. IV.21 prezintă componenta ,,Rigidbody” a jucătorului din cadrul ierarhiei

Componenta ,,Rigidbody” corp rigid permite obictului să acționeze sub controlul motorului fizicii. Aceasta deschide poarta spre coliziuni realiste, diferite tipuri de articulații și alte comportamente. Manipularea GameObjects-ului prin adăugarea de forțe la un corp rigid creează o simțire și un aspect foarte diferit decât reglarea directă a componentei Transformare.

Fig. IV.22

Fig. IV.22 Reprezinta particularizarea jucatorului.

Componenta audio nu poate face nimic dacă nu exista un clip audio care sa ruleze. Acest clip este un fisier de sunet care va rula, acesta e ca un controler pentru pornirea și oprirea lui si modificarea altor proprietăți audio.

Fig. IV.23

Fig. IV.23 prezintă componenta ,,Audio Source” a jucătorului.

Componenta ,,Capsule Collider’’ este folosită pentru a determina interacțiunea dintre jucător și mediul înconjurător. Dacă îi dăm unui obiect o componentă de acest tip trebuie să încercăm să o facem să cuprindă tot obiectul respectiv pentru a face hitbox-ul cât mai aproape de realitate

Fig. IV.24

Fig. IV.24 prezintă componenta capsule collider a jucătorului vazută din ierarhia cu obiecte a jucătorului.

Acest lucru se poate face modificând atributele ,,Radius” și ,,Height” ale componentei. ,,Direction: Y-Axis” înseamnă ca va fi în poziție verticală, iar ,,Center’’ este punctul de origine al componentei.

Fig. IV.25

Fig. IV.25 ne arată modul cum este prezentată componenta ,,Capsule Collider’’

Componenta ,,Animator’’ determină ce mișcări va face obiectul respectiv la diferite momente din joc sau la apelarea diferitelor comenzi.

Fig. IV.26

În Fig. IV.26 este prezentată componenta animator a jucătorului.

În componenta animator a jucătorului cu ajutorul stărilor, ”Entry” arată cum se va comporta jucătorul în primul moment al rulării jocului. ,,Idle” este starea pe care o are jucătorul în orice moment când nu atacă sau fuge de inamici. ,,Any state’’ este starea care determină faptul că jucătorul poate muri în orice situație s-ar afla. ”Move” arată ca jucătorul este in mișcare. ,,Death” este starea pe care o are după ce inamicii au copleșit jucătorul. ,,Exit’’ sugerează momentul când iese din joc, realizându-se dupa starea ”Death”.

Fig. IV.27

În Fig. IV.27 este prezentată componenta animator a jucătorului cu ajutorul stărilor.

Aceste funcții din figură există întotdeauna în orice script din Unity. Cand animatorul este setat pe default se setează punctul default în care se află jucătorul și indică faptul că jucătorul nu este în modul de luptă.

Cu acest script se realizează poziția jucătorului pentru a rămâne în așteptare, a se mișca, a trage cu arma, a se feri de inamici și în cele din urmă a se sfârși. Apoi jocul se reia cu aceeasi animație. Tranziția de la inactiv la mișcare se face utilizând niște condiții de exemplu folosim ca adevarat faptul că se mișcă. Din starea de mutare in cea de repaus se pune condiția ca este fals faptul că se mișcă. Scriptul ,, Player Movement’’ este scriptul pe care îl folosim pentru toate mișcările pe care le face jucătorul. Se crează o mască pentru stratul ”floor”, se setează sistemul de referință, axele orizontală și verticală.

Jucătorul se mișcă în jurul scenei și se rotește în fața cursorului mouse-ului. Se crează o rază de la cursorul mouse-ului în direcția camerei. Se crează un vector de la jucător la un punct de pe podea, iar vectorul trebuie să fie de-a lungul planului podelei.

Fig. IV.28

În Fig. IV.28 este prezentată o parte a scriptului ,,Player Movement’’

Jucătorul are o armă care nu poate fi îndepărtată sau scăpată, este atașată jucătorului. Cu această armă jucătorul trage cu un fascicul care ajută la îndepărtarea inamicilor.

Fig. IV.29

În Fig. IV.29 este prezentată arma jucatorului

Caracteristicile armei pot fi schimbate din inspectorul acesteia alegând GunMaterial.

Fig.IV.30

În Fig. IV.30 este prezentată particularizarea armei

Arma este importată din magazinul virtual al Unity și nu ii poate fi schimbată forma. Poate fi modificată culoarea, textura nu și modul de folosire de către jucător.

Caracteristicile fascicolului armei pot fi schimbate din inspectorul acesteia alegând GunBarrelEnd. Se pot alege emisia, forma, viteza, culoarea, zgomotul pe care-l face, mărimea după încheierea tragerii.

Fig.IV.31

În Fig.IV.31 este aratat modul de tragere al armei

Scriptul ”Player Shooting” arată cu cât se diminuează rezistența inamicului dacă este nimerit de către jucător, în cât timp se reîncarcă arma, tipul luminii și culoarea fascicolului. Se resetează cronometrul, se aude muzica și se vede lumina când se trage cu arma.

Se setează traiectoria de tragere astfel încât să pornească de la capătul armei și să țintească înainte până la inamic.

Fig.IV.32

În Fig.IV.32 este aratata componenta scriptului ”Player Shooting”

Fig.IV.33

În Fig.IV.33 este arătată o parte a scriptului ”Player Shooting”

La prima rulare a programului, jucătorul se va afla în această poziția de tranziție de la inactiv la activ în momentul când se mișcă sau trage cu arma.

Fig. IV.34

Cănd începe să se miște și să tragă cu arma jucătorul va avea o alta poziție cu puțin diferită de aceasta, jucătorul schimbând direcția când sunt apăsate tastele A – stânga, D – dreapta, S – jos, W – sus. Când este apăsat butonul mouse-ului va începe să tragă.

Fig. IV.35

În Fig. IV.34 și Fig. IV.35 sunt arătate pozițiile jucătorului la începutul și în timpul jocului.

În momentul când i s-a scurs timpul de viață sau a fost răpus de inamici pozițiile jucătorului se schimbă.

Fig. IV.36

Fig. IV.37

În Fig. IV.36 și Fig. IV.37 este arătată poziția rănit, respectiv căzut ale jucătorului.

Cu ajutorul scriptului în C# este setat de la ce valoare pornește parametrul stabilit pentru sănătatea jucătorului și cum sunt reprezentate imaginea și fondul sonor.

Fig. IV.38

Fig. IV.38 Reprezinta componenta scriptului ”Player Health”

Fig. IV.39

În fig. IV.39 este prezentată o parte a scriptului ”Player Health”

Cu acest script se setează ecranul să sclipească dacă jucătorul este rănit. Se reduce starea de sănătate a acestuia, bara de stare a jucătorului diminuându-se. Se aude fundalul sonor al jucătorului rănit. Dacă jucătorul își pierde toată starea de sănătate, cade. Animatorul sesizează că jucătorul e căzut și se redă clipul audio corespunzător stării. Se opresc mișcarea și tragerea cu arma.

IV.4 Caracterul obiectelor ”Inamici”

Obiectele de tip inamici sunt reprezentate prin diferite personaje. Aceștia vor urmări caracterul oriunde s-ar duce pe planșă și când ajung destul de aproape vor începe să-l atingă, diminuându-i viața.

Fig. IV.40

Fig. IV. 41

În Fig. IV.40 și Fig. IV.41 sunt prezentate modelul și inspectorul primului inamic

Modelul inamicului este importat din asset store-ul Unity si acestuia i se pot modifica parametrii și anume: culoare, strălucire, emisia, iluminarea globala, reflexia.

Fig. IV.42

În fig. IV.42 este prezentata particularizarea primului inamic

Fig. IV.43

În Fig. IV.43 apar componente ale scripturilor Enemy Attack, Enemy Health si Enemy Movement

În acest script se setează timpul în secunde între fiecare atac și cantitatea de sănătate diminuată la fiecare atac. Se referă la componenta animator a jucătorului și starea sa de sănătate, la fel și la sănătatea inamicilor. Chiar dacă jucătorul declanșează atacul și poate fi atacat, se continuă numărătoarea până la următorul atac.

Dacă jucătorul are viața scursă, animatorul știe ca acesta a căzut. Se resetează timer-ul, iar dacă jucătorul mai are încă viață atunci este atacat și rănit.

Fig. IV.44

În Fig. IV.44 este prezentată o parte din scriptul ”Enemy Attack”

Dacă jucătorul este destul de aproape acesta va fi atacat de către inamici.

Fig. IV.45

Fig. IV.46

În Fig. IV.45 si Fig. IV.46 sunt prezentate parți din scripturile ”Enemy Health” și ”Enemy Manager”

Cel de-al doilea inamic are același comportament ca și cel dinainte. Modelul acestuia este importat din magazinul online al Unity. Va urmări jucătorul oriunde pe planșă și când ajunge destul de aproape va începe să-l atingă, diminuându-i viața.

Fig. IV.47

Fig. IV.48

În Fig. IV.47 și Fig. IV.48 este prezentat modelul, respectiv inspectorul celui de-al doilea inamic.

La fel ca și la celalalt inamic și acestuia i se pot modifica setările, anume interpretarea modului, culoarea, textura, sursa, iluminarea globala, străfulgerare și reflexie.

Fig. IV.49

În fig. IV.49 Reprezintă particularizarea inamicului al doilea

Fig. IV.50

În Fig. IV.50 apar componente ale scripturilor Enemy Attack, Enemy Health si Enemy Movement

Modelul celui de-al treilea inamic este importat din magazinul online al Unity. Spre deosebire de ceilalți doi inamici, chiar dacă și acesta are același comportament ca și celelalte dinainte, acesta este mai puternic și rezistă mai mult la atacul jucătorului aspura lui. Va urmări jucătorul oriunde s-ar duce pe planșă și când ajunge destul de aproape va începe să-l atingă, diminuându-i viața.

Fig. IV.51

Fig. IV.52

În Fig. IV.51 și Fig. IV.52 sunt prezentate modelul și inspectorul celui de-al treilea inamic

Modelul inamicului este importat din magazinul online al Unity și acestuia i se pot modifica parametrii și anume: culoare, strălucire, emisie, iluminare globala, lumina reflectoarelor, reflexie.

Fig. IV.53

Fig. IV.54

Fig. IV.53 și Fig. IV.54 Reprezinta particularizarea inamicul al treilea

După eliminarea inamicilor aceștia emit particule, DeathParticles, iar apoi se transformă în particule, FluffParticleMaterial fiind luate tot din magazinul virtual Unity și cărora li se pot modifica setările, cum ar fi: durata acestora, existența lor, viteza de start, forma, emisie, culoarea. În afară de acestea se pot adăuga și altele.

Fig. IV.55

Fig. IV.56

Fig. IV.55 și Fig. IV.56 Reprezinta inspectorul particulelor emise

IV.5 Mediul de joc

Mediul este alcătuit dintr-o planșă, aceasta este importata din magazinul online al Unity. Planșa are multe multe obstacole. Spațiul înconjurător este delimitat de parametri invizibili.

Planșa jocului este formată din obiectul ,,floor’’ și obiectul ”wall”. Pe obiectul ”floor” există foarte multe obstacole pe care jucătorul și inamicii trebuie să le ocolească.

Fig. IV.57

În Fig. IV.57 se văd pereții și podeaua mediului

Fig. IV.58

În Fig. IV.58 se vad setările importate ale obiectului floor și inspectorul acestui obiect

Pe obiectul care reprezină podeaua planșei sunt obiectele obstacole care trebuie ocolite. Aceste obiecte sunt importate din magazinul online al Unity.

Pentru vizualizarea mediului de joc de sus, motorul Unity are posibilitatea să facă o previzualizare a mediului.

Fig. IV.59

Fig. IV.59 prezintă lumea jocului vazută de sus

Poziția obiectelor obstacole existente pe obiectul ”floor” este delimitată cu linii pe planșă.

Fig. IV.60

Fig. IV.60 arată delimitarea obiectelor obstacol prin linii galbene.

Obstacolele fac parte din mediu și sunt obiecte statice, care trebuie ocolite. Ele sunt importate in directorul Prefabs și vin cu setari predefinite.

Fig. IV.61

În Fig. IV.61 sunt prezentate câteva obiecte obstacol

Cu inspectorul unui obstacol ales aleator putem modifica unele setări ale obiectelor, de exemplu poziția pe podea, culoarea.

Mesh Filterul este scheletul pe care se construiește lumea. În cadrul Mesh Renderer-ului se definește ce tipuri de materialele sunt folosite pentru obiectele mediului și dacă obiectele respective vor avea sau nu umbre. Box Collider este folosit pentru a face obiectele să interacționeze între ele

Fig. IV.62

În Fig. IV.62 este prezentat inspectorul obiectului obstacol ”Dollhouse”

În timpul rulării jocului și a interacțiunii în mediul virtual dintre jucător și inamici se vede obiectul zid, acesta face să nu se poată trece prin el.

Fig. IV.63

În Fig. IV.63 este prezentat obiectul zid în vedere 2D și 3D, precum și inspectorul acestuia

În timpul rulării se aude un fișier audio continuu. Dacă nu există un fundal muzical predefinit, nu se poate seta acest fundal.

Fig. IV.64

În Fig. IV.64 este prezentat inspectorul muzicii de fundal.

Capitolul V. Rularea și setările aplicației

Pentru a rula aplicația, în primul rând trebuie sa facem unele setări.

Astfel: construim din File -> Build Settings și va apărea fereastra de rulare reprezentată în fereastra de mai jos.

Fig. V.1

În Fig. V.1 apare fereastra de rulare unde se alege platforma și arhitectura pe care vrem să lansăm aplicația.

Cu ajutorul motorului de joc Unity se pot crea aplicații și jocuri pentru Android, Mac, PC, Linux, iOS etc, fiind foarte versatil.

Apăsând Build apare o fereastră și se determina locația unde executabilul creat se va afla în urma rulării programului.

Fig V.2

În Fig. V.2 apare fereastra unde e salvat jocul.

Fig. V.3

În Fig. V.3 se prezintă setările alese pentru rularea aplicației.

Pentru a începe jocul, se apasă butonul ,,Play!”,iar pentru a ieși din aplicație se apasă butonul ,,Quit”.

Dacă se vrea schimbarea setărilor inițiale, adica alegerea altor taste sau butoanelor de la mouse pentru ca jucătorul să se miște sau să tragă cu arma, alegem butonul ”Input”.

Fig. V.4

În fig. V.4 se prezintă noile setările alese pentru mișcarea jucătorului.

Apăsând butonul ”Play!” aplicația va rula cu noile setări. După apăsarea butonului ,,Play”, va apărea o nouă fereastră standard din motorul de joc folosit.

Aceasta atestă că aplicația a fost dezvoltată folosind motorul de joc Unity Ediția Personală, ediție gratuită pentru orice dezvoltator software. Această fereastră este una intermediară de informare care durează doar câteva secunde în care apare sigla Unity.

Fig. V.5

Fig. V.5 prezintă fereastra de încărcare a jocului în Unity3D.

Capitolul VI. Concluzii

Mediul de joc al aplicației este alcătuit dintr-o planșă pe care se navighează ușor. Aplicația, realizată cu motorul de joc Unity3D, îmbină un stil grafic simplist și atractiv prin mediul înconjurător, inamici și jucător. Caracterul jocului este ușor de controlat prin butoanele tastaturii și mouse. Jucătorul are o armă pentru inamicii care sunt reprezentați prin diferite personaje.

Motorul de joc Unity3D, care a fost conceput pentru a crea jocuri video și are un proces de dezvoltare bine documentat, a ajutat la realizarea acestei aplicații facând-o accesibila și simplistă pentru utilizatori. Prin multitudinea de tutoriale puse la dispoziție online pentru programatorii începatori, industria de dezvoltare a jocurilor video este mai accesibilă.

Aplicația a fost concepută pentru platforma Windows, având nevoie de resurse hardware și spațiu de memorie minime. Rularea aplicației este recomandată, pentru moment, cu setările de bază pentru a experimenta modul de joc la potențial maxim, deoarece pot interveni unele probleme, cum ar fi rezoluția prea mare.

Un aspect foarte important al dezvoltării acestei aplicații foarte simpliste de acest gen este multitudinea de elemente pe care le poate conține, de la texturi grafice, efecte de particule, obiecte de joc asupra cărora acționează forțe fizice, până la scripturi dezvoltate în C# sau UnityScript care sunt destinate unor operații dintr-o gamă cât se poate de variată.

Pe viitor aplicația va avea și alte planșe, inamici mai mulți și mai diversificați, un mod de a avansa în niveluri prin acumulare de experiență. Cu fiecare nivel dobândit jucătorul va deveni mai puternic și la fiecare 5 nivele i se va oferi o nouă armă. Fiecare nivel nou și inamic nou vor avea un grad de dificultate mai mare decât cel precedent pentru a pune jucătorul într-o continuă provocare.

Pentru o diversitate cât mai mare, se vor adăuga inamici cu abilități diferite, jucătorul va avea chiar și un animal de companie și misiuni în care trebuiesc rezolvate puzzle-uri matematic. Se va mai adăuga și un mod de a putea schimba înfățișarea caracterului și un meniu de log-in și de opțiuni.

Bibliografie

[1] https://en.wikipedia.org/wiki/Unity_(game_engine) : reprezintă pagina de wikipedia a motorului de jocuri Unity 3D

[2] http://docs.unity3d.com/Manual/index.html : reprezintă manualul claselor, funcțiilor, componentelor ce sunt definite de Unity și pot fi folosite direct de utilizatori

[3] https://unity3d.com: reprezintă pagina oficială a motorului de joc Unity

[4] https://unity3d.com/learn: reprezintă pagina cu documentațiile oficiale și tutorialele făcute de cei de la Unity

[5] http://forum.unity3d.com: reprezintă forumul oficial al motorului Unity

[6] https://en.wikipedia.org/wiki/C_Sharp_(programming_language): reprezintă pagina limbajului de programare C#

[7] Constantin Gălățan și Susana Gălățan :„C# pentru liceu – Programare în Visiual C# 2008 Express Edition”, Editura ,, L&S INFO-MAT'', anul 2011

[8] http://www.monodevelop.com/documentation: reprezintă pagina de documentație a IDE-ului motorului Unity

[9] ,,Brackeys | Become a Developer” http://brackeys.com: reprezintă o pagină de tutoriale pentru Unity

[10] Joe Hocking Paperback: ,,Unity in Action: Multiplatform Game Development in C# with Unity5", Editura ,,Manning Publications Co'', anul 2015

[11] Jennifer Greene, Andrew Stellman: ,,Head First C#, 3rd Edition", Editura ,, O'Reilly Media'', anul 2013

[12] Joseph Albahari, Ben Albahari: ,,C# 5.0 in a Nutshell: The Definitive Reference", Editura ,, O'Reilly Media'', anul 2012

[13] https://ro.wikipedia.org/wiki/Joc_pentru_calculator

[14] https://teamtreehouse.com/learn/csharp?utm_source=google&campaign=791366371& utm_term=&cid=1352&gclid=CJODrqSulNQCFQ4o0wodlxsMng

[15] http://ebook-dl.com/book/994

[16] http://dash-of-pepper.com/pdf-of-the-day/wikitype/C_Sharp_Programming.pdf

[17] https://www.cs.colorado.edu/~kena/classes/5448/f11/presentation-materials/csharp_

dotnet_adnanreza.pdf

DECLARAȚIE DE AUTENTICITATE

A

PROIECTULUI DE FINALIZARE A STUDIILOR

Titlul proiectului Conceperea jocului ”Visele copilăriei”

Autorul proiectului Călămar Olimpia Mirela

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) Călămar Olimpia Mirela 2680206354801, 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

Similar Posts