mercoledì 27 agosto 2025

LOVE2D - Pubblicazione sul web

Ho iniziato lo sviluppo di un videogame in lua/love2d e volevo ospitarlo su itch.io, che offre anche il sistema per "giocarlo online" direttamente sul browser.

La procedura per ottenere un file giocabile (usa love.js come estensione di node.js) non è propriamente semplice e richiede (su windows) un po' di lavoro.

Utilizzeremo "makelove" (il repository si trova qui: https://github.com/idbrii/love-makelove ).


1. Installazione dei requisiti necessari

Procedura:

  • installare python
  • inserire il percorso di installazione e la directory "Scripts" nel PATH
  • aprire un prompt (cmd.exe) come amministratore (sennò il sistema installa le librerie in locale)
  • lanciare il seguente comando: pip3 install makelove
  • assicurarsi che il tutto sia aggiornato, lanciando: python3 -m pip install --upgrade setuptools (i setuptools servono per la gestione dei packages)

2. Configurazione del "packet maker"

Questa è la procedura:
  • spostarsi nella directory in cui è presente il sorgente del gioco
  • lanciare il comando: makelove --init e compilare i dati richiesti

A questo punto, abbiamo un file di configurazione per la produzione dei "pacchetti".
Lovejs non è previsto di base, quindi bisogna andare ad editare il file makelove.toml.

Procediamo a modificare il file di configurazione, aprendo il file makelove.toml con un qualsiasi editor (anche VS Code).

Un esempio potrebbe essere questo:

name = "TITOLO_GIOCO"
love_version = "11.5"
default_targets = ["win64","lovejs"]
build_directory = "PUBLISH"

love_files = [
    "+*",
    "-*/.*",
    "-./PUBLISH/*",
]

[lovejs]
title = "TITOLO GIOCO"  # used on the resulting web page
memory = "20000000" # starting memory of the webpage (default is 20 MB)

Nota: memory dev'essere grande abbastanza da contenere l'intero "pacchetto del gioco" prodotto. Arrotondate per eccesso.

L'importante è includere il target "lovejs".

Ora si salva e si chiude.


3. Pacchetti

Passiamo alla produzione dei pacchetti. La procedura è:

  • aprire un prompt cmd
  • lanciare il comando: makelove --version-name 1

Nota: ho aggiunto il sistema di gestione della versione, per facilitare le varie build.

Ora abbiamo, nella cartella indicata nel conf (io ho messo PUBLISH), una cartella con la versione e con dentro i pacchetti generati.

Il pacchetto potrebbe essere completo, ma prima di pubblicare i dati conviene modificare il codice della pagina che caricherà il gioco nel browser.

Bisogna entrare nella cartella lovejs e decomprimere il file .zip contenuto qui dentro.

All'interno del file bisogna modificare il file index.html ed il file theme\love.css

Queste le modifiche al file index.html:

eliminare il tag <h1> dentro al <center> in alto

modificare le dimensioni iniziali del canvas "loadingCanvas" con le dimensioni del gioco

eliminare il <footer> con i credits (presente un overlay che interferisce con il gioco)

modificare la funzione js function drawLoadingText(text) in questo modo:

var canvas = loadingContext.canvas;

loadingContext.fillStyle = "rgb(0, 0, 0)";
loadingContext.fillRect(0, 0, canvas.scrollWidth, canvas.scrollHeight);

loadingContext.font = '1em helvetica';
loadingContext.textAlign = 'center'
loadingContext.fillStyle = "rgb( 200, 200, 200 )";
loadingContext.fillText(text, canvas.scrollWidth / 2, canvas.scrollHeight / 2);

Queste invece le modifiche al file love.css:

  • eliminare l'immagine di sfondo dal tag "body" (background-image)
  • cambiare il colore di sfondo e del testo con uno "consono" al gioco (ad esempio... nero e bianco)
  • cambiare i colori delle ancore (link, visited, hover), anche se non dovrebbero essercene

A questo punto, si sostituiscono i due file nello zip e si carica su itch.io.

Nessun commento:

Posta un commento