Pubblicare un gioco su itch.io usando Butler
Cos'è Butler
Butler è una utility da linea di comando, fornita da itch.io, che serve, tra le altre cose, a caricare le build dei giochi sulla piattaforma. Sito di butler
Installazione
È possibile installarlo utilizzando l'app di itch o manualmente, copiando l'eseguibile e le librerie necessarie in una cartella.
Io preferiscol installarlo manualmente nella cartella Tools
che creo per il mio utente e dove solitamente metto tutte le app che non hanno un file di installazione, come Godot. Una volta aggiunto il PATH alle variabili d'ambiente posso utilizzarlo da terminale.
Utilizzo
Per poter utilizzare butler
bisogna come prima cosa effettuare il login con il comando butler login
. Questo comando apre automaticamente una finestra del browser e richiede l'autorizzazione ad usare butler sul proprio account itch.
Una volta effettuato il login sarà possibile utilizzare gli altri comandi. Quello da usare per effettuare l'upload di una build del gioco è il comando push
.
La sintassi del comando push
è la seguente: cartella nomeutente/nomegioco:tipo_build
ad esempio per caricare una build html:
butler push build/html5 account/game:html
Dove account/game è l'URL della pagina del gioco che viene assegnato da itch alla compilazione della scheda di pubblicazione.
Alcuni consigli
Personalmente uso quasi sempre butler per caricare una build su itch, spesso inserendolo in uno script che effettua prima la build con Godot e poi la aggiorna chiamando butler.
@ECHO OFF
call godot --no-window --export HTML5 build\html5\index.html
butler push build/html5 account/game:html
È comodo avere uno script del genere quando si partecipa a una game jam in modo da riuscire ad aggiornare velocemente il proprio gioco, senza sprecare tempo utile.
Inoltre avere configurato un tool come butler permette di implementare un flusso di continuous delivery. Ad esempio agganciando build e pubblicazione al commit hook di un repository git è possibile aggiornare automaticamente un gioco pubblicato su itch a partire da un commit sul main branch.