Creare un Roguelike 2D in Unity - Parte 1 Guida completa per la creazione di un gioco roguelike 2D in Unity. Parte 1: Setup del Progetto, Grafica Pixel e Controlli Base

Creare un Roguelike 2D in Unity - Parte 1

Chi non ha mai voluto creare il proprio videogioco? Magari un piccolo dungeon crawler, con visuale dall’alto, un eroe che si muove tra stanze oscure piene di mostri, e quella magica sensazione di imprevedibilità che solo un roguelike sa offrire. Se anche tu, come noi, hai sognato almeno una volta di dar vita al tuo mondo in pixel art, allora sei nel posto giusto.

In questa serie di tre articoli ti guideremo passo dopo passo nella realizzazione di un semplice ma completo roguelike 2D sviluppato in Unity, prendendo come punto di riferimento il nostro progetto open source 2DRogueTest, scaricabile liberamente su GitHub. Ovviamente l'esempio che vi proponiamo di realizzare non è pensato per essere un gioco commerciale né un capolavoro visivo: è un esempio concreto, realizzato con l’intento di aiutare gli sviluppatori alle prime armi a orientarsi tra script, prefab, tilemap e logiche di gameplay.

In questa Parte 1, cominceremo con il setup del progetto, l’importazione degli sprite e la creazione del sistema di movimento per il personaggio. Niente di complicato o stressante: tutto spiegato con calma, con esempi pratici, file esistenti, e con l’idea di divertirci mentre impariamo.

Pronto a muovere i primi passi nel tuo dungeon digitale? Allora partiamo!

1. Creazione del progetto Unity

Apriamo Unity Hub e creiamo un nuovo progetto 2D chiamato 2DRogueTest. Per semplicità useremo il pipeline Built-in Render Pipeline, ma puoi adattarlo facilmente anche a URP.

Assicurati che il progetto abbia la seguente struttura iniziale:

Queste cartelle esistono già nel repository GitHub.

Apri la scena /Scenes/SampleScene.unity, che è la scena principale del gioco.


2. Importazione della grafica pixel

Nella cartella /Sprites troviamo gli sprite usati nel gioco. Tra questi:

  • character.png – il nostro personaggio
  • enemy.png – nemico base
  • tileset.png – tileset per pavimenti e muri

Unity li importerà come Texture Type: Sprite (2D and UI). Imposta il Pixels Per Unit coerentemente (es. 16 o 32) per mantenere le proporzioni pixel-perfect.

Nel file Sprites.meta troviamo le impostazioni corrette per importazione e slicing automatico.


3. Aggiunta del personaggio

Nel progetto, il GameObject principale per il player si trova nel prefab /Prefabs/Player.prefab. Questo è composto da:

  • uno Sprite Renderer con character.png
  • un Rigidbody2D (Body Type: Dynamic)
  • un BoxCollider2D

A esso è associato uno script chiamato PlayerController.cs che troviamo in /Scripts/PlayerController.cs.

Ecco uno stralcio del codice:

Questo semplice script consente il movimento fluido in 4 direzioni.


4. Setup della mappa e ambiente

La mappa iniziale del gioco è costruita a runtime, ma nel progetto troviamo un esempio statico nella scena SampleScene per testare il movimento. Il suolo e i muri sono creati posizionando manualmente tile estratti da tileset.png.

In alternativa, è possibile importare il package 2D Tilemap Editor da Unity per creare mappe direttamente in editor.


5. Camera e follow del player

La camera principale della scena ha uno script chiamato CameraFollow.cs che troviamo in /Scripts/CameraFollow.cs. Ecco il codice:

Per far funzionare lo script, basta assegnare il transform del player al campo target nello script.


6. Test e build

A questo punto è possibile eseguire la scena SampleScene, muovere il personaggio e testare che tutto funzioni. La mappa è ancora statica, ma nella prossima parte ci occuperemo di aggiungere nemici, IA e sistema di combattimento.


Conclusione

In questa prima parte abbiamo costruito le basi: player, movimento, mappa e camera. Tutto è già disponibile nel progetto GitHub 2DRogueTest. Nella prossima parte ci concentreremo sull'intelligenza artificiale dei nemici e sul sistema di combattimento.

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.