La Prima Elezione

Il gioco sul Rosatellum sta procedendo bene: oggi sono riuscito a simulare la prima elezione. Per ora il gioco funziona solo sui collegi della camera, perché simulare sia Camera che Senato vorrebbe dire calcolare la popolazione all’interno di due collegi distinti, e calcolare anche al differenza di età: non che sia difficile da realizzare ma aumenterebbe la complessità per il giocatore in modo abbastanza radicale, oltre a poter aumentare il rischio di mancanze di maggioranza.

Ogni collegio ha 100 elettori simulati, questi elettori hanno diverse posizioni riguardo agli argomenti, e hanno anche una diversa propensione al votare o meno. Confrontando le posizioni dell’elettore con quelle dei partiti si può ottenere un punteggio che potrà essere positivo o negativo appunto secondo la propensione al voto dell’elettore, e a quanto l’elettore sarà legato ad un partito. Il partito che ottiene il punteggio più alto riceve il voto dell’elettore, a patto che questo punteggio sia positivo, altrimenti l’elettore guarderà i candidati uninominali ed effettuerà un simile confronto, ma con una propensione più alta al voto, e quindi in questo caso potrebbe votare solo per il candidato uninominale (voto disperso). Se infine nessun candidato uninominale riesce ad ottenere un valore positivo l’elettore voterà scheda bianca.

A questo punto raccolti tutti i 100 voti si procederà allo scrutinio: i voti uninominali saranno sommati ai voti dei partiti della coalizione ottenendo il candidato vincitore, quindi i voti dispersi verranno ripartiti ai singoli partiti della coalizione in quota proporzionale. A questo punto una volta eseguite le votazioni in tutti i collegi i voti di tutti i partiti in tutti i collegi verranno sommati e in base a questi valori verranno ripartiti proporzionalmente i collegi restanti. Questo è il sistema che ha generato il risultato qua sopra: nella simulazione il partito Liberale era in coalizione con il partito moderato, mentre tutti gli altri partiti correvano da soli.

Mancano ancora un paio di cose: le soglie di sbarramento e la ripartizione dei collegi restanti. Le soglie di sbarramento sono abbastanza semplici da implementare mentre per i collegi restanti penso li darò come “premio di maggioranza” al partito che ha ricevuto più voti.

Come si vede dallo screenshot per ora il tutto manca di interfaccia, e oltre a questo i partiti sono scritti direttamente nel codice sorgente: il prossimo passo quindi sarà costruire un editor di partiti, e anche cominciare a pensare al salvataggio di dati.

Son contento che l’intero processo di voto nonostante sia articolato richieda meno di un secondo sulla mia macchina.

Alcuni giochi della scorsa settimana (16 Ottobre)

Settimana scorsa è stata ricca di nuove uscite per il tipo di giochi che piacciono da queste parti: eccone 3 selezionate.

Bomber Crew

Bomber crew è un gioco manageriale stile FTL dove si ha il compito di gestire un bombardiere britannico nella seconda guerra mondiale. Il gioco ha una grafica stile cartone animato e in generale non punta ad essere una simulazione realistica, ma nonostante l’aspetto “casual” della grafica il gioco ha una buona complessità e una ampia gamma di scelte e varietà di missioni, tra le quali il bombardamento delle dighe con le bombe rimbalzanti. Per 15€ potrebbe essere un buon gioco, anche se è probabile che nonostante la quantità di scelte e la varietà delle missioni il tutto possa diventare ripetitivo in poco tempo, come era vero per gli altri simulatori di bombardiere, del resto.

Party Hard Tycoon

Party Hard Tycoon è un interessante manageriale derivato da Party Hard. Mentre Party Hard è una sorta di puzzle dove – interpretando il ruolo di un serial killer – dobbiamo uccidere tutti gli ospiti di una chiassosa festa, in Party Hard Tycoon abbiamo il ruolo di organizzare queste feste. Un modo molto interessante di “riciclare” molte parti di un videogioco in qualcosa di nuovo che, a mio parere, potrebbe finire persino per essere migliore del titolo originale. Party Hard infatti era parecchio complicato, e ad un determinato livello l’ho trovato troppo frustrante, ma l’idea di giocare un gioco con alcune meccaniche simili ma con uno scopo manageriale mi attira molto. Party Hard Tycoon è attualmente in early access per 9.99€

Think of the Children

Think of the children è un puzzle single player o cooperativo nel quale bisogna tenere al sicuro dei bimbi con una grande tendenza a mettersi nei guai mentre si cerca di svolgere anche altre attività. Il gioco per certi versi ricorda Overcooked (soprattutto per il suo aspetto cooperativo) anche se non ha lo stesso tipo di cooperazione sequenziale, ed è molto più caotico.

Non son sicuro quanto possa funzionare come gioco single player, ma come party game per quattro giocatori sembra proprio ben fatto. Il gioco è rilasciato come completo per 9.99€

Seconda partita a Stellaris: Synthetic Dawn

Ho completato anche la seconda partita a Synthetic Dawn, questa volta con la patch 1.8.3 e con una razza non sintetica: ecco come è andata.

Ho voluto provare a giocare una partita diplomatica, con una razza egalitaria, xenofila, e pacifista. Questo stile di gioco mi ha permesso di creare un impero “verticale”: essendo molto limitato come espansione territoriale, ma avendo anche un bonus sui sistemi “core” ho potuto giocare gran parte della partita senza dover creare dei settori, e quindi gestendo direttamente tutti i sistemi. Con questo stile di gioco si son rivelati indispensabili gli habitat, ovvero le colonie orbitali. Essendo una razza xenofila ed egalitaria son riuscito ad avere molti immigrati di pianeti diversi e con questi ho potuto colonizzare biomi diversi. Allo stesso modo mi è stato facile creare una federazione che comprendeva gran parte degli imperi, esclusi praticamente solo i fallen empire, dato che alcuni imperi “non cooperativi” tipo i devouring swarm erano stati brillantemente distrutti dagli altri imperi.

In pratica mi son trovato con una flotta molto piccola, ma in federazione con imperi dotati di flotte enormi: fortunatamente in tempo di guerra l’IA del gioco è abbastanza intelligente da seguire il comando “take point” e aggregarsi dietro la mia guida per formare un enorme doomstack.

I doomstack son comunque ancora il problema principale del gioco nella parte finale, dove infatti la guerra è ancora un gioco di numeri. E a proposito di parte finale la patch 1.8.3 come annunciato sposta la crisi galattica avanti di un bel po’ di anni, ma a questo punto al contrario dell’altra partita questa diventa troppo facile da sconfiggere, soprattutto se entrano in campo i fallen empire. Va detto che giocavo con una impostazione abbastanza bassa per la difficoltà delle crisi, quindi nella prossima partita proverò ad aumentare questo valore sperando che non arrivi qualcosa di imbattibile.

Dopo la crisi come al solito ho potuto espandermi nel territorio lasciato libero creando i miei primi settori, quindi ho costruito una sfera di Dyson, e ho colonizzato un anello abbandonato, e quindi ho avuto abbastanza risorse per creare la flotta per poter competere – insieme alla federazione – con la grossa minaccia che erano gli enormi imperi “risvegliati”.

Una volta battuti in battaglia tutti gli imperi risvegliati ed essendo arrivato alla vittoria di federazione (60% dei pianeti) ho dichiarato conclusa la partita.

La mia prossima partita probabilmente sarà con un impero schiavista e spiritualista, dato che son due meccaniche che non ho ancora sperimentato. Non so però se inizierò subito una nuova partita.

Candidati, Partiti, Idee…

Negli ultimi 2 giorni ho lavorato sulla scala dell’UI e ora sto cominciando a pensare di utilizzare una risoluzione fissa e in finestra: per ora mi sento abbastanza tranquillo nel fare giochi in finestra, ma affrontare le diverse risoluzioni per ora mi porta via troppo tempo.

Oltre all’interfaccia grafica ho cominciato a popolare i collegi con partiti e candidati: per ora avevo solo elettori e idee, ora ho creato 2 partiti con idee radicalmente opposte e a queste ho associato dei candidati con una leggera variazione sull’ideologia di partito. Anche nell’elettorato ho fatto una modifica: ho legato l’importanza dell’idea dell’elettore a quanto è forte la sua opinione, ovvero i moderati avranno un legame meno intenso alle proprie idee rispetto agli estremisti. Per ora i partiti sono estremisti di segno opposto.

Sono molto vicino a simulare la prima elezione: come dicevo volevo creare il mondo di gioco simulando una serie di elezioni precedenti in modo da legare organicamente gli elettori ai partiti, e creare una storia per partiti e candidati. Ho assegnato un’età ai candidati in modo da poter creare un ricambio, e magari anche una gerarchia con nuove leve e vecchia guardia.

L’idea delle elezioni successive dovrebbe coincidere con le scissioni nei partiti: ad ogni elezione vorrei aggiungere una nuova tematica creando una divisione nei partiti già presenti. Questi partiti divisi per idee sono quelli che poi dovranno formare le coalizioni e far funzionare tutto il sistema con le regole appunto del Rosatellum.

Come di mio solito una prima idea semplice esplode molto rapidamente in un sistema molto complesso: in questo caso sto cominciando già a vedere qualche limite nel modo in cui programmo, ovvero dove inserire i comandi per legare le singole entità in modo da poter effettuare tutti i controlli (ad esempio che un candidato non sia presente in 2 collegi). Non ho ancora deciso come far funzionare i candidati, e ho idee molto vaghe su come dovrà essere la struttura generale del gioco: una parte di governo (4 anni turni da 1 mese) dove i partiti al governo possono cambiare alcune condizioni nei collegi (le condizioni non le ho ancora create, ma dovrebbero essere legate alle idee) e i partiti all’opposizione possono fare propaganda, una fase di 8 mesi con turni da un mese di pre campagna elettorale, con la formazione delle coalizioni e delle candidature, e una fase di 4 mesi con progressione giornaliera che è poi il cuore del gioco ovvero la campagna elettorale.

Ma questi sono tutti passi successivi: ora è il momento di simulare la prima elezione.

Esperimenti con Unity UI

Il sistema per disegnare le interfacce di Unity è stata la mia bestia nera fino ad ora, ma se voglio creare un gioco strategico è necessario che io prenda molta più dimestichezza di quella che ho acquisito per il momento.

Il mio progetto di gioco sul Rosatellum potrebbe infatti essere costruito solo di elementi di UI, per questo ho cominciato a seguire questo tutorial.

C’è voluto un po’ per entrare nella logica del posizionamento degli oggetti utilizzando RectTransform al posto delle semplici coordinate, e ho ancora qualche grosso dubbio su come scalare il tutto a seconda della risoluzione dello schermo (altra mia bestia nera).

Per ora son riuscito a creare una visualizzazione (un bottone) per ogni singolo collegio uninominale: i collegi hanno ciascuno 100 elettori simulati che per ora hanno opinioni scelte casualmente riguardanti 5 tematiche (per ora le tematiche sono semplicemente “tema 1” “tema 2” e così via) e attraverso il bottone sulla destra si può andare a vedere una sorta di sondaggio per ora solo della tematica 1: ci sarà da lavorare anche su come costruire i pulsanti per mostrare una visione di insieme.

Altro punto su cui lavorerò domani sarà la generazione delle tematiche: per ora usando un sistema casuale tutti i seggi hanno semplicemente una opinione media su tutte le tematiche, e quindi occorre trovare un modo per creare una variazione.

Su questo tema mi ha sempre affascinato il sistema di generazione procedurale di Dwarf Fortress che simula tutto ciò che è successo nel mondo di gioco prima dell’inizio della partita: mi piacerebbe creare qualcosa di simile ma in piccolo che generi sia i partiti e simuli i governi precedenti, creando un elettorato organico e dei partiti legati all’elettorato tra i quali il giocatore potrà scegliere con chi giocare.

Vediamo se esce qualcosa di buono.