Panoramica
🧪 Prototipo concept (2026) — sviluppato come demo di pitch per una selezione di un publisher di videogiochi.
Un prototipo completo di wargame a turni realizzato in Unity 6: battaglie tattiche su griglia esagonale, un layer campagna con regioni e rinforzi, avversari guidati dall’AI e un map editor integrato. Sviluppato da un team di tre persone — due game designer e io come unico programmatore — per dimostrare il core gameplay loop e la fattibilità tecnica del concept.
Video Demo
Tecnologie Utilizzate
- Unity 6 (URP)
- C# Scripting
- Unity Input System
- AI a Behavior Tree custom (scritta da zero)
- Rendering GPU instanced / indirect per grandi quantità di unitÃ
- Shader custom
Caratteristiche
Sistema di Battaglia Tattica
- Campo di battaglia a griglia esagonale con tipi di terreno ed effetti delle tile
- Combattimento a turni tra reggimenti con abilità passive e log di combattimento
- Condizioni di vittoria modulari (annientamento, soglie di ritirata)
Layer Campagna
- Campagna a regioni con fasi del turno, rinforzi e stato persistente dei battaglioni
- AI avversaria di campagna e salvataggio/caricamento dell’intero stato di gioco
Map Editor Integrato
- Map editor in-game con supporto save/load, per creare e iterare scenari rapidamente
Performance
- Rendering GPU instanced di tile e unità (indirect rendering) per supportare mappe grandi e molte unità a frame rate elevati
Architettura e Dettagli Tecnici
- Architettura disaccoppiata: service locator leggero e manager event-driven, per mantenere indipendenti e testabili i layer di battaglia, campagna e UI.
- Design data-driven: scenari, reggimenti, regioni e set di rinforzi sono configurati tramite ScriptableObject — nuovi contenuti si aggiungono senza toccare il codice.
- AI a Behavior Tree custom, scritta da zero: un core BT riutilizzabile con librerie separate di azioni e condizioni, che guida sia l’AI tattica in battaglia (selezione dei bersagli, posizionamento) sia l’avversario a livello di campagna.
- Pipeline dei turni deterministica con fasi esplicite (schieramento, movimento, combattimento, rinforzi) — la base per la coerenza dei salvataggi e per la pianificazione dell’AI.
- Rendering pensato per la scala: tile e reggimenti disegnati via GPU instancing con draw call indirette, shader variant e mesh ottimizzate — i campi di battaglia restano fluidi anche con molte unità .
- Serializzazione: stato di gioco completo e dati mappa salvati in JSON, con un file browser in-game per caricare scenari personalizzati.
- Testabilità : scene di test dedicate per ogni fase di sviluppo del layer campagna, per validare le funzionalità in isolamento.
Ruolo e contributi
Il team era composto da due game designer e da me come unico programmatore. Ho sviluppato l’intero codice: architettura di gioco (service locator, ScriptableObject data-driven), sistema a griglia esagonale, AI a behavior tree, logica di campagna, UI (menu radiali, pannelli informativi), ottimizzazione del rendering e map editor — lavorando a stretto contatto con i designer per iterare su regole, bilanciamento e design degli scenari, e costruendo il setup data-driven e il map editor che permettevano loro di lavorare in autonomia sui contenuti.
