home.social

#salamuseogames — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #salamuseogames, aggregated by home.social.

  1. La mia #sidequest di scovare e archiviare app e #giochi di valore per il #browser, seguendo la filosofia del binario universale e tutti i mazzi annessi, certe volte mi porta si a complicarmi un po’ le giornate, ma non credevo di arrivare persino a scontrarmi con bug breaking di motori di #gioco famosi e utilizzatissimi… È la maledizione per cui in mano a me si rompe sempre tutto, anche se in questo caso no, è tutto già rotto da tempo, solo che nessuno lo sapeva bene. 🤢️

    In pratica, ieri mi è venuta l’idea di caricare alcune VN sulla #SalaMuseoGames, considerando sia che RenPy supporta la creazione di build web da un bel po’, e che in genere è molto facile ricompilare e portare giochi fatti con questo #engine. Infatti, ho già provato a portare diversi giochi gratuiti presi da Itch.io, e al netto di #difficoltà inaspettate per alcuni (che magari racconto la prossima volta), in linea di massima non ci sono mai #rogne con i giochi in RenPy 8. 💟️

    Però volevo portare una #visualnovel in particolare, ovviamente: #DokiDokiLiteratureClub! …e ops, questa è dei tempi di RenPy 6 addirittura, e non c’è verso di farla girare sotto le v8 (basata su Python 3 anziché 2.7, era ora). Sulle versioni 7.x.x per fortuna sembra venir eseguita a modino, ma… la compatibilità web lì è in “beta” (cosa che ho scoperto va letta come “totalmente rotta lmao”) e quindi sono subentrati problemi immediatamente. O meglio, ho compilato con la più recente v7 (7.7.1), e sembrava tutto funzionare, finché non ho aperto la pagina su Linux o Android per scoprire che crashava tutto al caricamento per via di uno strano errore del video, e solo su Firefox nella mia VM Windows si riusciva a giocare (quindi binario universale un corno). 🚧

    Ho cercato e cercato tra changelog e pagine di aiuto, ma non c’ho capito granché, a parte che hanno cambiato tipo il sistema video ad un certo punto… eppure RenPy 8 funziona senza problemi. Ho verificato che solo fino alla v7.4.11 i giochi (qualsiasi) girano ovunque, invece dalla v7.5 appare la rogna. Alla fine, me ne sono dovuta lavare le mani: mi sono impegnata solo a scrivere bene una #issue sul GitHub, e ora se la vedranno loro a fixare questa immondizia, te saludo!!! https://github.com/renpy/renpy/issues/5478 (leggete lì se vi interessa il tecnico). Il problema è che quest’altra versione funziona solo su Firefox, e ha un #bug strano per cui la musica di sottofondo non carica quando cambia la traccia, quindi pensavo di dovermi rassegnare e aspettare ora… 🦧

    Però poi, dopo aver ancora letto, ho visto che RenPy < v7.4.7 usa FFmpeg per l’audio, “quindi magari”… e, sicuro abbastanza, con v7.4.6 la musica funge. E, casualità, non c’è manco il bug con i motori WebKit! Però pare ci sia un altro #problema, ossia che le immagini fanno veramente fatica a caricare, a volte impiegano decine di secondi… non è gravissimo, perché alla fine se aspetti si caricano, però magari vedrò se posso sistemarlo comprimendo gli assets per farli stare tutti nel game.zip < 100 MB, anziché farli streammare separatamente. Comunque, forza, potete già fare il #gaming su https://gamingshitposting.github.io/SalaMuseoGames/2024/04/24/doki-doki-literature-club/ 👽️

    https://octospacc.altervista.org/2024/04/25/doki-doki-browser-club/

    #issue #RenPy #DDLC #DokiDokiLiteratureClub #visualnovel #engine #sidequest #problema #rogne #browser #gioco #gaming #bug #SalaMuseoGames #web #giochi

  2. Il #problemino (tra i tanti!) delle #webapp è che saranno anche facili da #archiviare o #clonare spesso, ma non per questo anche semplici… (o per caso non sono neppure facili e la mia #esperienza mi fa sottovalutare la cosa?) 😫

    • 🅰️ Per quelle meno complesse, il metodo migliore è senza dubbio un bel wget -kp $URL, cioè scaricare la pagina #HTML con tutte le sue risorse collegate, e convertire i link da assoluti a relativi.
    • 🅱️ Quel #metodo però non è a conoscenza di tutte le risorse caricate dinamicamente, cioè dichiarate in posti diversi dall’HTML. Per prendere anche quelle (ed è spesso necessario, tutte le app moderne caricano roba così), bisogna aprire la app nel #browser, e guardare le richieste di #rete che macina con il normale uso.
      • 1️⃣ A questo punto, si può usare la funzione del browser per esportare le richieste in formato HAR, e poi tool come har-extractor o Har Extractor Online per ricavare i file effettivi da quel blob.
        • Ho notato però che Firefox in alcune situazioni genera #HAR corrotti (2 giochi fatti in Phaser avevo provato a scaricare, ed una volta estratti gli script tiravano errori; ho riprovato con Chromium, ed è andato tutto liscio), quindi a prescindere io userei l’altro #navigatore per questa cosa. 🥴
        • Poi, non ho ben capito se per via di come il file HAR in sé è generato, se come quegli #strumenti lo interpretano, o un misto delle cose, ma le risorse cross-domain (e credo anche caricate da iframe?) tendono a non venir estratte, quindi si deve andare poi a pescarle prelevando l’URL di ognuna a manina dai DevTools già aperti… 🤧
    • 🆎 Si potrebbero usare primo e secondo metodo insieme in linea di principio (copiando i file del primo passaggio su quelli del secondo, sovrascrivendo gli esistenti), ma nella pratica è inutile… se c’erano link assoluti da convertire in relativi nell’HTML, con spaventosa probabilità questi sono presenti anche nel #JavaScript o chissà dove, per cui, dato che bisognerà comunque andare a mano a modificarli da qualche parte, 1 o 2 file in più non cambiano (spesso) nulla.
    • 2️⃣ Se si è usato il secondo metodo, bisogna a questo punto effettivamente verificare che i link siano tutti corretti, le #risorse effettivamente scaricate, e la app funzionante indipendentemente dal dominio originale… il modo più efficiente che ho trovato è aprire già da subito un webserver locale sui file, navigarci nel browser, e controllare sia che tutto funzioni nel pratico, sia che tutte le #richieste di rete per risorse effettive (ossia, non contano chiamate di telemetria o simili) vadano al mio #server, anziché al dominio originale (attivando la colonna omonima della tabella nei #DevTools lo si vede a colpo d’occhio).
      • Quando ci sono richieste che falliscono o che vanno su altri server, bisogna capire da dove nel codice queste partono, e fare le opportune #modifiche per usare URL relativi. Quelle che partono dall’HTML o dal CSS (turns out, non molte, altrimenti avremmo usato direttamente wget) sono appunto una scemenza da sistemare… ma quando partono da #script, c’è poco da fare, con l’aiuto del debugger del browser (di nuovo, meglio Chromium, perché de-mininifica il JavaScript aggiungendo whitespace in automatico) si va a capire da che punto partono, e in base alla situazione si valuta che modifiche fare al #codice. Poi, si testa ancora, e ancora si applicano #fix, finché tutto non funziona. ♻️
      • In genere questo non è un problema, e anche per app più ostiche (come quella che ho ricaricato sulla #SalaMuseoGames ieri, Little Alchemy 2) si fa tutto in un quarto d’ora ben ristretto. Tuttavia, bisogna fare attenzione a quei programmi che caricano le risorse man mano che ne hanno bisogno e non tutto subito (in genere, maggior parte dei giochi, oppure parecchie #app React)… lì si può potenzialmente perdere un bel po’ di tempo, perché bisogna mettersi ad usare il #software raggiungendo idealmente il 100% del codice; cioè, cliccare tutti i bottoni, usare qualunque azione, giocare tutti i livelli… fino ad ora non ho mai incontrato #ostacoli, ma se succede, l’unica è navigare tra il codice già scaricato per vedere cos’è che manca (da qualche parte ci sono scritti i nomi delle risorse ancora da scaricare, per ovvi motivi). 🗡️
    • 🔚 Aggiustamenti finali: in base alla situazione, vanno fatte altre modifiche al source per ovviare a #problemi banali ma frequenti. La maggior parte riguardano i domini, che in certi casi sono hardcodati, e quindi o ci sono iframe che comunicano con la Messaging API e gli va cambiato il dominio (come per il gioco di ieri), o c’è del DRM che ostacola il #rehosting (come il giochino dell’altro ieri) ecc… con #pazienza si risolve tutto.
      • E alla fine di tutto, una cosa che mi piace fare ma che non sarebbe obbligatoria, è disattivare tutte le componenti potenzialmente dannose dell’ #applicazione, ossia commentare via eventuali inclusioni e chiamate a sistemi di analitiche o pubblicità. 🚯

    https://octospacc.altervista.org/2024/04/03/webaps-heist/

    #app #applicazione #archiviare #browser #clonare #codice #DevTools #esperienza #fix #HAR #HTML #JavaScript #metodo #modifiche #navigatore #ostacoli #pazienza #problemi #problemino #rehosting #rete #richieste #risorse #SalaMuseoGames #script #server #software #strumenti #webapp

  3. Il #problemino (tra i tanti!) delle #webapp è che saranno anche facili da #archiviare o #clonare spesso, ma non per questo anche semplici… (o per caso non sono neppure facili e la mia #esperienza mi fa sottovalutare la cosa?) 😫

    • 🅰️ Per quelle meno complesse, il metodo migliore è senza dubbio un bel wget -kp $URL, cioè scaricare la pagina #HTML con tutte le sue risorse collegate, e convertire i link da assoluti a relativi.
    • 🅱️ Quel #metodo però non è a conoscenza di tutte le risorse caricate dinamicamente, cioè dichiarate in posti diversi dall’HTML. Per prendere anche quelle (ed è spesso necessario, tutte le app moderne caricano roba così), bisogna aprire la app nel #browser, e guardare le richieste di #rete che macina con il normale uso.
      • 1️⃣ A questo punto, si può usare la funzione del browser per esportare le richieste in formato HAR, e poi tool come har-extractor o Har Extractor Online per ricavare i file effettivi da quel blob.
        • Ho notato però che Firefox in alcune situazioni genera #HAR corrotti (2 giochi fatti in Phaser avevo provato a scaricare, ed una volta estratti gli script tiravano errori; ho riprovato con Chromium, ed è andato tutto liscio), quindi a prescindere io userei l’altro #navigatore per questa cosa. 🥴
        • Poi, non ho ben capito se per via di come il file HAR in sé è generato, se come quegli #strumenti lo interpretano, o un misto delle cose, ma le risorse cross-domain (e credo anche caricate da iframe?) tendono a non venir estratte, quindi si deve andare poi a pescarle prelevando l’URL di ognuna a manina dai DevTools già aperti… 🤧
    • 🆎 Si potrebbero usare primo e secondo metodo insieme in linea di principio (copiando i file del primo passaggio su quelli del secondo, sovrascrivendo gli esistenti), ma nella pratica è inutile… se c’erano link assoluti da convertire in relativi nell’HTML, con spaventosa probabilità questi sono presenti anche nel #JavaScript o chissà dove, per cui, dato che bisognerà comunque andare a mano a modificarli da qualche parte, 1 o 2 file in più non cambiano (spesso) nulla.
    • 2️⃣ Se si è usato il secondo metodo, bisogna a questo punto effettivamente verificare che i link siano tutti corretti, le #risorse effettivamente scaricate, e la app funzionante indipendentemente dal dominio originale… il modo più efficiente che ho trovato è aprire già da subito un webserver locale sui file, navigarci nel browser, e controllare sia che tutto funzioni nel pratico, sia che tutte le #richieste di rete per risorse effettive (ossia, non contano chiamate di telemetria o simili) vadano al mio #server, anziché al dominio originale (attivando la colonna omonima della tabella nei #DevTools lo si vede a colpo d’occhio).
      • Quando ci sono richieste che falliscono o che vanno su altri server, bisogna capire da dove nel codice queste partono, e fare le opportune #modifiche per usare URL relativi. Quelle che partono dall’HTML o dal CSS (turns out, non molte, altrimenti avremmo usato direttamente wget) sono appunto una scemenza da sistemare… ma quando partono da #script, c’è poco da fare, con l’aiuto del debugger del browser (di nuovo, meglio Chromium, perché de-mininifica il JavaScript aggiungendo whitespace in automatico) si va a capire da che punto partono, e in base alla situazione si valuta che modifiche fare al #codice. Poi, si testa ancora, e ancora si applicano #fix, finché tutto non funziona. ♻️
      • In genere questo non è un problema, e anche per app più ostiche (come quella che ho ricaricato sulla #SalaMuseoGames ieri, Little Alchemy 2) si fa tutto in un quarto d’ora ben ristretto. Tuttavia, bisogna fare attenzione a quei programmi che caricano le risorse man mano che ne hanno bisogno e non tutto subito (in genere, maggior parte dei giochi, oppure parecchie #app React)… lì si può potenzialmente perdere un bel po’ di tempo, perché bisogna mettersi ad usare il #software raggiungendo idealmente il 100% del codice; cioè, cliccare tutti i bottoni, usare qualunque azione, giocare tutti i livelli… fino ad ora non ho mai incontrato #ostacoli, ma se succede, l’unica è navigare tra il codice già scaricato per vedere cos’è che manca (da qualche parte ci sono scritti i nomi delle risorse ancora da scaricare, per ovvi motivi). 🗡️
    • 🔚 Aggiustamenti finali: in base alla situazione, vanno fatte altre modifiche al source per ovviare a #problemi banali ma frequenti. La maggior parte riguardano i domini, che in certi casi sono hardcodati, e quindi o ci sono iframe che comunicano con la Messaging API e gli va cambiato il dominio (come per il gioco di ieri), o c’è del DRM che ostacola il #rehosting (come il giochino dell’altro ieri) ecc… con #pazienza si risolve tutto.
      • E alla fine di tutto, una cosa che mi piace fare ma che non sarebbe obbligatoria, è disattivare tutte le componenti potenzialmente dannose dell’ #applicazione, ossia commentare via eventuali inclusioni e chiamate a sistemi di analitiche o pubblicità. 🚯

    https://octospacc.altervista.org/2024/04/03/webaps-heist/

    #app #applicazione #archiviare #browser #clonare #codice #DevTools #esperienza #fix #HAR #HTML #JavaScript #metodo #modifiche #navigatore #ostacoli #pazienza #problemi #problemino #rehosting #rete #richieste #risorse #SalaMuseoGames #script #server #software #strumenti #webapp

  4. Il #problemino (tra i tanti!) delle #webapp è che saranno anche facili da #archiviare o #clonare spesso, ma non per questo anche semplici… (o per caso non sono neppure facili e la mia #esperienza mi fa sottovalutare la cosa?) 😫

    • 🅰️ Per quelle meno complesse, il metodo migliore è senza dubbio un bel wget -kp $URL, cioè scaricare la pagina #HTML con tutte le sue risorse collegate, e convertire i link da assoluti a relativi.
    • 🅱️ Quel #metodo però non è a conoscenza di tutte le risorse caricate dinamicamente, cioè dichiarate in posti diversi dall’HTML. Per prendere anche quelle (ed è spesso necessario, tutte le app moderne caricano roba così), bisogna aprire la app nel #browser, e guardare le richieste di #rete che macina con il normale uso.
      • 1️⃣ A questo punto, si può usare la funzione del browser per esportare le richieste in formato HAR, e poi tool come har-extractor o Har Extractor Online per ricavare i file effettivi da quel blob.
        • Ho notato però che Firefox in alcune situazioni genera #HAR corrotti (2 giochi fatti in Phaser avevo provato a scaricare, ed una volta estratti gli script tiravano errori; ho riprovato con Chromium, ed è andato tutto liscio), quindi a prescindere io userei l’altro #navigatore per questa cosa. 🥴
        • Poi, non ho ben capito se per via di come il file HAR in sé è generato, se come quegli #strumenti lo interpretano, o un misto delle cose, ma le risorse cross-domain (e credo anche caricate da iframe?) tendono a non venir estratte, quindi si deve andare poi a pescarle prelevando l’URL di ognuna a manina dai DevTools già aperti… 🤧
    • 🆎 Si potrebbero usare primo e secondo metodo insieme in linea di principio (copiando i file del primo passaggio su quelli del secondo, sovrascrivendo gli esistenti), ma nella pratica è inutile… se c’erano link assoluti da convertire in relativi nell’HTML, con spaventosa probabilità questi sono presenti anche nel #JavaScript o chissà dove, per cui, dato che bisognerà comunque andare a mano a modificarli da qualche parte, 1 o 2 file in più non cambiano (spesso) nulla.
    • 2️⃣ Se si è usato il secondo metodo, bisogna a questo punto effettivamente verificare che i link siano tutti corretti, le #risorse effettivamente scaricate, e la app funzionante indipendentemente dal dominio originale… il modo più efficiente che ho trovato è aprire già da subito un webserver locale sui file, navigarci nel browser, e controllare sia che tutto funzioni nel pratico, sia che tutte le #richieste di rete per risorse effettive (ossia, non contano chiamate di telemetria o simili) vadano al mio #server, anziché al dominio originale (attivando la colonna omonima della tabella nei #DevTools lo si vede a colpo d’occhio).
      • Quando ci sono richieste che falliscono o che vanno su altri server, bisogna capire da dove nel codice queste partono, e fare le opportune #modifiche per usare URL relativi. Quelle che partono dall’HTML o dal CSS (turns out, non molte, altrimenti avremmo usato direttamente wget) sono appunto una scemenza da sistemare… ma quando partono da #script, c’è poco da fare, con l’aiuto del debugger del browser (di nuovo, meglio Chromium, perché de-mininifica il JavaScript aggiungendo whitespace in automatico) si va a capire da che punto partono, e in base alla situazione si valuta che modifiche fare al #codice. Poi, si testa ancora, e ancora si applicano #fix, finché tutto non funziona. ♻️
      • In genere questo non è un problema, e anche per app più ostiche (come quella che ho ricaricato sulla #SalaMuseoGames ieri, Little Alchemy 2) si fa tutto in un quarto d’ora ben ristretto. Tuttavia, bisogna fare attenzione a quei programmi che caricano le risorse man mano che ne hanno bisogno e non tutto subito (in genere, maggior parte dei giochi, oppure parecchie #app React)… lì si può potenzialmente perdere un bel po’ di tempo, perché bisogna mettersi ad usare il #software raggiungendo idealmente il 100% del codice; cioè, cliccare tutti i bottoni, usare qualunque azione, giocare tutti i livelli… fino ad ora non ho mai incontrato #ostacoli, ma se succede, l’unica è navigare tra il codice già scaricato per vedere cos’è che manca (da qualche parte ci sono scritti i nomi delle risorse ancora da scaricare, per ovvi motivi). 🗡️
    • 🔚 Aggiustamenti finali: in base alla situazione, vanno fatte altre modifiche al source per ovviare a #problemi banali ma frequenti. La maggior parte riguardano i domini, che in certi casi sono hardcodati, e quindi o ci sono iframe che comunicano con la Messaging API e gli va cambiato il dominio (come per il gioco di ieri), o c’è del DRM che ostacola il #rehosting (come il giochino dell’altro ieri) ecc… con #pazienza si risolve tutto.
      • E alla fine di tutto, una cosa che mi piace fare ma che non sarebbe obbligatoria, è disattivare tutte le componenti potenzialmente dannose dell’ #applicazione, ossia commentare via eventuali inclusioni e chiamate a sistemi di analitiche o pubblicità. 🚯

    https://octospacc.altervista.org/2024/04/03/webaps-heist/

    #app #applicazione #archiviare #browser #clonare #codice #DevTools #esperienza #fix #HAR #HTML #JavaScript #metodo #modifiche #navigatore #ostacoli #pazienza #problemi #problemino #rehosting #rete #richieste #risorse #SalaMuseoGames #script #server #software #strumenti #webapp

  5. Il #problemino (tra i tanti!) delle #webapp è che saranno anche facili da #archiviare o #clonare spesso, ma non per questo anche semplici… (o per caso non sono neppure facili e la mia #esperienza mi fa sottovalutare la cosa?) 😫

    • 🅰️ Per quelle meno complesse, il metodo migliore è senza dubbio un bel wget -kp $URL, cioè scaricare la pagina #HTML con tutte le sue risorse collegate, e convertire i link da assoluti a relativi.
    • 🅱️ Quel #metodo però non è a conoscenza di tutte le risorse caricate dinamicamente, cioè dichiarate in posti diversi dall’HTML. Per prendere anche quelle (ed è spesso necessario, tutte le app moderne caricano roba così), bisogna aprire la app nel #browser, e guardare le richieste di #rete che macina con il normale uso.
      • 1️⃣ A questo punto, si può usare la funzione del browser per esportare le richieste in formato HAR, e poi tool come har-extractor o Har Extractor Online per ricavare i file effettivi da quel blob.
        • Ho notato però che Firefox in alcune situazioni genera #HAR corrotti (2 giochi fatti in Phaser avevo provato a scaricare, ed una volta estratti gli script tiravano errori; ho riprovato con Chromium, ed è andato tutto liscio), quindi a prescindere io userei l’altro #navigatore per questa cosa. 🥴
        • Poi, non ho ben capito se per via di come il file HAR in sé è generato, se come quegli #strumenti lo interpretano, o un misto delle cose, ma le risorse cross-domain (e credo anche caricate da iframe?) tendono a non venir estratte, quindi si deve andare poi a pescarle prelevando l’URL di ognuna a manina dai DevTools già aperti… 🤧
    • 🆎 Si potrebbero usare primo e secondo metodo insieme in linea di principio (copiando i file del primo passaggio su quelli del secondo, sovrascrivendo gli esistenti), ma nella pratica è inutile… se c’erano link assoluti da convertire in relativi nell’HTML, con spaventosa probabilità questi sono presenti anche nel #JavaScript o chissà dove, per cui, dato che bisognerà comunque andare a mano a modificarli da qualche parte, 1 o 2 file in più non cambiano (spesso) nulla.
    • 2️⃣ Se si è usato il secondo metodo, bisogna a questo punto effettivamente verificare che i link siano tutti corretti, le #risorse effettivamente scaricate, e la app funzionante indipendentemente dal dominio originale… il modo più efficiente che ho trovato è aprire già da subito un webserver locale sui file, navigarci nel browser, e controllare sia che tutto funzioni nel pratico, sia che tutte le #richieste di rete per risorse effettive (ossia, non contano chiamate di telemetria o simili) vadano al mio #server, anziché al dominio originale (attivando la colonna omonima della tabella nei #DevTools lo si vede a colpo d’occhio).
      • Quando ci sono richieste che falliscono o che vanno su altri server, bisogna capire da dove nel codice queste partono, e fare le opportune #modifiche per usare URL relativi. Quelle che partono dall’HTML o dal CSS (turns out, non molte, altrimenti avremmo usato direttamente wget) sono appunto una scemenza da sistemare… ma quando partono da #script, c’è poco da fare, con l’aiuto del debugger del browser (di nuovo, meglio Chromium, perché de-mininifica il JavaScript aggiungendo whitespace in automatico) si va a capire da che punto partono, e in base alla situazione si valuta che modifiche fare al #codice. Poi, si testa ancora, e ancora si applicano #fix, finché tutto non funziona. ♻️
      • In genere questo non è un problema, e anche per app più ostiche (come quella che ho ricaricato sulla #SalaMuseoGames ieri, Little Alchemy 2) si fa tutto in un quarto d’ora ben ristretto. Tuttavia, bisogna fare attenzione a quei programmi che caricano le risorse man mano che ne hanno bisogno e non tutto subito (in genere, maggior parte dei giochi, oppure parecchie #app React)… lì si può potenzialmente perdere un bel po’ di tempo, perché bisogna mettersi ad usare il #software raggiungendo idealmente il 100% del codice; cioè, cliccare tutti i bottoni, usare qualunque azione, giocare tutti i livelli… fino ad ora non ho mai incontrato #ostacoli, ma se succede, l’unica è navigare tra il codice già scaricato per vedere cos’è che manca (da qualche parte ci sono scritti i nomi delle risorse ancora da scaricare, per ovvi motivi). 🗡️
    • 🔚 Aggiustamenti finali: in base alla situazione, vanno fatte altre modifiche al source per ovviare a #problemi banali ma frequenti. La maggior parte riguardano i domini, che in certi casi sono hardcodati, e quindi o ci sono iframe che comunicano con la Messaging API e gli va cambiato il dominio (come per il gioco di ieri), o c’è del DRM che ostacola il #rehosting (come il giochino dell’altro ieri) ecc… con #pazienza si risolve tutto.
      • E alla fine di tutto, una cosa che mi piace fare ma che non sarebbe obbligatoria, è disattivare tutte le componenti potenzialmente dannose dell’ #applicazione, ossia commentare via eventuali inclusioni e chiamate a sistemi di analitiche o pubblicità. 🚯

    https://octospacc.altervista.org/2024/04/03/webaps-heist/

    #app #applicazione #archiviare #browser #clonare #codice #DevTools #esperienza #fix #HAR #HTML #JavaScript #metodo #modifiche #navigatore #ostacoli #pazienza #problemi #problemino #rehosting #rete #richieste #risorse #SalaMuseoGames #script #server #software #strumenti #webapp

  6. Il #problemino (tra i tanti!) delle #webapp è che saranno anche facili da #archiviare o #clonare spesso, ma non per questo anche semplici… (o per caso non sono neppure facili e la mia #esperienza mi fa sottovalutare la cosa?) 😫

    • 🅰️ Per quelle meno complesse, il metodo migliore è senza dubbio un bel wget -kp $URL, cioè scaricare la pagina #HTML con tutte le sue risorse collegate, e convertire i link da assoluti a relativi.
    • 🅱️ Quel #metodo però non è a conoscenza di tutte le risorse caricate dinamicamente, cioè dichiarate in posti diversi dall’HTML. Per prendere anche quelle (ed è spesso necessario, tutte le app moderne caricano roba così), bisogna aprire la app nel #browser, e guardare le richieste di #rete che macina con il normale uso.
      • 1️⃣ A questo punto, si può usare la funzione del browser per esportare le richieste in formato HAR, e poi tool come har-extractor o Har Extractor Online per ricavare i file effettivi da quel blob.
        • Ho notato però che Firefox in alcune situazioni genera #HAR corrotti (2 giochi fatti in Phaser avevo provato a scaricare, ed una volta estratti gli script tiravano errori; ho riprovato con Chromium, ed è andato tutto liscio), quindi a prescindere io userei l’altro #navigatore per questa cosa. 🥴
        • Poi, non ho ben capito se per via di come il file HAR in sé è generato, se come quegli #strumenti lo interpretano, o un misto delle cose, ma le risorse cross-domain (e credo anche caricate da iframe?) tendono a non venir estratte, quindi si deve andare poi a pescarle prelevando l’URL di ognuna a manina dai DevTools già aperti… 🤧
    • 🆎 Si potrebbero usare primo e secondo metodo insieme in linea di principio (copiando i file del primo passaggio su quelli del secondo, sovrascrivendo gli esistenti), ma nella pratica è inutile… se c’erano link assoluti da convertire in relativi nell’HTML, con spaventosa probabilità questi sono presenti anche nel #JavaScript o chissà dove, per cui, dato che bisognerà comunque andare a mano a modificarli da qualche parte, 1 o 2 file in più non cambiano (spesso) nulla.
    • 2️⃣ Se si è usato il secondo metodo, bisogna a questo punto effettivamente verificare che i link siano tutti corretti, le #risorse effettivamente scaricate, e la app funzionante indipendentemente dal dominio originale… il modo più efficiente che ho trovato è aprire già da subito un webserver locale sui file, navigarci nel browser, e controllare sia che tutto funzioni nel pratico, sia che tutte le #richieste di rete per risorse effettive (ossia, non contano chiamate di telemetria o simili) vadano al mio #server, anziché al dominio originale (attivando la colonna omonima della tabella nei #DevTools lo si vede a colpo d’occhio).
      • Quando ci sono richieste che falliscono o che vanno su altri server, bisogna capire da dove nel codice queste partono, e fare le opportune #modifiche per usare URL relativi. Quelle che partono dall’HTML o dal CSS (turns out, non molte, altrimenti avremmo usato direttamente wget) sono appunto una scemenza da sistemare… ma quando partono da #script, c’è poco da fare, con l’aiuto del debugger del browser (di nuovo, meglio Chromium, perché de-mininifica il JavaScript aggiungendo whitespace in automatico) si va a capire da che punto partono, e in base alla situazione si valuta che modifiche fare al #codice. Poi, si testa ancora, e ancora si applicano #fix, finché tutto non funziona. ♻️
      • In genere questo non è un problema, e anche per app più ostiche (come quella che ho ricaricato sulla #SalaMuseoGames ieri, Little Alchemy 2) si fa tutto in un quarto d’ora ben ristretto. Tuttavia, bisogna fare attenzione a quei programmi che caricano le risorse man mano che ne hanno bisogno e non tutto subito (in genere, maggior parte dei giochi, oppure parecchie #app React)… lì si può potenzialmente perdere un bel po’ di tempo, perché bisogna mettersi ad usare il #software raggiungendo idealmente il 100% del codice; cioè, cliccare tutti i bottoni, usare qualunque azione, giocare tutti i livelli… fino ad ora non ho mai incontrato #ostacoli, ma se succede, l’unica è navigare tra il codice già scaricato per vedere cos’è che manca (da qualche parte ci sono scritti i nomi delle risorse ancora da scaricare, per ovvi motivi). 🗡️
    • 🔚 Aggiustamenti finali: in base alla situazione, vanno fatte altre modifiche al source per ovviare a #problemi banali ma frequenti. La maggior parte riguardano i domini, che in certi casi sono hardcodati, e quindi o ci sono iframe che comunicano con la Messaging API e gli va cambiato il dominio (come per il gioco di ieri), o c’è del DRM che ostacola il #rehosting (come il giochino dell’altro ieri) ecc… con #pazienza si risolve tutto.
      • E alla fine di tutto, una cosa che mi piace fare ma che non sarebbe obbligatoria, è disattivare tutte le componenti potenzialmente dannose dell’ #applicazione, ossia commentare via eventuali inclusioni e chiamate a sistemi di analitiche o pubblicità. 🚯

    https://octospacc.altervista.org/2024/04/03/webaps-heist/

    #app #applicazione #archiviare #browser #clonare #codice #DevTools #esperienza #fix #HAR #HTML #JavaScript #metodo #modifiche #navigatore #ostacoli #pazienza #problemi #problemino #rehosting #rete #richieste #risorse #SalaMuseoGames #script #server #software #strumenti #webapp

  7. #MarioKart è una delle mie primissime #memorie di #gaming in #multiplayer (dopo Wii Party), specialmente il capitolo per #NintendoDS. Quando avevo 6 anni facevo schifissimo al #gioco, e nelle #partite al #doposcuola c’era sempre chi mi stracciava senza pietà, soffrivo proprio di #SkillIssue, ma nonostante ciò mi divertivo e ci ritornavo sempre. 🏎️

    Negli anni a seguire, soprattutto dopo aver provato altre entrate della #saga, questa l’ho un po’ tralasciata, ma 2-3 anni fa l’ho ripresa in mano con più dedizione, prima perché era uscita fuori la novità delle #gare online (che io ai tempi non avevo mai giocato, e a un certo punto #Nintendo spense i #server) grazie a #Wimmfi, poi a tempo perso ho deciso per giunta di platinarlo… (esclusa #MissionMode, è troppo tosta). 🪙️

    Ormai però, e ovviamente io non me ne capacito, è un #retrogame, e seppur con qualche difficoltà, si riesce ad emularlo nel #browser. L’ho caricato sulla #SalaMuseoGames, precisamente la versione #demo (#giapponese, che a quanto pare ha più contenuto) per i motivi soliti. Dalla sua comunque, portò molte #novità: la serie in tre dimensioni anche in portabilità, i circuiti presi da #giochi precedenti, e quei 2 aspetti che ho detto prima, oltre a i diversi kart con diverse specifiche, e le novità di #gameplay portate dal secondo schermo, con minimappa e statistiche! 💯️

    In retrospettiva, della grafica riesco ad apprezzare il suo essere un po’ “secca”, a differenza di praticamente tutti gli altri Mario Kart #3D che danno almeno una leggera impressione di “glossy” sotto quell’aspetto. I controlli sono facili e maneggevoli, soprattutto la #derapata: è una goduria da usare quando la si impara, probabilmente perché è estremamente rotta… (cercate su YouTube i #WorldRecord e guardate, non dico altro). Un peccato che la #musica sia davvero poca, le tracce di sottofondo si ripetono spesso, ma sono godibili. E forse parla la #nostalgia, ma rimane uno dei titoli che più amo della #serie, soprattutto grazie alle varie #mod che rinnovano sempre i contenuti. 🎁️

    Provate i primi tracciati su https://gamingshitposting.github.io/SalaMuseoGames/2023/12/16/mario-kart-ds/!

    https://octospacc.altervista.org/2023/12/17/588/

    #3D #browser #demo #derapata #doposcuola #gameplay #gaming #gare #giochi #gioco #MarioKart #memorie #MissionMode #mod #multiplayer #musica #Nintendo #NintendoDS #nostalgia #partite #retrogame #saga #SalaMuseoGames #serie #server #SkillIssue #Wimmfi #WorldRecord

  8. #MarioKart è una delle mie primissime #memorie di #gaming in #multiplayer (dopo Wii Party), specialmente il capitolo per #NintendoDS. Quando avevo 6 anni facevo schifissimo al #gioco, e nelle #partite al #doposcuola c’era sempre chi mi stracciava senza pietà, soffrivo proprio di #SkillIssue, ma nonostante ciò mi divertivo e ci ritornavo sempre. 🏎️

    Negli anni a seguire, soprattutto dopo aver provato altre entrate della #saga, questa l’ho un po’ tralasciata, ma 2-3 anni fa l’ho ripresa in mano con più dedizione, prima perché era uscita fuori la novità delle #gare online (che io ai tempi non avevo mai giocato, e a un certo punto #Nintendo spense i #server) grazie a #Wimmfi, poi a tempo perso ho deciso per giunta di platinarlo… (esclusa #MissionMode, è troppo tosta). 🪙️

    Ormai però, e ovviamente io non me ne capacito, è un #retrogame, e seppur con qualche difficoltà, si riesce ad emularlo nel #browser. L’ho caricato sulla #SalaMuseoGames, precisamente la versione #demo (#giapponese, che a quanto pare ha più contenuto) per i motivi soliti. Dalla sua comunque, portò molte #novità: la serie in tre dimensioni anche in portabilità, i circuiti presi da #giochi precedenti, e quei 2 aspetti che ho detto prima, oltre a i diversi kart con diverse specifiche, e le novità di #gameplay portate dal secondo schermo, con minimappa e statistiche! 💯️

    In retrospettiva, della grafica riesco ad apprezzare il suo essere un po’ “secca”, a differenza di praticamente tutti gli altri Mario Kart #3D che danno almeno una leggera impressione di “glossy” sotto quell’aspetto. I controlli sono facili e maneggevoli, soprattutto la #derapata: è una goduria da usare quando la si impara, probabilmente perché è estremamente rotta… (cercate su YouTube i #WorldRecord e guardate, non dico altro). Un peccato che la #musica sia davvero poca, le tracce di sottofondo si ripetono spesso, ma sono godibili. E forse parla la #nostalgia, ma rimane uno dei titoli che più amo della #serie, soprattutto grazie alle varie #mod che rinnovano sempre i contenuti. 🎁️

    Provate i primi tracciati su https://gamingshitposting.github.io/SalaMuseoGames/2023/12/16/mario-kart-ds/!

    https://octospacc.altervista.org/2023/12/17/588/

    #3D #browser #demo #derapata #doposcuola #gameplay #gaming #gare #giochi #gioco #MarioKart #memorie #MissionMode #mod #multiplayer #musica #Nintendo #NintendoDS #nostalgia #partite #retrogame #saga #SalaMuseoGames #serie #server #SkillIssue #Wimmfi #WorldRecord

  9. #MarioKart è una delle mie primissime #memorie di #gaming in #multiplayer (dopo Wii Party), specialmente il capitolo per #NintendoDS. Quando avevo 6 anni facevo schifissimo al #gioco, e nelle #partite al #doposcuola c’era sempre chi mi stracciava senza pietà, soffrivo proprio di #SkillIssue, ma nonostante ciò mi divertivo e ci ritornavo sempre. 🏎️

    Negli anni a seguire, soprattutto dopo aver provato altre entrate della #saga, questa l’ho un po’ tralasciata, ma 2-3 anni fa l’ho ripresa in mano con più dedizione, prima perché era uscita fuori la novità delle #gare online (che io ai tempi non avevo mai giocato, e a un certo punto #Nintendo spense i #server) grazie a #Wimmfi, poi a tempo perso ho deciso per giunta di platinarlo… (esclusa #MissionMode, è troppo tosta). 🪙️

    Ormai però, e ovviamente io non me ne capacito, è un #retrogame, e seppur con qualche difficoltà, si riesce ad emularlo nel #browser. L’ho caricato sulla #SalaMuseoGames, precisamente la versione #demo (#giapponese, che a quanto pare ha più contenuto) per i motivi soliti. Dalla sua comunque, portò molte #novità: la serie in tre dimensioni anche in portabilità, i circuiti presi da #giochi precedenti, e quei 2 aspetti che ho detto prima, oltre a i diversi kart con diverse specifiche, e le novità di #gameplay portate dal secondo schermo, con minimappa e statistiche! 💯️

    In retrospettiva, della grafica riesco ad apprezzare il suo essere un po’ “secca”, a differenza di praticamente tutti gli altri Mario Kart #3D che danno almeno una leggera impressione di “glossy” sotto quell’aspetto. I controlli sono facili e maneggevoli, soprattutto la #derapata: è una goduria da usare quando la si impara, probabilmente perché è estremamente rotta… (cercate su YouTube i #WorldRecord e guardate, non dico altro). Un peccato che la #musica sia davvero poca, le tracce di sottofondo si ripetono spesso, ma sono godibili. E forse parla la #nostalgia, ma rimane uno dei titoli che più amo della #serie, soprattutto grazie alle varie #mod che rinnovano sempre i contenuti. 🎁️

    Provate i primi tracciati su https://gamingshitposting.github.io/SalaMuseoGames/2023/12/16/mario-kart-ds/!

    https://octospacc.altervista.org/2023/12/17/588/

    #3D #browser #demo #derapata #doposcuola #gameplay #gaming #gare #giochi #gioco #MarioKart #memorie #MissionMode #mod #multiplayer #musica #Nintendo #NintendoDS #nostalgia #partite #retrogame #saga #SalaMuseoGames #serie #server #SkillIssue #Wimmfi #WorldRecord

  10. #MarioKart è una delle mie primissime #memorie di #gaming in #multiplayer (dopo Wii Party), specialmente il capitolo per #NintendoDS. Quando avevo 6 anni facevo schifissimo al #gioco, e nelle #partite al #doposcuola c’era sempre chi mi stracciava senza pietà, soffrivo proprio di #SkillIssue, ma nonostante ciò mi divertivo e ci ritornavo sempre. 🏎️

    Negli anni a seguire, soprattutto dopo aver provato altre entrate della #saga, questa l’ho un po’ tralasciata, ma 2-3 anni fa l’ho ripresa in mano con più dedizione, prima perché era uscita fuori la novità delle #gare online (che io ai tempi non avevo mai giocato, e a un certo punto #Nintendo spense i #server) grazie a #Wimmfi, poi a tempo perso ho deciso per giunta di platinarlo… (esclusa #MissionMode, è troppo tosta). 🪙️

    Ormai però, e ovviamente io non me ne capacito, è un #retrogame, e seppur con qualche difficoltà, si riesce ad emularlo nel #browser. L’ho caricato sulla #SalaMuseoGames, precisamente la versione #demo (#giapponese, che a quanto pare ha più contenuto) per i motivi soliti. Dalla sua comunque, portò molte #novità: la serie in tre dimensioni anche in portabilità, i circuiti presi da #giochi precedenti, e quei 2 aspetti che ho detto prima, oltre a i diversi kart con diverse specifiche, e le novità di #gameplay portate dal secondo schermo, con minimappa e statistiche! 💯️

    In retrospettiva, della grafica riesco ad apprezzare il suo essere un po’ “secca”, a differenza di praticamente tutti gli altri Mario Kart #3D che danno almeno una leggera impressione di “glossy” sotto quell’aspetto. I controlli sono facili e maneggevoli, soprattutto la #derapata: è una goduria da usare quando la si impara, probabilmente perché è estremamente rotta… (cercate su YouTube i #WorldRecord e guardate, non dico altro). Un peccato che la #musica sia davvero poca, le tracce di sottofondo si ripetono spesso, ma sono godibili. E forse parla la #nostalgia, ma rimane uno dei titoli che più amo della #serie, soprattutto grazie alle varie #mod che rinnovano sempre i contenuti. 🎁️

    Provate i primi tracciati su https://gamingshitposting.github.io/SalaMuseoGames/2023/12/16/mario-kart-ds/!

    https://octospacc.altervista.org/2023/12/17/588/

    #3D #browser #demo #derapata #doposcuola #gameplay #gaming #gare #giochi #gioco #MarioKart #memorie #MissionMode #mod #multiplayer #musica #Nintendo #NintendoDS #nostalgia #partite #retrogame #saga #SalaMuseoGames #serie #server #SkillIssue #Wimmfi #WorldRecord

  11. Fino a quando non sono arrivati quei pezzi (che hanno deviato la mia serata), la mia #FissazioneDelGiorno ieri era #CityConnection. 🚗

    Trovo abbia un non-so-che di particolarmente affascinante per essere un gioco #arcade, a cominciare dalla lore che è pazza a dir poco. Stando a https://www.gamesdatabase.org/game/nintendo-nes/city-connection, in pratica c’è questa ragazza che va in auto in giro per tante città del mondo, e pittura tutta la strada per provare che ci è stata (a quei tempi i selfie non si usavano), ma giustamente viene rincorsa dalla polizia… contro cui lancia barili per difendersi. 🎨

    A proposito, anche in questo caso entrò in atto il famoso e temuto #PoliticallyCorrect ™️, solo che in modo opposto, all’epoca… nelle versioni #NES europee e statunitensi, Clarice è stata rimpiazzata con un tizio innominato… e nessuno sa il perché, a quanto pare. Non aggiunge nessun valore al gioco, e ne toglie un po’ di personalità. 👹

    Su #SalaMuseoGames infatti ho caricato la versione #Famicom, che mi sembra si giochi abbastanza bene. Quella musichetta #8bit del primo livello mi sta rimanendo in testa, così come la bellezza minimale degli sfondi in pura #PixelArt. I controlli sono responsivi abbastanza, ma gli input non sono immediati, l’automobile richiede un po’ di margine di manovra, specialmente quando la si usa per saltare letteralmente da una corsia ad un’altra che sta per aria… L’#atmosfera è in generale stratosferica. 💫

    Mi piace pensare che il gioco abbia questo nome perché Clarice con la pittura sta fisicamente collegando le città del mondo, ma probabilmente si riferisce al motivo del suo viaggio, trovare l’amore (a quei tempi le app di incontri non c’erano). Vabbè. 😾

    Ci sono altri dettagli che non mi metto a dire, voglio lasciarli a voi, provate sto #retrogame! https://gamingshitposting.github.io/SalaMuseoGames/2023/12/13/city-connection/

    https://octospacc.altervista.org/2023/12/14/528/

    #8bit #arcade #CityConnection #corse #Famicom #FissazioneDelGiorno #Jaleco #NES #PixelArt #PoliticallyCorrect #racing #retro #retrogame #SalaMuseoGames