Site icon Ryadel

Creare un Roguelike 2D in Unity - Parte 1

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.

Exit mobile version