Serializzare i Dictionary in Unity

Oggi ho completato le funzioni di salvataggio e caricamento dei dati in modo da poter editare e importare i dati reali attraverso un file json e senza dover quindi ricompilare l’eseguibile.

Mi son trovato con il problema di dover serializzare alcuni dictionary: C#/Unity non serializza direttamente questi tipi di dati e quindi ho adoperato questa soluzione.

Ho creato una classe contenente i due tipi di dati (chiave e valore) per ogni dizionario.

Esempio
[System.Serializable]
public class PartyIdPercentage
{
  public string partyId;
  public float percentage;

  public PartyIdPercentage(string partyId,float percentage){
    this.partyId = partyId;
    this.percentage = percentage;
  }
}

E quindi ho trattato il Dictionary come una List di questi oggetti sia nel salvataggio che nel caricamento.

A questo punto son riuscito a salvare in JSON tutta la struttura dei dati della nazione, compresi i riferimenti ai GameObject che compongono la mappa. Per ora il riferimento salvato è solo ad un GameObject pre-esistente nel gioco, ma non dovrebbe essere troppo difficile riuscire a ristrutturare il caricamento della mappa in modo da poter caricare i vari tasselli posizionandoli alle coordinate corrette. In questo modo potrebbe risultare semplice modificare la mappa.

Ho fatto qualche nuova modifica alla visualizzazione dei dati in modo da poter vedere le percentuali in un grafico selezionando una provincia, e ho caricato i nomi dei partiti italiani. Il prossimo passaggio sarà inserire i dati delle scorse elezioni e verificare che questi si vedano correttamente nel programma.

Varie operazioni di interfaccia

Oggi mi sono occupato di tutta una serie di operazioni di risistemazione dell’interfaccia che mi permetteranno di procedere più agevolmente con la verifica dei dati una volta caricate le vere percentuali regionali.

Ora la mappa italiana è zoommabile e spostabile: selezionando una provincia nel pannello laterale sinistro compaiono i collegi (ovvero i pulsanti che prima erano tutti nella stessa interfaccia) e nel pannello a destra compaiono le percentuali dei partiti.

Ho creato la struttura dati per salvare le percentuali dei partiti, e una funzione per ricalcolare a 100 il totale provinciale.

A questo punto possono essere caricati i dati che ho precalcolato per le varie regioni e può essere fatta la somma dei vari collegi per verificare che il dato totale sia compatibile con i sondaggi iniziali. Non penso che il risultato risulterà compatibile al primo colpo e quindi occorrerà riadattare il risultato provinciale in base al numero di collegi.

Una volta riadattate le percentuali provinciali sarà possibile effettuare la prima simulazione di elezione dopo aver risistemato la logica di conteggio dei collegi.

EA fa marcia indietro (o quasi) sui lootbox

I lootbox hanno fatto parlare parecchio con il rilascio di Shadow of War, Star Wars: Battlefront 2.

Per una volta le proteste dei giocatori non son passate inascoltate ed EA – probabilmente sotto la pressione di Disney che teme uno scandalo a pochi giorni dal rilascio del nuovo film di Guerre Stellari – ha fatto una momentanea marcia indietro sul sistema di lootbox presente in Battlefront 2, spegnendolo momentaneamente e impegnandosi a “ribilanciarlo”.

Una vittoria per i consumatori? Forse si. Non tanto perché EA ha dovuto fare un passo indietro ma perché questo titolo ha fatto sollevare un notevole polverone sulla stampa generalista, ed economica, e perché in seguito a questo polverone il titolo EA ha continuato a perdere in borsa dal 16 novembre (Battlefront è stato rilasciato il 17), e anche perché oltre all’attenzione mediatica per il motivo sbagliato il lancio di questo gioco non ha effettivamente fatto registrare il successo di vendite al Day 1 che aveva fatto il primo capitolo, o anche solo Battlefield 1.

Le armi del consumatore quindi si confermano 2:
1) Non acquistare un prodotto se questo contiene delle meccaniche che non ci piacciono, e soprattutto se è sostenuto da un modello di business che non consideriamo compatibile con l’esperienza videoludica, e che riteniamo dannoso per l’industria.
2) Discutere, e far sentire online le ragioni per cui riteniamo sbagliate queste pratiche.

Non penso che EA, e le altre grosse aziende del settore, faranno completamente marcia indietro sul concetto di games as service, ma forse ci penseranno due volte prima di includere delle meccaniche che possono essere confuse con il gioco d’azzardo, anche perché se continuano ad alzare questo polverone mediatico che travalica i confini della stampa di settore prima o poi il legislatore interverrà indiscriminatamente per bloccare queste pratiche, e se dovesse succedere ci andranno probabilmente di mezzo anche tanti piccoli produttori di giochi con modelli di business Free 2 Play.

Un gioco della scorsa settimana (13 Novembre)

Anche la settimana appena trascorsa non ha brillato per le nuove uscite tra i titoli che piacciono da queste parti, ma se avete un dispositivo per la realtà virtuale questa esperienza potrebbe fare per voi.

Perspectives: Aleppo-Helsinki

Non si tratta di un vero e proprio gioco, ma di una esperienza virtuale nella quale il centro città di Helsinki – ricostruito come è al giorno d’oggi – viene devastato da una guerra. Ci troviamo quindi in un ambiente europeo e familiare e lo vediamo dopo l’effetto di una guerra contemporanea come quella della Siria.

Questo tipo di esperienza è uno dei potenziali utilizzi della realtà virtuale: sia trasportarci nella vera e propria Aleppo, come in questo video a 360 gradi, sia ricostruire una versione virtuale della nostra città per avvicinarci ad una guerra lontana.

Questa esperienza è disponibile gratuitamente su steam.

Abbiamo troppe province

Oggi ho collegato tutte le immagini delle province ai relativi dati e ho assegnato a questi i singoli collegi: nella foto potete vedere una simulazione della colorazione della mappa in base al partito con la maggioranza relativa nella provincia.

Anche questo è stato un lavoro molto ripetitivo che mi ha portato alla conclusione che in questo paese non solo abbiamo troppe province, ma le cambiamo anche troppo spesso: mi sono accorto infatti che le province della sardegna della mai mappa erano quelle del 2013, ma da allora hanno subito una riorganizzazione. Ho dovuto quindi cancellare la sardegna e ridisegnarla partendo da un’altra immagine vettoriale, e purtroppo si nota la differenza tra le due sorgenti.

A questo punto mancano due cose per far funzionare questo gioco come un modello per prevedere il risultato delle prossime elezioni basandosi sui sondaggi: le intenzioni di voto divise per provincia e una ultima revisione alle regole di assegnazione dei collegi. Probabilmente inserirò anche i collegi per il voto all’estero.