top of page
Tecnologia
Articoli tecnici su Unity, multigiocatore, server, self-hosting, open source, build e strumenti di sviluppo.
Perché la nuova versione si chiama 2026.7.19 e non 0.9.2 🗓️
Chi si aggiorna oggi passa dalla versione 0.9.1 alla 2026.7.19. Sembra un errore di battitura ed è una scelta deliberata: abbiamo cambiato lo schema delle versioni, dalle versioni «semantiche» a versioni basate sulla data (anno.mese.contatore). Ecco perché. Il vecchio schema rispondeva a domande che nessuno fa. Il versionamento semantico (0.9.1, 1.2.3 …) viene dal mondo delle librerie software. Lì è ottimo: il primo numero promette «non si rompe niente», il secondo «solo aggi
Marcel Dütscher
28 lugTempo di lettura: 2 min
Messo in ordine: come usiamo finalmente bene la cache di GitHub 🧹
Nell'ultimo articolo tecnico abbiamo misurato quanto costa davvero la nostra pipeline di build e controlli, e abbiamo scoperto che non sono soldi, ma tempo di attesa e spazio. Quell'articolo finiva con «il lavoro di pulizia è pianificato ma non ancora fatto». È andata più in fretta del previsto: da oggi a mezzogiorno è sul branch principale. Ecco i numeri. Prima il risultato. L'uso della cache del nostro repository è sceso da 5,32 GB in 63 voci a 2,46 GB in 13. L'analisi di s
Marcel Dütscher
27 lugTempo di lettura: 4 min
Mille esecuzioni di build al mese, e nemmeno una costa qualcosa ⚙️
Prima una correzione. La prima versione di questo articolo sosteneva che i minuti di build di GitHub fossero esauriti e che questo ci avesse costretti a passare a un account Pro. Era sbagliato, e in un modo che bastava un'occhiata alla documentazione per chiarire: per i repository pubblici i minuti di build di GitHub sono gratuiti. Anche gli artefatti e le cache. Il nostro repository è pubblico da fine maggio, quindi non abbiamo mai pagato un solo minuto e non lo faremo mai.
Marcel Dütscher
26 lugTempo di lettura: 4 min
SignPath ha detto no: per ora le nostre build per Windows restano non firmate
Qualche giorno fa vi abbiamo raccontato qui sul blog di aver fatto richiesta al programma gratuito per l'open source della SignPath Foundation per avere un certificato di firma del codice per i nostri installer Windows. Ora la risposta è arrivata, ed è un no. Siccome questo devblog non serve solo a festeggiare le vittorie, ma a raccontare onestamente com'è davvero un progetto così, anche questa notizia va scritta qui. Un breve promemoria: di cosa si trattava? I programmi Wind
Marcel Dütscher
15 lugTempo di lettura: 2 min
Il nostro GitHub ora parla: il podcast automatico per sviluppatori 🎙️
Lo sviluppo di Blocks Beyond The Stars avviene completamente alla luce del sole su GitHub: ogni commit, ogni pull request, ogni release si può leggere. Ma siamo onesti: chi se ne sta la sera a scorrere un elenco di commit? Da oggi c'è un'alternativa più comoda: potete semplicemente farvi leggere ad alta voce le novità del progetto. Il nostro GitHub ora ha un suo podcast. Cos'è Podlog? Podlog è un servizio che tiene d'occhio un repository GitHub e lo trasforma automaticamente
Marcel Dütscher
13 lugTempo di lettura: 2 min
Firma del codice gratuita per l'open source: la nostra candidatura a SignPath 🔏
Chi installa il nostro gioco su Windows conoscerà forse quel momento: «Windows ha protetto il PC», SmartScreen avvisa di un «editore sconosciuto» e bisogna prima cliccare su «Ulteriori informazioni → Esegui comunque». Non è un virus: è solo perché i nostri installer non sono ancora firmati. Vogliamo far sparire quell'avviso, senza dover comprare un certificato costoso. Il problema dei certificati di firma del codice. Un certificato di editore per Windows (OV o EV) costa ogni
Marcel Dütscher
12 lugTempo di lettura: 2 min
Dal tag Git al server live: la nostra pipeline di rilascio
Oggi una release di Blocks Beyond The Stars consiste in un solo comando: fare il push di un tag git. Tutto il resto lo fa la macchina. In questo articolo mostro la nostra pipeline CI/CD e perché la fatica vale la pena anche per un progetto per hobby. Il workflow di rilascio. Appena viene inviato un tag come v0.7.4, GitHub Actions costruisce il pacchetto completo: installer per Windows (setup, portable, MSI), una build per Linux, una build WebGL per il browser e un'immagine Do
Marcel Dütscher
7 lugTempo di lettura: 2 min
Manutenzione del server senza buttare fuori i giocatori
Che cosa succede davvero ai giocatori quando dobbiamo aggiornare il server? La risposta semplice sarebbe: staccare la spina. Noi abbiamo costruito una risposta migliore, ed è una delle mie funzioni preferite, anche se l'ideale è che quasi non te ne accorga. L'annuncio. Il server può inviare un messaggio di manutenzione a ogni mondo in esecuzione. Nel gioco compare allora un banner con un conto alla rovescia: «Riavvio del server tra 10 minuti.» Il messaggio va chiuso attivamen
Marcel Dütscher
6 lugTempo di lettura: 1 min
Password, limiti di richieste e account senza email
A Blocks Beyond The Stars giocano anche i bambini. Questo plasma non solo il game design, ma anche l'ingegneria della sicurezza che c'è dietro. Tre esempi. Account senza email, di proposito. Un account giocatore da noi non richiede un indirizzo email. Non è una funzione mancante, è una decisione: vogliamo il minor numero possibile di dati personali, soprattutto dai giocatori più giovani. Quello che non conserviamo non si può perdere. (Il rovescio della medaglia, onestamente:
Marcel Dütscher
6 lugTempo di lettura: 1 min
Un piccolo VPS come flotta di server di gioco
Tutti i nostri mondi online (il portale, i Mondi ufficiali, i mondi creati dai giocatori) girano su un unico server Linux in affitto (VPS). Niente data center, niente bolletta cloud a cinque cifre. In questo articolo mostro come è configurato il server e che cosa abbiamo imparato lungo la strada. Prima il rafforzamento. Prima che il gioco potesse salire sul server, è venuta la sicurezza di base: un firewall (ufw) che apre solo le porte necessarie, fail2ban contro i tentativi
Marcel Dütscher
5 lugTempo di lettura: 2 min
Come funzionano i nostri mondi ospitati
Un mondo tutto tuo su internet, in cui gli amici possono entrare quando vogliono, senza che nessuno debba configurare un server. È questa l'idea dietro i nostri Mondi ospitati, e in questo articolo ti mostro che cosa succede davvero dietro il pulsante «Gioca» del portale. Il cuore di tutto è il WorldHost: un piccolo servizio sul nostro server che gestisce i mondi. Ogni mondo gira nel proprio container Docker, completamente isolato, con il suo file di salvataggio, il suo limit
Marcel Dütscher
5 lugTempo di lettura: 2 min
Dietro le quinte: come abbiamo fatto 28 video per YouTube in 30 minuti 🎬
Come un papà, un bambino e un'IA hanno trasformato una montagna di filmati di gioco grezzi in due playlist complete, senza passare nemmeno un'ora in un programma di montaggio. Finalmente abbiamo una presenza su YouTube per Blocks Beyond the Stars: 22 Shorts e 6 video più lunghi tra Let's Play e tutorial. E sinceramente? Come sono nati vale la pena di raccontarlo, perché il «montaggio» vero e proprio è durato circa mezz'ora. Ecco tutta la procedura. Passo 1: Justus preme rec �
Marcel Dütscher
2 lugTempo di lettura: 3 min
Oltre 1000 test per un gioco da hobby: uno spreco?
Il nostro progetto ha ormai ben oltre mille test automatici: circa 990 lato server, circa 120 nel client Unity. Per un progetto di famiglia sembra eccessivo. È il contrario, ed ecco perché. I test sono il nostro secondo sviluppatore. In un progetto solitario non c'è nessuno che nella code review dica: «Aspetta, così si rompe il crafting.» I test sono quel collega. Ogni meccanica di gioco (ricette, ossigeno, fame, comportamento delle creature, password dei mondi) ha test che g
Marcel Dütscher
2 lugTempo di lettura: 2 min
Un gioco voxel nel browser
Blocks Beyond The Stars non gira solo come programma per Windows e Linux, ma anche direttamente nel browser: nessuna installazione, basta un clic nel portale. La strada per arrivarci è stata più istruttiva del previsto. Unity WebGL è un mondo a sé. Unity sa esportare per il web da tempo, ma il diavolo sta nei dettagli. Il nostro ostacolo più grande: nel browser non ci sono veri thread in background come nella build nativa. Il nostro sistema del terreno normalmente costruisce
Marcel Dütscher
30 giuTempo di lettura: 2 min
Il giorno in cui i nostri shader sparirono dalla build
Nell'editor di Unity era tutto perfetto. Nella build finita: superfici rosa ed effetti mancanti. Benvenuti in una delle trappole più cattive di Unity, e in alcune sue parenti. Shader stripping. Durante la build Unity butta via tutto ciò che apparentemente non serve, shader compresi. Il problema: se carichi gli shader a runtime con Shader.Find() (come facciamo noi con più di 20 shader personalizzati per acqua, atmosfera, ologrammi e altro), Unity non vede nessun riferimento a
Marcel Dütscher
27 giuTempo di lettura: 1 min
Luce in un mondo voxel: luci reali o flood fill?
Un giocatore piazza una lampada luminosa nella sua base. Cosa succede tecnicamente? Questa domanda innocente ha innescato per noi una decisione fondamentale, e la risposta è un bell'esempio di come la soluzione «più moderna» non sia sempre la migliore. Opzione A: luci reali di Unity. Ogni blocco luminoso diventa una sorgente di luce puntiforme e il motore calcola tutto. Sembra magnifico, ma non scala. Un mondo voxel può avere centinaia di blocchi luminosi in vista; luci punti
Marcel Dütscher
27 giuTempo di lettura: 1 min
100% generato dall'IA: il nostro flusso di lavoro con Unity 6, .NET 8 e Python
Una delle domande che riceviamo più spesso è: come si costruisce esattamente un complesso gioco voxel multiplayer interamente con l'IA? La risposta breve: con linee guida molto rigide. L'IA è fantastica a scrivere codice, ma perde presto di vista la prospettiva architetturale. Per questo fin dal primo giorno ho imposto una rigida architettura client/server. Il nostro stack tecnologico in breve: Client: Unity 6 per rendering, input e meshing dei voxel. Server: server dedicato
Marcel Dütscher
26 giuTempo di lettura: 1 min
Il rifacimento grafico: più aspetto senza cambiare motore
A un certo punto sul tavolo c'era la diagnosi onesta: il gioco si giocava bene ma sembrava un prototipo. Invece di guardare a un'altra pipeline di rendering o addirittura a un altro motore, ci siamo posti una sola domanda: quanto aspetto si nasconde ancora nell'URP di Unity se lo spingi davvero al limite? La risposta: sorprendentemente tanto. Anti-aliasing (SMAA). I mondi a blocchi sono fatti di spigoli, e gli spigoli che sfarfallano rovinano ogni screenshot. L'SMAA li leviga
Marcel Dütscher
26 giuTempo di lettura: 1 min
Da MIT ad AGPL: perché abbiamo cambiato licenza
Blocks Beyond The Stars è open source, e lo è fin dall'inizio. Ma con quale licenza, quello lo abbiamo cambiato in modo sostanziale lungo il cammino: dalla permissiva licenza MIT alla AGPL-3.0. Ecco il perché. Cosa avrebbe significato MIT: con MIT chiunque può prendere il nostro codice, modificarlo e rivenderlo come prodotto chiuso, senza restituire nulla. Per le librerie spesso è proprio giusto. Per un gioco completo con i server, ci sembrava sbagliato: qualcuno avrebbe potu
Marcel Dütscher
25 giuTempo di lettura: 1 min
Texture e suoni generati dall'IA nella pipeline degli asset
Blocks Beyond The Stars non ha un grafico né un sound designer. Eppure ogni nuovo blocco ha la sua texture e ogni nuova funzione il suo suono. Il nostro strumento: l'IA generativa, con un flusso di lavoro ben preciso attorno. Texture. Le nuove tessere dei blocchi nascono con i modelli di immagini di OpenAI. Il prompt descrive materiale, stile e l'estetica voxel del gioco; il risultato viene ridotto alla dimensione della tessera e inserito nel nostro atlante dei blocchi: un'un
Marcel Dütscher
23 giuTempo di lettura: 2 min
bottom of page