Rosatellum: Ripresa del progetto

Nelle ultime settimane il Ludum Dare ha occupato quasi tutto il tempo che dedico allo sviluppo. Dopo il Ludum Dare ho fatto una piccola digressione sul 3D.

Oggi ho ripreso il progetto del Rosatellum e come al solito quando ci si interrompe per fare altro poi è molto difficile riprendere il filo del progetto.

Fortunatamente sto tenendo questo diario che mi sta permettendo di ripercorrere tutti i passi e tutte le idee che ho attuato durante lo sviluppo. Oggi quindi mi sono occupato prevalentemente di debugging e di refactoring di alcune funzioni, in particolare ho rimosso completamente i dictionary e li ho sostituiti con delle liste.

Ho anche riscontrato e risolto un bug abbastanza ostico nella funzione di caricamento: in pratica le regioni e le province venivano aggiunte due volte alla lista, ma questo non causava problemi all’interfaccia, ma solo qualche problema quando si cerca di tirare le somme.

Ho inserito delle funzioni per il calcolo dei totali regionali e del totale nazionale, e ho anche inserito una modalità di selezione della regione facendo due volte click su una singola provincia.

Passo successivo sarà legare tutti i grafici e le tabelle e verificare quanto si discostano i dati calcolati da quelli reali.

Cosa fare se Windows 10 si blocca in aggiornamento

Da quando è uscito il “creators update” per Windows 10 il mio computer ha smesso di aggiornarsi. La procedura di aggiornamento si bloccava più volte, fino a inchiodarsi definitivamente attorno all’80% (direi 82% nell’ultima versione e 78% nella precedente).

Ieri son riuscito a risolvere questo problema in modo molto semplice: ho disabilitato Avira, ovvero l’antivirus che uso attualmente.

Sembra infatti che gran parte di questi blocchi sia causata da windows defender che viene bloccato dall’antivirus quanto tenta di accendersi nella fase finale della configurazione del sistema.

Altri passaggi che ho sperimentato ma non hanno risolto il mio problema sono: liberare almeno 20gb, aggiornare i driver (in particolare quelli delle porte usb), e scollegare tutti i dispositivi USB collegati al sistema (in particolare il cellulare).

Disegni con il Domino in Unity 3D

Ispirato da questa combinazione di video (primo e secondo) che per combinazione ho visto in rapida successione, ho deciso di ricreare i mosaici creati dalle tessere del domino che cadono utilizzando Unity3D e il suo motore fisico.

Ho incontrato due problemi: per prima cosa so veramente poco di modellazione 3D, e anche la semplice creazione di una tessera di domino in SketchUp, e la sua esportazione ed importazione in Unity, ha richiesto un tempo imbarazzante.

L’altra cosa su cui ho perso un sacco di tempo è stato il piazzamento della telecamera: idealmente avrei anche gestito i movimenti della stessa, ma la posizione iniziale ha richiesto veramente tanto, anche perché le tessere sono generate in real time e quindi l’ho sostanzialmente dovuta puntare contro uno sfondo bianco.

Importare l’immagine e colorare adeguatamente le tessere del domino, invece, è stato sorprendentemente facile: ho semplicemente creato una texture nella quale ho caricato una immagine quadrata, e quindi sono andato a prendere i colori nei pixel relativi utilizzando Texture2D.GetPixel.

L’animazione praticamente è venuta da se applicando un rigidbody e un collider alle tessere del domino. Ho quindi fatto inclinare la prima tessera di ogni fila in modo da cominciare a far cadere le tessere.

Qui è emerso il problema di ottimizzazione: con 100 tessere funziona tutto a meraviglia, ma con 6700 il tutto cominciava a rallentare mano a mano che le tessere cominciavano a cadere. Il sistema fisico continuava a ricalcolare la posizione delle tessere sostenute su altre tessere andando a rallentare il funzionamento dell’animazione. Per questa ragione ho deciso un tempo arbitrario dopo il quale disabilitare per ogni singola tessera gli effetti della fisica e “congelarla” nella sua posizione finale. Con 2 secondi non si nota alcuna differenza in termini di animazione, e le prestazioni diventano accettabili.

Questo semplice test è un buon inizio per cominciare a tuffarsi nei problemi dell’ottimizzazione della grafica 3D.

Alcuni giochi delle due scorse settimane (27 Novembre)

Già, ho saltato una settimana nella mia consueta rubrica dove vado a spulciare la lista delle nuove uscite su Steam cercando di trovarci qualcosa di interessante. Recuperiamo il tempo perso con una speciale edizione bisettimanale.

SUPERHOT: MIND CONTROL DELETE

Sequel/expandalone di SUPERHOT, l’FPS dalla meccanica rivoluzionaria nella quale il tempo si muove solo mentre il giocatore si muove, questo titolo per il momento rilasciato in early access promette di espandere le meccaniche di base andando anche ad aggiungere la generazione procedurale dei livelli tipica dei giochi Roguelike.

RIOT: Civil Unrest

Un gioco italiano una volta tanto: Riot: Civil Unrest ci porta in piazza per simulare alcune delle principali manifestazioni degli ultimi anni. Basato su eventi reali, dalla TAV a Podemos, questo gioco ci mette nei panni dei manifestanti o dei poliziotti con due stili di gioco molto diversi. La grafica in pixel art è ad un livello meraviglioso, in particolare nei filmati introduttivi. Il gioco è attualmente in early access.

Dream Channel

Chiudo con l’obbligatorio “gioco” VR. Questo è uno strano esperimento ambientato per le vie di una Amsterdam onirica e unisce i classici modelli 3d a dei video live action a 360 gradi. Purtroppo temo che i video 360 non siano il massimo se integrati direttamente, ma mi piace comunque la sperimentazione, trattandosi di un titolo gratuito.

Una Selezione di giochi dal Ludum Dare 40

Nell’ultimo Ludum Dare sono stati prodotti 2876 giochi. Tra questi ben 735 sono stati pubblicati su Itch.io, e sono giocabili semplicemente tramite browser. Ho deciso quindi di creare una selezione tra questi giochi di quello che ho provato e mi è piaciuto: eccola qua.