Ho fatto una torta (in Unity)

Nel proseguire con lo sviluppo del gioco basato sul Rosatellum mi sono reso conto che ho cominciato a gestire una quantità di percentuali che messe per iscritto non hanno molto senso e quindi ho deciso di implementare un grafico a torta.

Implementare un grafico a torta in Unity è sorprendentemente semplice: consiglio di costruirsi il proprio Asset al posto di scaricarne uno tra i mille già pronti, proprio perché con le funzioni di base della gestione dell’UI si tratta sostanzialmente di caricare una immagine e colorarla.

Ecco un tutorial che spiega come farlo: vi consiglio di seguire solo il primo video e poi provare ad implementarlo da soli.

Oltre ad aggiungere questo grafico a torta ho inserito una funzione per fare un sondaggio sulle intenzioni di voto, e come tutti i sondaggi questo da una idea realistica ma imprecisa delle percentuali finali. Questo dato sarà a disposizione sia del giocatore, che della IA e sarà alla base della contrattazione per la creazione delle alleanze, che è una delle prossime funzioni che voglio implementare. Prima però vorrei ristrutturare i collegi per regioni e magari creare anche una bella mappa dell’italia, come base per il tabellone di gioco.

Un gioco della scorsa settimana (6 Novembre)

Questa settimana ho visto nella lista delle nuove uscite una mia vecchia conoscenza.

Solar Collector

Questo gioco penso è nato nel Ludum Dare di Agosto al quale ho partecipato (e ora che ci penso non vi ho mai realmente parlato dell’esperienza). La versione per il Ludum Dare era divertente, e penso sia l’attuale demo, e sulla pagina Itch.io sono segnalati i miglioramenti che son stati fatti a questo gioco nel corso degli ultimi mesi.

Il gioco non è rimasto molto simile alla sua versione originale che quindi è studiata per partite di pochi minuti, ma sembra essere stato rifinito. Lo scopo del gioco è costruire una rete di pannelli solari per raccogliere energia per rifornire i veicoli spaziali che transitano nella nostra area di servizio. La meccanica è abbastanza semplice ed è probabilmente ripetitiva, e per questo il gioco costa solo 1.99 €.

Questo titolo è il segno che nonostante il cambiamento della policy sulla pubblicazione dei videogiochi anche un piccolo sviluppatore emergente con un gioco che – a voler essere sinceri – forse sarebbe solo destinato a Itch.io, può ancora se lo vuole pubblicare un gioco su Steam. E questo non è di per se un male, anzi, però mi chiedo se affrontare il passo di andare su Steam sia effettivamente sensato dato che oggi non ha alcun effetto vetrina e l’unico vero vantaggio è il poter distribuire le chiavi magari in bundle da un dollaro.

Primi Caricamenti e Ripartizione dei Collegi per Regione

Completata la fase di salvataggio su file ho ricostruito anche le funzioni per caricare i Partiti e le issue. Ho deciso di salvare le Issue come singoli file per eventuali aggiunte future.
Per ora questi file sono posizionati nella cartella StreamingAssets, come sottocartelle. Il sistema va a leggere tutti i file presenti nelle cartelle e se formattati correttamente li carica.

Per ora il sistema funziona come previsto, ma è necessario qualche tipo di verifica sulla qualità dei dati, in particolare sulle issue. Mi piace l’idea che gli oggetti Issue siano configurabili esternamente, ma questo pone dei problemi nel consolidare i dati con quelli del resto del sistema.

Oltre alla questione di salvataggio e caricamento in questi giorni ho pensato di ristrutturare la struttura dei collegi in modo da essere divisa in provincie e regioni: al momento non è ancora presente una mappa della reale ripartizione dei collegi del Rosatellum, e per questo ho ripartito arbitrariamente i collegi nelle province basandomi sulla popolazione totale. Per regione ho questa ripartizione

Abruzzo 4
Basilicata 2
Calabria 8
Campania 23
Emilia Romagna 18
Friuli Venezia Giulia 5
Lazio 22
Liguria 6
Lombardia 37
Marche 6
Molise 1
Piemonte 15
Puglia 16
Sardegna 7
Trentino Alto Adige 4
Toscana 15
Umbria 4
Valle d’Aosta 1
Veneto 18

Il Muro di Berlino visto da un Autobus

Oggi 28 anni fa cadeva il muro di Berlino, simbolo della cortina di ferro che spezzò in 2 l’europa, e confine che arbitrariamente divise in 2 una città e un popolo.

Alla fine della seconda guerra mondiale la Fermania fu divisa in 4 settori di influenza, e la città di Berlino – che si trova all’interno del settore sovietico – venne a sua volta divisa in 4 settori. Quando nel 1949 la Germania si divise in due stati la parte ovest della città rimase una enclave della Germania Ovest. Quando nel ’61 la differenza tra le due nazioni diventò così evidente dal far fuggire ad ovest migliaia di persone il regime sovietico rispose creando un muro attorno a Berlino Ovest.

Diversi videogiochi si occupano del muro di Berlino dal punto di vista storico, politico, o militare: ad esempio in World in Conflict: Soviet Assault ci troveremo a giocare uno scenario di invasione di Berlino Ovest da parte dei Sovietici, dove abbatteremo il muro per attraversarlo con i carri armati.

Ma per commemorare questa giornata volevo proporre una visione più semplice del muro, quella che potevano avere i cittadini di Berlino Ovest negli anni ’80.

OMSI 2 è un simulatore di autobus che ricostruisce la zona di Spandau a cavallo della caduta del muro. Lo scenario è dinamico, e a seconda della data che vogliamo simulare alcune strade saranno aperte e alcune saranno chiuse: le auto dell’est cominceranno a girare solo dopo la caduta del muro, e altri eventi contribuiscono ad immergersi in quel periodo storico.

OMSI 2 non è perfetto, ed è certamente un gioco di nicchia dato che il suo obiettivo principale è quello di simulare in ogni dettaglio un autobus (e il livello di dettaglio dei sistemi simulati è di quelli che richiedono qualche ora di tutorial prima di poter cominciare a muoversi), ma è un gioco perfetto per immergersi in un periodo storico dal punto di vista di un cittadino qualunque che non è all’interno di una trama o di una storia avvincente, ma semplicemente vive la sua vita circondato dal muro.

Primi Salvataggi

Come prevedevo nell’articolo di ieri la struttura dei salvataggi si sta rivelando un lavoro per lo più meccanico e lungo ma abbastanza semplice, una volta impostato.

Son riuscito a creare quasi l’intera struttura di dati attualmente presenti nel gioco, e ho creato anche un sistema per salvare a parte i partiti.

Ecco un esempio del risultato in JSON.


{"id":"pa0","name":"Liberal Party","positions":
[
{"issueId":"is1","importance":9,"favour":4},
{"issueId":"is4","importance":7,"favour":2},
{"issueId":"is5","importance":6,"favour":-4},
{"issueId":"is6","importance":5,"favour":1},
{"issueId":"is9","importance":4,"favour":2},
{"issueId":"is2","importance":3,"favour":2},
{"issueId":"is10","importance":2,"favour":1},
{"issueId":"is3","importance":1,"favour":1},
{"issueId":"is8","importance":0,"favour":0}
],
"coalitionId":""}

Domani proverò il caricamento di dati per vedere se il sistema basato sugli id che ho messo in campo funziona come previsto.