Differences

This shows you the differences between two versions of the page.

Link to this comparison view

gp:laboratoare:05 [2025/03/30 14:33]
maria_anca.balutoiu
gp:laboratoare:05 [2025/03/30 15:50] (current)
maria_anca.balutoiu [Tasks]
Line 1: Line 1:
 ===== Laboratorul 05. Generarea Procedurală a unui Dungeon ===== ===== Laboratorul 05. Generarea Procedurală a unui Dungeon =====
-<​hidden>​ +Implementarea procedurală de dungeon-uri ​implică crearea de algoritmi care pot genera în mod autonom modele de dungeon ​diverse și jucabile. Acest proces include de obicei definirea structurilor camerei, conectarea lor cu coridoare și asigurarea că aspectul general este coerent și navigabil. ​Pași pentru a putea genera un dungeon: 
-Implementarea ​unui generator ​procedural de temniță în Unity implică crearea de algoritmi care pot genera în mod autonom modele de temniță ​diverse și redate. Acest proces include de obicei definirea structurilor camerei, conectarea lor cu coridoare și asigurarea că aspectul general este coerent și navigabil. ​Mai jos este abordare structurată pentru a realiza acest lucru:+  - Definirea structurii dungeon-ului 
 +    * **Grid based layout:** Se utilizează un grid, în care fiecare celulă reprezintă ​posibilă cameră sau un posibil segment de coridor. 
 +    * **Template-uri ​pentru ​camere:** Se utilizează diverse templete-uri de diferite dimensiuni și forme. Aceste template-uri pot fi fie prefabs, fie modele generate procedural. 
 +  - Algoritm de poziționare ​camerelor 
 +    * **Random Walk Algorithm:** Se începe dintr-un punct central și se efectuează o cale aleatoare pentru a plasa camere. Această metodă creează modele organice și neliniare. 
 +    * **Binary Space Partitioning (BSP):** Se împarte spațiul gridului recursiv în secțiuni mai mici pentru a plasa camere, asigurând o distribuție echilibrată. 
 +  - Conectarea camerelor 
 +    * **Generarea coridorului:​** După ce s-au plasat camerele, se generează coridoare pentru a crea conexiuni. Toate camerele ar trebui să fie conectate. 
 +    * **Pathfinding:​** Se implementează algoritmi precum A* pentru a asigura cele mai scurte și mai logice căi între camere. 
 +  - Vizualizarea dungeon-ului 
 +    * Tilemaps pentru 2D 
 +    * Instanțiere de prefabs pentru 3D   
 +  - Optimizări și Îmbunătățiri 
 +    * Occlusion Culling 
 +    * Elemente decorative
  
-1. Definiți structura temniței+==== BSP ==== 
 +BSP urmează o abordare recursivă de partiționare a spațiului în care o zonă mare este împărțită continuu în secțiuni mai mici. Pașii includ:
  
-Aspect bazat pe grilă: Utilizați un sistem de grilă în care fiecare celulă ​reprezintă o cameră ​potențială sau un segment de coridorAcest lucru simplifică logica de plasare și conectare.+  - **Inițializarea spațiului.** Se începe cu o regiune dreptunghiulară mare care reprezintă ​întreaga zonă a dungeon-ului. 
 +  - **Divizări recursive.** Se împarte recursiv spațiul în două subregiuni folosind fie o împărțire verticală, fie orizontală. Se continuă împărțirea până când regiunile ating o dimensiune minimă predefinită. 
 +  - **Plasarea camerei.** În fiecare subregiune, se plasează aleatoriu ​o cameră ​care se încadrează în spațiu. Camera nu trebuie neapărat să acopere întreaga subregiune, permițând amenajări mai naturale. 
 +  - **Conectarea camerelor.** Odată ce camerele sunt amplasate, coridoarele sunt create pentru a le conecta.
  
-Șabloane de cameră: proiectați diverse șabloane de cameră de diferite dimensiuni și forme. Aceste șabloane pot fi GameObjects predefinite sau modele generate procedural. +==== Tasks ==== 
- +  Generați procedural folosind ​BSP un dungeon
-2. Algoritmul de plasare a camerei +  **Bonus.** Generați un dungeon cu minim 3 etaje.
- +
-Algoritmul de mers aleatoriu: Începeți dintr-un punct central și efectuați o plimbare aleatorie pentru a crea căi, plasând camere la intervale. Această metodă creează machete organice și neliniare. +
- +
-Binary Space Partitioning (BSP): Împărțiți recursiv spațiul grilei în secțiuni mai mici pentru a plasa camere, asigurând o distribuție echilibrată+
- +
-3. Camere comunicante +
- +
-Generarea coridorului:​ După ce ați plasat camere, generați coridoare pentru a le conecta. Asigurați-vă că toate camerele sunt accesibile pentru a menține capacitatea de redare. +
- +
-Algoritmi Pathfinding:​ Implementați algoritmi precum Apentru a asigura cele mai scurte și mai logice căi între camere. +
- +
-4. Vizualizarea +
- +
-Tilemaps pentru 2D: utilizați sistemul Tilemap al Unity pentru a reda aspectul temniței în 2D. +
- +
-Instanciare prefabricată pentru 3D: Instanciați prefabricate de cameră și coridor într-un spațiu 3D pentru a vizualiza temnița. +
- +
-5. Optimizare și îmbunătățire +
- +
-Eliminarea ocluziei: implementați eliminarea ocluziei pentru a optimiza redarea, fără sălii și coridoare care nu sunt în raza vizuală a jucătorului. +
- +
-Elemente decorative: adăugați recuzită și decorațiuni în camere pentru a spori atractivitatea vizuală și varietatea. +
-</​hidden>​+
  
  
gp/laboratoare/05.1743334432.txt.gz · Last modified: 2025/03/30 14:33 by maria_anca.balutoiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0