Creare un Roguelike 2D in Unity - Parte 2 Guida completa per la creazione di un gioco roguelike 2D in Unity. Parte 2: Nemici, IA di base e sistema di combattimento

Creare un Roguelike 2D in Unity - Parte 1

Proseguiamo il nostro viaggio nella realizzazione di un roguelike 2D con Unity. Nella prima parte abbiamo creato il progetto, impostato la grafica e implementato il movimento del personaggio. Ora è giunto il momento di dare vita al dungeon: aggiungeremo i nemici, programmeremo un'IA di base per inseguire il giocatore, e implementeremo un semplice sistema di combattimento.

Ricordiamo che tutto il codice di riferimento è disponibile nel repository GitHub ufficiale 2DRogueTest, che vi consigliamo di consultare per assicurarvi di visionare il codice sorgente aggiornato all'ultima versione!

1. Aggiunta dei nemici

Nel progetto troviamo già il prefab del nemico base: /Prefabs/Enemy.prefab. Questo GameObject include:

  • uno SpriteRenderer con lo sprite enemy.png
  • un Rigidbody2D (Body Type: Dynamic)
  • un BoxCollider2D
  • lo script EnemyController.cs presente in /Scripts/EnemyController.cs

L'enemy prefab può essere istanziato manualmente nella scena oppure tramite script.


2. Movimento verso il player (IA base)

Lo script EnemyController.cs contiene una logica semplice ma efficace per inseguire il giocatore:

Questa semplice IA fa muovere ogni nemico verso il giocatore, con velocità costante. Assicurati che il player abbia il tag Player impostato.


3. Sistema di combattimento

Per aggiungere un sistema di danno e morte, ogni entità (player e nemici) deve avere un sistema di punti vita. Nel progetto troviamo uno script riutilizzabile chiamato EntityStats.cs in /Scripts/EntityStats.cs:

Lo script PlayerController.cs è stato aggiornato per attaccare i nemici quando preme il tasto Space. Nel metodo Update() troviamo:

E la funzione TryAttack() è definita così:

Questo attacco ad area semplice colpisce ogni nemico nel raggio di 0.5 unità.

Nota:

  • I nemici devono avere il tag Enemy.
  • Lo script EntityStats deve essere aggiunto sia al player che ai nemici.

4. Sistema di danno al giocatore

Anche i nemici possono infliggere danno. Nello script EnemyController.cs, puoi aggiungere questo metodo:

In questo modo, ogni volta che un nemico tocca il player, infligge 1 danno.

Puoi migliorare questo sistema con un cooldown tra gli attacchi, animazioni e feedback visivi.


5. Feedback visivo e polish

Nel progetto sono inclusi:

  • animazioni per nemici e player in /Animations
  • effetti sonori placeholder
  • logiche base per far lampeggiare i nemici quando ricevono danno

Tutto è opzionale ma migliora l'esperienza.


Conclusione

In questa seconda parte abbiamo dato vita al dungeon: i nemici inseguono il giocatore, lo attaccano, e possono essere sconfitti. Tutto è gestito tramite script semplici e modulari, tutti presenti nel repository 2DRogueTest.

Nella terza e ultima parte vedremo come generare automaticamente le stanze, collegarle tra loro, e rendere ogni partita unica.

Fork me on GitHub

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


Il periodo di verifica reCAPTCHA è scaduto. Ricaricare la pagina.

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.