Crearea unui joc video 3D [303848]
UNIVERSITATEA “TITU MAIORESCU” DIN BUCUREȘTI
FACULTATEA DE INFORMATICĂ
LUCRARE DE LICENȚĂ
COORDONATOR ȘTIINȚIFIC:
Conf. univ. dr. Mironela Pîrnău
ABSOLVENT: [anonimizat]-Cristian Papacu
SESIUNEA IUNIE
2018
UNIVERSITATEA “TITU MAIORESCU” DIN BUCUREȘTI
FACULTATEA DE INFORMATICĂ
LUCRARE DE LICENȚĂ
Crearea unui joc video 3D
folosind tehnologia Unity
COORDONATOR ȘTIINȚIFIC:
Conf. univ. dr. Mironela Pîrnău
ABSOLVENT: [anonimizat]-Cristian Papacu
SESIUNEA IUNIE
2018
Introducere
Tema acestei lucrari este sistemul de creatie si implementare a unui joc video folosind tehnologia Unity. Motivatia principala care m-a [anonimizat] a cunostintelor de Game Developing avand ca scop finalizarea unui joc video 3D nou intitulat “Swordfighter Saga”, un joc de tip RPG (Role-Playing Game).
Industria de jocuri video este considerata o industrie de succes in sectorul economic deoarece contine un numar vast de discipline ([anonimizat], etc) si are o influenta mare asupra populatiei din perioada actuala.
Tehnologia avansata din zilele noastre permite accesul pentru orice persoana sa inceapa o [anonimizat] (fig.1).
Fig.1: Ramurile profesionale in industria de jocuri video
Dar industria de jocuri video nu a avut influenta pe care o are in present. Primele jocuri video au fost realizate intre anii 1950 si 1960 de Jon Snell si rulau pe computere EDSAC (Electronic Delay Storage Automatic Calculator), tehnologia de atunci fiind limitata. Calculatoarele nu erau accesibile pentru toata lumea si primele jocuri video au fost create in laboratoarele speciale de cercetare ca un proiect secundar. Un bun exemplu este jocul “Tennis for Two” (1958, fig.2) care a [anonimizat], [anonimizat] a distra vizitatorii laboratorului.
Fig.2:Jocul video “Tennis for Two”
Perioada 1970-1980 a reprezentat “Epoca de aur a jocurilor Arcade”, jocuri cu o ultilizare simpla ce au capatat o popularitate imensa in randul oamenilor. Primul joc arcade a fost “Computer Space” (fig.3), creat in 1971 de Nolan Bushnell.
Fig.3:Jocul video “Computer Space”
[anonimizat] a avansat si au aparut noi genuri de jocuri (Role-[anonimizat], [anonimizat]) si noi platforme de joc (SNES, [anonimizat], [anonimizat]).
Procesul de creatie a unui joc video in anii 70’-90’ era destul de simplu deoarece dimensiunea jocurilor era relativ mica si nu continea un numar mare de elemente. [anonimizat] ([anonimizat], [anonimizat]). [anonimizat] o singura persoana nu era in deajuns in procesul de creatie a jocului respectiv. [anonimizat] a fost impartit in mai multe sectoare pentru a acoperi aria totala a jocului si a putea finaliza procesul de creatie. [anonimizat]: [anonimizat], [anonimizat], etc.
Incepand cu anii 2000 jocurile video deveneau mai accesibile pentru public si tot in acelasi timp tehnologia pentru crearea unui joc video era mai dezvoltata. Un joc video este creat pe baza unui motor grafic (game engine) care difera de la o firma de jocuri la alta. Un motor grafic este un program scris intr-un limbaj de programare care foloseste resursele hardware ale calculatorului pentru a crea si rula jocuri video sau simulari pentru calculator (fig.4).
Fig.4:Joc creat cu motorul grafic Unreal Engine 4
Cele mai cunoscute motoare grafice sunt Unity si Unreal Engine, avand o complexitate redusa de utilizare si perfomanta de a folosi toate resursele unui calculator necesare pentru jocul video pe care un utilizator vrea sa-l creeze. Principalul avantaj al acestor doua motoare grafice este ca au o licenta gratis de utilizare, crescandu-le popularitatea masiv intr-un timp scurt.
In prezent jocurile video pot fi create cu usurinta de orice persoana care foloseste un motor grafic pentru platformele existente (Windows/Mac, Xbox, Playstation, Android, IOS, etc). Aceste jocuri pot fi comercializate pe piata de o persoana cu acces la un motor grafic fara a face parte dintr-o companie din industria de jocuri. Un exemplu este jocul “Unturned” (fig.5), creat de o persoana in varsta de 16 ani folosind un motor grafic si lansat pe platforma Steam.
Fig.5: Jocul video “Unturned”
In Capitolul 1 este prezentat pe scurt motorul grafic Unity, caracteristicile sale, jocuri create cu acest motor si licentele de utilizare disponibile in momentul actual.
Capitolul 2 face o descriere a jocului video 3D “Swordfighter Saga” , creat cu motorul grafic Unity si evidentiaza povestea si scopul principal din joc, elementele folosite la crearea lumii virtuale din joc si limbajul de programare folosit pentru scripturile obiectelor precum si clasa de baza “Monobehaviour” din care deriva toate scripturile Unity create.
Capitolul 3 parcurge procesul de creatie a jocului video, de la ideea principala pana la compilarea executabilului de rulare a jocului. Se vor descrie toate elementele si componentele prezente in joc precum si prezentarea scripturilor de baza aplicate pe obiecte (scriptul de miscare al caracterului principal, scriptul de manager audio, scriptul pentru miscarea camerei, etc.).
Capitolul 4 are ca scop prezentarea unui nivel din joc folosind poze si un scurt “Walkthrough video” ce va evidentia mecanica dar si lumea jocului.
In Anexa vor fi prezente scripturile folosite pentru caracterul principal precum si instructiunile necesare pentru a rula si a incerca jocul video.
Capitolul 1:Tehnologia Unity
Ce este Unity?
Unity este un motor grafic cu functie “cross-platform” (platforme multiple) creat de Unity Technologies, care are ca scop crearea jocurilor video 2D si 3D dar si crearea programelor de simulari matematice pentru calculatoare, console si aparate mobile. Unity a fost lansat in anul 2005 la “Conferinta Internationala de Developeri” pentru platforma OS X creata de Apple. In prezent, Unity este extins pe 27 de platforme de operare unice si este in constanta dezvoltare pentru cele mai noi platforme aparute.
Caracteristicile principale ale motorului grafic Unity sunt: functionalitatea “Drag and Drop” (fig.1) si scriptarea folosind limbajul de programare C# (fig.2).
Fig.1:Functia Drag and Drop din Unity
Fig.2:Scriptarea in C# folosind mediul de lucru “MonoDevelop-Unity”
In primele versiuni Unity era suportat si limbajul de programare Boo dar a fost eliminat odata cu aparitia versiunii Unity 5. In aceeasi situatie a fost pus si limbajul de programare Javascript care este in procesul de eliminare din versiunea Unity 2017.1.
Motorul Unity foloseste libraria grafica specifca platformei de sistem. Ca exemplu, pentru platforma Windows, Unity foloseste libraria grafica OpenGL iar pentru platforma Xbox One foloseste libraria Direct3D(este folosita si pe platforma Windows).
In Decembrie 2013, Unity Tehnologies(Japonia) au dezvaluit mascota oficiala a motorului grafic cu numele de “Unity-chan” (Numele adevarat fiind Kohaku Otori). Aceasta mascota a fost prezentata publicului din Tokyo in perioada 29-31 Decembrie, unde au fost distribuite produse cu marca Unity (fig.3).
In primavara anului 2014 modelul grafic si datele necesare mascotei “Unity-chan” au fost lansate pe site-ul Unity ca un character open-source. Compania a permis folosirea mascotei in proiecte secundare realizate de alte persoane sub anumite licente.
Fig.3:Mascota oficiala “Unity-chan”
Jocuri create cu Unity
Reputatia motorului Unity a crescut considerabil datorita firmelor din industria jocurilor care au creat numeroase jocuri folosind Unity. Mai jos sunt prezentate cateva jocuri celebre create cu tehnologia Unity:
Ori and the Blind Forest (fig.1) – Moon Studios
Este un joc platformer 2D de actiune ce are ca caracteristici elemente vizuale pictate de mana, personaje cu animatii complexe si o coloana sonora originala. Jocul a castigat premiul de “Cele mai bune imagini 2D” la festivalul “Made with Unity Awards” in 2015.
Fig.1:Jocul “Ori and the Blind Forest”
Cuphead (fig.2) – Studio MDHR
Cuphead este un joc indie de actiune bazat pe stilul clasic de desene animate din anii 1930.Animatiile personajelor au fost create de mana(pagina cu pagina) si peisajele pictacte folosind acuarele. Este considerat jocul cu cel mai mare impact visual creat cu Unity.
Fig.2:Jocul “Cuphead”
Hearthstone (fig.3) – Blizzard Entertainment
Hearthstone este un joc de carti online “turn-based” ce se bazeaza pe meciuri intre doi jucatori. Jucatorii primesc un set de carti simple si pot obtine carti mai avansate cu abilitati speciale prin cumpararea pachetelor de carti cu bani castigati in joc sau cu bani reali. Studio-ul Blizzard a depins de tehnologia Unity pentru a crea jocul deoarece timpul de proiectare a jocului era mult mai scazut cu Unity si a ajutat echipa de dezvoltare in a inbunatatii jocul.
Fig.3: Jocul “Hearthstone”
Might & Magic X: Legacy (fig.4) – Limbic Entertainment
Might & Magic X este un joc RPG cu mecanica “turn-based” ce are ca elemente principale sistemul de lupta clasic bazat pe ture si sistemul de dezvoltare a personajelor in care jucatorul isi alege patru eroi la inceputul jocului si trebuie sa ii dezvolte pe o anumita ramura de lupta (Personaj de aparare, de atac sau de suport).
Fig.4: Jocul “Might & Magic X: Legacy”
Licente Unity
Motorul grafic Unity pune la dizpozitie patru optiuni de licente pentru utilizatori. Licenta gratuita contine motorul grafic cu beneficiile standard si optiuni limitate de performanta.
Lista licentelor Unity:
Personal – Suporta toate platformele de sistem si toate functiile motorului dar nu contine rapoarte de performanta ale proiectelor, nu contine suport premium si utilizatorul nu are acces la codul sursa al motorului grafic. Licenta este gratuita.
Plus – Contine beneficiile pachetului “Personal” si permite crearea rapoartelor de performanta a proiectelor si ecranul de start al proiectelor pot contine animatii personale. Pretul licentei este de 35$/luna.
Pro – Utilizatorul beneficiaza de suport premium (Echipa Unity)si de capacitate nelimitata de venituri aduse din jocurile create cu Unity. Pretul licentei este de 125$/luna.
Enterprise – Aceasta licenta este folosita de firmele de jocuri pentru proiectele mari ce necesita un numar considerabil de oameni pentru a se finaliza. Pachetul contine codul sursa al motorului grafic. Pretul licentei este negociabil.
Caracteristici
Conform unui sondaj de opinii, motorul grafic Unity detine actiuni in proportie de 45% pe piata globala a motoarelor grafice si este preferat de 47% din dezvoltatorii de jocuri ca fiind “motorul principal de dezvoltare” a jocurilor. Ca orice motor grafic, Unity are avantaje dar si dezavantaje in dezvoltarea jocurilor video.
Avantaje:
Suport de platforma – Motorul este preferat de dezvoltatorii de jocuri datorita suportului extins pe 27 de platforme. Aplicatia creata cu Unity poate fi usor instalata pe mai multe tipuri de platforme.
Mediu de dezvoltare integrat (IDE) – Unity contine un mediu unic de dezvoltare numit “Monodevelop” ce suporta C# si Javascript ca limbaje de programare pentru scriptare.
Grafica – Motorul suporta efectele video si audio de calitate inalta ce ajuta la dezvoltarea rapida a jocurilor. Efectele vizuale pot fi adaptate pe orice ecran si dizpozitiv fara a se pierde din calitate.
Documentatia – Unity Technologies ofera documentatie si cursuri in amanunt pentru fiecare functie si subiect din motorul grafic. Orice dezvoltator are acces la documentatie.
Debugging – Dezvoltatorii pot identifica usor problemele aparute in aplicatie deoarece toate variabilele de joc sunt afisate in intefata grafica a motorului si permite modificarea lor in timpul rularii aplicatiei.
Dezavantaje:
Aplicatii pentru Grafica – Motorul Unity nu este dotat cu multe functii de creat efecte vizuale si se bazeaza mai mult pe efecte create in motoarele grafice externe
Motorul de Fizica – Prezinta diverse probleme de performanta si ii lipseste cateva functii importante in a crea un joc video de calitate inalta
Costul Licentelor – Pentru a avea acces la toate functiile motorului, dezvoltatorii trebuie sa plateasca o suma de bani iar costurile cresc cu cat jocul dezvoltat este mai complex.
Codul sursa – Codul din motorul Unity este stabil in comparatie cu alte motoare grafice si contine o arhitectura impresionanta care creste performantele jocurilor creat dar este accesibil doar dezvoltatorilor care au cumparat licenta “Enterprise” iar cei care nu au licenta respective se confrunta cu probleme de performanta din codul sursa pe care nu le pot adresa si fixa
Consum de memorie – In comparatie cu alte motoare grafice, Unity consuma multa memorie de acces pentru a rula aplicatiile si jocurile create, ceea ce duce la erori de memorie si probleme de debugging.
Capitolul 2: Joc video 3D – Swordfighter Saga
Descriere
Swordfighter Saga (fig.1) este un joc video RPG (Role-playing game), creat folosind motorul grafic Unity. Jocul prezinta povestea unui mercenar ce ajunge intr-un taram plin de conflict si suferinta. Mercenarul incearca sa inteleaga ce se intampla pe taramul respectiv si se ofera sa ajute locuitorii taramului in schimbul informatiilor si banilor.
Fig.1: Lumea jocului “Swordfighter Saga”
Elementele jocului
Lumea jocului este prezentata intr-o tematica medievala cu elemente fantastice si supranaturale (creature mitice). Utilizatorul poate vedea in lumea jocului un sat medieval ravasit, un castel dezertat si multe altele. In termeni de personaje, jocul prezinta gardieni ce apara satele medievale din taram. Elementele fantastice din joc sunt reprezentate ca creaturi ostile (fig.2) precum capcauni, monstrii nemorti, goblini, ciclopi etc. Armele de lupta prezente in lumea jocului sun reprezentate de sabie si de ciocan.
Fig.2 Tipuri de creaturi din lumea jocului
Limbaj de programare (scripting)
Anumite elemente ale jocului au atasate scripturi create folosind mediul de dezvoltare “Mono-develop” al motorului Unity. Scripturile sunt scrise in limbajul de programare C# si sunt derivate din clasa de baza “MonoBehaviour”, o clasa ce contine metode de initializare. Pentru ca un element din joc sa fie controlat de utilizator, trebuie sa contina un script cu metodele de manipulare a elementului. Un exemplu de element ce are atasat un script este personajul principal al jocului (fig.3). Acest element are atasat un numar de scripturi pentru manipulare si setarea parametrilor de dezvoltare a caracterului (experienta necesara pentru a creste in nivel).
Capitolul 3: Implementarea aplicatiei
Caracterul principal al jocului
Caracterul principal a fost creat intr-un intr-un program de modelare 3D numit Blender (fig.1). Acest program este gratuit si open-source. Acest program contine manuale cu instructiuni pentru utilizarea usoara a functiilor si uneltelor incluse in program. Caracterul principal are un nivel scazut de detaliu si contine un set de animatii originale pentru miscarea in spatiu (animatie de alergat, de atac, etc). Caracterul a fost impartit in straturi separate de textura si obiecte deoarece permite dezvoltarea pe viitor a fiecarui obiect inclus in caracter (un exemplu de obiect al caracterului este sabia). Pentru crearea animatiilor s-a folosit un schelet de miscare numit in programul de modelare “armament”. Acest schelet reprezinta replica unui schelet uman ce permite manipularea fiecarui membru al corpului (fig.2). Dupa inregistrarea fiecarei animatie in parte, caracterul a fost extras din programul de modelare intr-un format de tip “.blend” si inclus in motorul grafic Unity pentru a fi generat (fig,3).
Obiectele din lumea jocului
Obiectele folosite in lumea jocului sunt pachete externe descarcate de pe magazinul “Unity Asset Store”. Acest magazin contine pachete si obiecte de jocuri din toate categoriile si au un pret specific pus de dezvoltator sau sunt gratuite. Toate pachetele folosite pentru jocul “Swordfighter Saga” sunt gratuite. Jocul contine o varietate larga de elemente si sunt catalogate in mai multe tipuri:
Elemente de caracter – Reprezinta personajele jocului ce se gasesc in lume si au rolul de a interactiona cu alte caractere
Elemente de lume – Elemente folosite pentru a modela si dezvolta lumea jocului. Exemple de elemente de lume sunt: case, castele, copaci, pietre, munti, etc.
Elemente de meniu – Contin elementele vizuale ce ofera informatii utilizatorului pentru a intelege aplicatie. Un exemplu este bara de viata a personajului principal ce ofera informatii utilizatorului pentru a stii cand personajul este ranit sau nu (fig.1).
Elemente audio – Elementele pentru sunetul de efect si muzica de fundal al jocului.
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: Crearea unui joc video 3D [303848] (ID: 303848)
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.
