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.