2damoring..

Non so se da ieri, o l'altro ieri, vabbè non importa... volevo provare a fare dei giocattolini interattivi (non oso chiamarli giochi perché non ho piani per renderli tali, se esce qualcosa bene e sennò pazienza), quindi ho ripreso il discorso delle librerie che feci tempo fa, e stavo quindi provando un po' meglio LOVE2D. È basato!!! ...Circa. 🦧️

Bello che ha comunque una libreria di robe abbastanza intuitiva e completa, cross-platform bla bla... e poi, è abbastanza conosciuto da avere una community. Finite le cose belle, tuttavia, resta il fatto che la versione Android ha qualche mancanza non poco grave... permette di caricare giochi solo da archivi .love, o l'eventuale presente nella cartella /sdcard/Android/data/org.love2d.android/files/games/lovegame/, che può contenerne solo uno alla volta. Come si fa per sviluppare, quindi? Bella domanda, stamattina. 🥱️

Poi, onestamente, #Lua ci sta, non mi dispiace, ma... dato che esiste letteralmente il linguaggio di scripting delle ragazze magiche, che di design traspila verso Lua, è meglio usare quello per me, ovviamente... ho sentito proprio l'attrazione. È MoonScript (https://memos.octt.eu.org/m/HCocbexUdDAZzLtMi4zijp), e si, è veramente delle magipuelle perché... guardate il logo insomma (non è opera mia, quindi non me lo sto inventando). Inusuale la sintassi eh, però mi è bastato usare i poteri per comprenderla subito. ✨️

Problema di MoonScript è che, anche se funziona in modalità immediata (cioè, che si carica all'interno di una runtime Lua normale, e da solo o programmaticamente può caricare per tradurre ed eseguire tutti gli script lunari), in realtà sembra spaccatissimo all'interno di alcuni ambienti... ad esempio, per LOVE2D pare funzionare solo su PC via cartella; niente file .love, e no su Android in generale. Quindi, vanno precompilati, cosa semplicissima ma che richiede di installare il toolchain... poco male, perché è tutto leggero e compatto. 🙏️

Considerato sia questo fatto, sia il problema di prima (Android mi farà impazzire), in realtà penso di aver fatto una cosa non troppo merdosa: uso uno script shell piccino per compilare da MoonScript a Lua (...dovrei usare un Makefile, per non ricompilare tutto ogni volta...), e poi un altro per avere un menu di selezione. Il tutto avviabile con un tap da Termux:Widget sulla home del telefono... ma solo quando Termux è già in RAM o qualcosa, altrimenti l'avvio viene esplicitamente negato dal sistema, nonostante io abbia dato tutti i permessi a tutto (MIUI mi farà impazzire). 😵‍💫️

Il menu per la selezione del "gioco" è tipo, wow. Volevo farlo con Termux:GUI, ma poi ho visto che quello ha tipo un server che deve rimanere attivo, e non parte da solo, quindi cacata perché dovrei aprire ancora una app di più a mano. Quindi ho usato invece dialog, con l'opzione --fselect che punta alla mia cartella #Dev; da lì, scegliendo una cartella, questa viene copiata alla posizione interna di prima, e viene avviata la activity principale della app di Love2D, quindi parte ciò che starei sviluppando. 😳️ (E mi chiedo perché questo widget su GNU dialog sia tipo rotto, mi richiede di premere freccia giù tipo 3 volte prima che i successivi click di spazio ed invio prendano effettivamente una cartella, altrimenti fa altre cose; gradisco alternative, purché sempre TUI.)

Questo quindi è il modo in cui riesco a devvare con questo stack anche su Android, senza fare tutto dentro un desktop Linux, che su telefono è scomodo. Non il meglio, ma accettabile... credo che su Android sia più veloce ricompilare e far partire un gioco di questi, rispetto a qualsiasi webapp con più di 0 build step. E, boh, il mio giocattolino #WIP di typin' funziona, ma dovrei continuarlo ancora... 😭️
@octospacc



  • Tags: Android, Dev, development, gamedev, LOVE2D, Lua, mobile, MoonScript, WIP
  • Categories: Senza categoria