Sentimentul de singurătate este menit să întărească teama de spațiul necunoscut și nedorit în care se desfășoară totul. Un aspect interesant al acestui gen este că este definit de modul în care își propune să afecteze consumatorul. Modul în care aceste materiale interacționează cu psihicul consumatorului este următorul: proiecte care abordează așa prea „grafic” (nu este un fenomen limitat doar la film, sunt nenumărate jocuri care abuzează de acest gen, precum și cărți de exemplu, romane în care Sven Hassel prezintă ororile războiului) forțează imaginația cititorului, reduc viziunea cititorului.
Un bun exemplu în această direcție este filmul „The Blair Witch Project” (1999), unde conținutul extrem de grafic este foarte rar: acest film prezintă povestea a trei tineri care decid să investigheze o pădure despre care se zvonește a fi un spațiu generos pentru fenomene paranormale. De-a lungul filmului, nu apare o dată pe film o creatură monstruoasă, întreaga atmosferă este creată de spațiul în care se află personajele principale și de reacțiile lor la diferitele evenimente care au loc (de exemplu, găsirea unor figuri de băț atârnând de copacii din jurul cortului lor). Filmul se termină brusc când aparatul de fotografiat este scăpat pe jos de unul dintre personaje într-o situație deja tensionată.
Un alt motiv pentru care acest film este un subiect bun de studiu de caz este modul în care conceptul. Acest lucru ne aduce la o altă noțiune care definește o lucrare horror de calitate, și anume modul în care materialul la care a fost expus consumatorul continuă să-l macine pe consumator chiar și după ce a încetat. Deci, dacă un dezvoltator, indiferent de nivelul de experiență, se confruntă cu o problemă pe care nu o poate rezolva singur, are șanse foarte mari să găsească întrebarea deja formulată în forumurile comunității.
Și dacă nu era pe cine să întrebe, cu siguranță va găsi pe cineva care a trecut printr-o situație similară și este gata să-i răspundă.
Assets
Al doilea asset pe care l-am folosit este Staff of Pain, pe care l-am găsit gratuit în Asset Store (https://www.assetstore.unity3d.com/en/#!/48820), publicat de Sergi Nicolas, membru al Comunității, pe 5 noiembrie 2015. M-am hotărât să folosesc acest asset și ăsta a fost jocul pentru asta. Nu să învăț să modelez cu precizie profesionistă. Așa că am importat acest articol în aplicația mea și am adăugat scriptul pe care l-am făcut pentru AI inamic, sunete și un colider pentru a avea unele proprietăți fizice.
Pentru a crea sunetele folosite în aplicație, am folosit Fruity Loops Studio, o stație de lucru digitală audio produsă de Image Line. Am ales să folosesc FL Studio pentru că este un instrument foarte versatil pe care l-am folosit în multe alte proiecte de-a lungul anilor. Folosind FL Studio am creat niște sunete ambientale folosind niște sintetizatoare și am modificat câteva sunete înregistrate de mine pentru a oferi entității negative din universul jocului o „voce”.
Tehnologii folosite
Limbajul C#
CLR este practic o VM (mașină virtuală) care rulează IL și oferă multe servicii precum managementul memoriei, gestionarea excepțiilor, securitate, colectarea gunoiului etc.[1] Majoritatea platformelor de dezvoltare de jocuri oferă utilizatorului atât o interfață grafică, cât și abilitatea de a scrie diferite elemente sau aspecte ale aplicației și ale platformei în diferite limbaje de programare. Unitatea nu face excepție de la această regulă, așa cum se va arăta mai jos.
În ceea ce privește partea de scripting Unity, la începutul dezvoltării oricărui proiect, va exista un semn de întrebare despre limbajul de programare care va fi folosit. Unity nu impune nicio restricție asupra acestei decizii, permițând utilizarea C# și Javascript în același timp, deși acest amestec este considerat „practică proastă” deoarece poate provoca confuzii și conflicte de compilare. Limba aleasă, așa cum sa văzut în capitolele precedente, este C# în acest caz din mai multe motive.
În primul rând, pentru a clarifica, nu există un limbaj „rău” pentru programarea în Unity între Javascript și C#. C# are, de asemenea, o poziție importantă în povestea de creștere a Unity, fiind strâns legat de .NET, .NET folosit în Unity sub numele de „Mono” și similar cu C++, care a fost foarte folosit în dezvoltarea jocurilor.[2].
Prezentarea aplica ț iei
Specifica ț ii func ț ionale
Entitatea negativă va fi rezultatul aplicării unui script care simulează o inteligență artificială unui model 3D cu aspect perturbator. Acest lucru se întâmplă să confere un caracter imprevizibil entității negative, iar orientarea aleasă la stânga sau la dreapta este de asemenea menită .. să prelungească jocul, sau să crească șansele de supraviețuire ale jucătorului evitându-se astfel o coliziune produsă în momentul teleportării între subiect și jucător, ciocnire care ar pune capăt jocului). Generarea spațială se face folosind zgomot perlin, procedură care va fi explicată în următoarele subsecțiuni.
Arhitectura aplica ț iei
- Harta
- Jucătorul
- Entitatea negativă
Pentru a înțelege cum este generată harta, vom reaminti variantele în care ar putea fi realizat acest aspect. Pentru a simula realismul, ne vom întoarce la modul în care am definit harta și vom face o mică ajustare: în loc de un vector bidimensional de biți, vom lua în considerare un vector bidimensional de numere (raționale, pentru acest exemplu). În altă ordine de idei, vom studia clasa MeshGenerator și modul în care aceasta folosește clasa MeshData.
Apoi declară un nou obiect MeshData și un index pentru numărul de vârfuri. Parcurge harta și construiește vectorul vârfurilor și uv-urile, iar dacă poziția curentă nu este pe margine, adaugă și un triunghi. Ultimul detaliu care trebuie explicat în cazul generării hărților de către această aplicație este modul în care se obține textura.
TextureFromColourMap care returnează un obiect de tip Texture2D și ia ca parametri harta de culori și dimensiunile hărții în format 2D (înălțime și lățime). Un alt parametru al obiectelor Texture2D este wrapMode, care în acest caz este setat la Clamp. Motivul pentru care se utilizează modul clip este clar: harta de culori, care reprezintă plasarea regiunilor, este strâns legată de harta de zgomot; dacă textura rezultată ar avea artefacte repetate, reprezentarea regiunilor nu ar mai fi fidelă.
Având în vedere faptul că proiectul prezentat în această lucrare este un joc, modul în care utilizatorul interacționează cu aplicația nu ar trebui să surprindă pe nimeni. Astfel, în mediul întunecat în care se află jucătorul, senzația de stres va fi amplificată datorită acestei lumini care acoperă o suprafață mică în comparație cu dimensiunile hărții. Totuși, pe măsură ce începe să se apropie, jucătorul va auzi treptat cele două surse de sunet: de la distanță, va auzi doar un sunet „ambient”, oarecum asemănător cu un efect sonor produs de vânt (acest sunet a fost obținut folosind un sintetizator audio numit Sytrus, folosit în contextul FL Studio); a doua sursă de sunet va fi auzită doar la o distanță mai mică, pentru a contribui la acest fapt de stres spațial (și ).
Pe scurt, efectul Doppler se referă la modificarea înălțimii (înălțimii) unui sunet atunci când sursa care îl emite este în mișcare sau observatorul este în mișcare. Modul de funcționare este următorul: în fiecare cadru se calculează o nouă poziție a entității, în funcție de mai mulți factori, principalul fiind poziția țintei (jucătorului). Dacă aceasta este mai mare de 100 de unități, variabila viteză curentă ia valoarea.
În cele din urmă, dacă distanța dintre cele două entități este chiar mai mică de 30, entitatea negativă se va deplasa pur și simplu cu viteză normală direct către țintă, așa cum este descris în reprezentarea situației în care distanța este mai mare de 100 de unități. Singura variabilă prezentă în această clasă este temporizatorul, care este un float public. În implementarea metodei Update (care, așa cum am spus mai înainte, este numită pentru fiecare cadru al jocului) timer-ul este gestionat: durata de timp care a trecut de la ultimul cadru este scăzută din ea, iar dacă rezultatul este mai mic sau egal cu zero, valoarea acestuia este setată la zero.
În metoda OnGUI, se verifică valoarea cronometrului, iar în cazul în care este 0, adică jocul s-a încheiat în favoarea jucătorului, timpul este oprit ca în BasicFollowerAI și pe ecran este afișată felicitarea „Felicitări, ai supraviețuit la sfârșit”. (care poate fi tradus prin „Felicitări, ai supraviețuit”).
Concluzii
Bibliografie