Vai al contenuto

MicroBlog : Fritto Misto di OctoSpacc

softwarepostaggio

Ieri carestia di postaggio. A parte un altro esame e ancora altro gamin', stavo vedendo delle robe riguardo la fabbricazione del gamin', cioè varie tecnologie per fare giochini con un buon livello di cross-platformness e basse rogne (aka no C perché potenzialmente applicazioni complesse)... da un lato la scelta è ampia, ma dall'altro un po' intricata. Considerando che per motivi di costruzione del software che ora non spiego, gli engine veri e propri (Unity, Godot, ecc...) sono scartati a prescindere, le opzioni che ho visto sarebbero... 🙄

  • JavaScript vanilla, magari con qualce libreria come p5.js: non male, anche perché si possono pacchettizzare in vari modi i programmi basati sulla API Canvas per farli girare come app native su vari sistemi, senza un browser (si veda ad esempio Skia Canvas per desktop, che usa NodeJS e non Electron... o, addirittura, DOjS per, you guessed it, MS-DOS). Tuttavia, pure se quest'ultimissima implementazione esotica in particolare non ha [i problemi di aliasing che ho detto l'altro giorno](../../../2024/06/07/tela-spaccata.md), il coso Skia invece si, così come qualunque altra implementazione moderna che ho visto, per cui non mi sembra proprio il caso... non favorisco piattaforme dove bug di tale livello sono considerati features. 🤢
  • Volevo quasi considerare MonoGame o robe del genere, ma, nonostante sembrano esserci varie risorse sparse (vedi 1, 2, 3, ...) per compilare giochi fatti con quello verso il web (che è per me un requisito non negoziabile, seppur voglio comunque anche le build native), così come abbiamo visto la cosa venir fatta in pratica, io non sono riuscita a far funzionare un fico secco dopo averci provato (1 pochino). È a dir poco imprudente scegliere uno stack software se non si riesce a provare da subito che i requisiti essenziali sono soddisfatti, per cui, scartato anche questo ed XNA liscio (e abbiamo finito le opzioni C#, lol). 🥴
  • Ren'Py, [come ho già detto altre volte](../../../2024/05/03/renprovine.md), è figo e lo si può realisticamente usare per creare qualunque app grafica, usando le sue astrazioni per la UI quando comodo e ricadendo sulla API quasi-Pygame quando necessario. Però idk, è un bel po' di baggage se si considera necessario creare molte delle componenti di gioco in ogni caso, e passi per il peso dei file, però è veramente pallosa la quantità di secondi che impiega a partire su Android, e su Web non ne parliamo proprio! Quindi boh, anche se sarebbe comodo perché funziona e basta e il linguaggio è basato. 😭
  • C'è sempre Pygame liscio, che su desktop da un'esperienza sempre bona, però farlo funzionare su altre piattaforme sembra un po' una scommessa, non essendo direttamente supportate. C'è Pygame-web, che non ho testato lato developer, ma le demo sembrano intriganti a dir poco, con buone prestazioni e supporto a tantissime librerie... e poi per Android c'è il vuoto. Tutte le cose per girare lì sembrano mezze hack, tutti consigliano procedure diverse, e non sembra esserci alcuna soluzione ovvia, quindi manco è chiaro cosa provare e cosa no. Chissà perché le app in Python per Android sono rare, e i giochi Python non-RenPy si contano sulle dita di una mano mozzata... 🤬
  • Scoperto poi Haxe, linguaggio fatto apposta per buildare ai target più disparati (e addirittura traspilare a diversi altri linguaggi); in realtà è generico e si potrebbe usare per qualsiasi cosa, ma è favorito per i giochi, perché la sintassi deriva da ActionScript 3. Di per sé non reimplementa anche le varie API di Adobe Flash per le applicazioni interattive, quello lo fanno rispettivamente librerie come OpenFL (per un'esperienza vanilla, mentre altre ricalcano anche framework terzi d'epoca).
    • L'unica opzione buona qui sarebbe OpenFL, perché le altre sono tutte estremiste (o dal lato del basso livello che ti costringe a programmare tutto per ogni minchiata, o da quello del game engine che ti costringe a programmare il gioco come dice lui)... però la community è piccola, ci ho messo non poca fatica a capire anche solo come disegnare direttamente bitmap sullo schermo senza usare le astrazioni degli sprite, lol, non buono. (Forse avrei più fortuna cercando risorse per Flash anziché questo, se tanto la API è copiata...) 🥺
  • Poi, infine, LÖVE2D mi torna in mente a caso, e... temo sia la scelta migliore? Viene out-of-the-box con solo funzioni di manipolazione visiva, alla Pygame, nessuna delle fancy astrazioni attorno a cui adattare a forza il codice. Ovviamente su desktop funziona a modo, ma poi è ufficialmente supportato su Android, c'è un porting Web che è molto più performante di Pygame, e, addirittura, ci sono vari porting per varie console. C'è LÖVE Potion per 3DS, WiiU, e Switch, che supportano addirittura le varie cose hardware fighe delle rispettive console! Con le altre soluzioni i metodi di girare su queste console (senza SDK ufficiali) ci sono, ma più in teoria che in pratica, nulla sembra essere plug-and-play, quindi questo è un bonus fighissimo. 😍

Vabbè, in questo caso forse tendo al lovvo bidimensionale, questo post era per condividere le ultime osservazioni, nel caso anche voi qualche volta scegliete anziché scommettere. (Ma perché è così difficile l'offerta? E boh...) Con Lua è un po' amore e odio personalmente, ma comunque mille volte più godurioso usare quello che C, poco ma sicuro. Haxe e il suo ecosistema però non lo butto via, me lo tengo a mente per altre occasioni. (...Haxe traspila verso Lua, quindi in teoria si può scrivere per Love2D usando quello, e pare che qualcuno ci sia riuscito, ma provando al volo con me non c'è stato verso... pazienza, vedrò meglio.) 😇

busventura

Stamattina ho detto di "tutti quei giri", ma giustamente non ho avuto modo come avrei voluto di spiegare ieri, quindi... ecco: sospetto che l'esame di ieri sia andato bene, ma, ovviamente, per colpa degli orari strani sia di quei pazzi dei professori che della SITA, ho perso il bus, e avrei dovuto aspettare quasi 2 ore per il prossimo. Realizzando di essere in un momento di crisi, è importante ricordarsi l'etimologia della parola, e riflettere su come una crisi sia un bivio, un momento di decisione: aspettare nella più totale presura... o fare un pochino di gambling nella speranza di tornare a casa prima? Indovinate che ho fatto. 🎰️

Beh si, avevo programmato di pranzare a casa, quindi con me non avevo nulla, e a quell'ora era 1 po' tardino per cercare di andare a un ristorante (e la mensa è un casino per motivi che non spiego, anche volendo non avrei potuto banalmente andare lì e mangiare), per cui non avevo proprio che fare... allora rifletto che, forse, dato un buco di 2 ore, potrebbe avere senso un piano che avevo invece valutato come inutile in un'altra situazione (con orari leggermente diversi). Dunque, è il momento perfetto per far uscire il mio lato #gambling, giocandomi appena 70 centesimi (in più rispetto a quanto spenderei normalmente in trasporti) nella speranza di vincere un'oretta o poco più di tempo. Inutile dire che si, ha funzionato, perché io non perdo mai (...eccetto il bus). BIG WIN. 😤️

In pratica ho deciso di #scommettere su un tragitto alternativo, prendendo un #autobus che non arriva dove abito io, visto che in quel momento non c'erano, ma per una zona completamente diversa, visto che nell'orario quelli invece passavano. E da lì avrei poi potuto prendere un treno o un secondo bus verso, a quel punto, casa mia. Capita giusto a pennello il #BusItalia con 10 minuti di anticipo, quindi ho tutto il tempo di comprare il biglietto al botteghino lì (ho giustamente solo i SITA appresso, perché ho sempre solo preso quelli per motivi di collegamento) e poi salire. Sono quindi poi arrivata al terminal nella città con abbastanza anticipo per non dover andare fino in stazione a prendere il regionale di mezz'ora dopo, e ho potuto semplicemente comprare lì un altro biglietto per prendere il #bus dell'altra linea direttamente lì. 🚌️

Il sito di Trenitalia ha fatto trolling, perché diceva che il #pullman era diretto e ci avrebbe messo poco, ma invece appena è arrivato (in orario!!!) ho letto che andava per via interna... si è fatto tutta la città e cose praticamente è durato quasi un ora questo secondo #viaggio. Eppure, è convenuto lo stesso, come avevo previsto; non sono arrivata a casa presto quanto speravo, ma comunque molto prima dell'alternativa canonica (e non più tardi dell'opzione treno): caso pessimo ~40 minuti, caso ideale ~1 ora (conoscendo la SITA). Ho mangiato solo la pasta, perché erano oltre le 4, ma meglio di niente (e a pensarci, penso che avrei avuto problemi a mangiare fuori anche potendo, perché avevo da fare un cagaton che la mattina non mi usciva, infatti anche quello l'ho rushato per finire nel frattempo che bolliva l'acqua...) 😾️

Schermata del telefono con gli elementi menzionati in didascalia.
E boh lol, questa immagine riassume tutto. Altri due biglietti di colore diverso da collezionare, il bottino fatto con #WiGLE grazie alla via interna, e il #Sudoku. (Che centra? Centra che mi sono messa a fare quello in #bus, perché non mi andava altro... ed è iniziato che sembrava facile, ma mi ha dato del filo da torcere, però curiosamente l'ho finito quasi appena scesa dal mezzo). Non andrò a mentire, ogni tanto un cambio di programma così ci può stare, è stato anche abbastanza suggestivo il viaggio con il lungomare di sfondo (pieno di traffico aaaaa), cosa che non mi capita praticamente mai. KEEP GAMBLING!!! 🤑️ 🤑️ 🤑️

sonno drokato

Comunque non so che minchia succede, ma mi sembra di essere sempre più stanca mentalmente, nonostante le mie energie fisiche siano sempre le stesse. È incredibile che pure ieri tornando a casa, dovendo ancora pranzare, non ho avuto alcun problema a fare tutti quei giri per poi arrivare a casina e farmi pure la pasta... ma dopo tutto ciò mi sembra che il mio livello di, attenzione per esempio, sia crollato malamente. E idem dopo aver pure cenato ore dopo, comunque non si ragionava affatto.

Praticamente, l'idea del tempo tra ieri pomeriggio e sera era che dovevo vedere alcune cose dell'università (altri esercizi altri esami altre cose poco divertenti intendo), e nel frattempo cercare di capirci qualcosa in alcune tecnologie relative ai miei progetti (per fare i giochini e le cose molto divertenti). Ho pensato "facciamo così, questa volta conviene se faccio prima la roba pallosa per levarmela da torno, così sia stasera che domani che boh ho tempo per le cose rilevanti"... l'intenzione c'era stavolta, ma la mente non era veramente d'accordo.

Il risultato è che, in tipo 8 ore da quando c'era l'intenzione a quando sono andata a letto (anche se, ripeto, in mezzo ci sono state cena e altre cose), sono riuscita appena a ricopiare a penna sul tablet da ChatGPT un esercizio piccolissimo (che avevo pure già promptato...) per capire come altre volte, ma a sto giro senza nemmeno veramente capire molto. Ovviamente, a quel punto non c'è stato proprio più modo di fare le cose di mio interesse, e ora mi sento di aver praticamente buttato nel cesso mezza giornata, quando potevo o fare l'ultima cosa che ho detto, o anche semplicemente leggere, o giocare, piuttosto che non fare nulla di sostanziale. Mi continuavo a distrarre coi messaggi (nonostante io non usi le notifiche push) e probabilmente pensieri miei o schede a caso.

In realtà mi pare di riuscire a concludere molte meno cose da quando sto più o meno riuscendo a svegliarmi consistentemente più prima, perché è come se l'orario in cui mi sveglio si sia spostato indietro un po' di più rispetto a quello in cui vado in media a dormire... perché appunto, se un po' lo svegliarmi prima mi porta a stancarmi prima, sembra che non basti del tutto, e quindi arrivo che è comunque tardi che non sento di dover andare a dormire, perché non sto fisicamente crollando, pure se magari mentalmente sono già fuori da un po' (immagino la sensazione di sonno sia generata solo dalla stanchezza fisica?). Non so quanto ancora devo continuare così prima che si stabilizzi davvero tutto.

Brutto bonus: nonostante effettivamente io ora riesca sempre ad alzarmi quando sento le sveglie (ora non cado nella trappola dei 5 minuti), capita almeno 1 mattina su 5 o 8 di non sentirle proprio, e continuare a dormire in genere per 1 ora in più (addirittura, giovedì scorso stavo sognando una roba per cui c'era la sveglia nel sogno, e quindi io la sentivo ma non mi rendevo conto!!!). E ogni volta che succede sto male, perché ecco che poi la sera finirò per forza di cose ad addormentarmi più tardi, e quindi il circolo vizioso di sopra si alimenta. Inizialmente era sembrato che mettere la seconda sveglia sul tablet, che mi sembra pure più forte, fosse la scelta ideale, ma evidentemente anche questa cosa non funziona più... metterò il tablet sul comodino magari, anziché la scrivania come il telefono, altre idee non ne ho.

università del gamin’

Stamattina vado all'università per un esame (💀), a un orario pure strano, e mamma mia, sembra che letteralmente tutti devono studiare. Nel bus sentivo qualcuno che diceva "... R1 ... ZR ..." e ho pensato "ah stanno discutendo di #gaming, quelli sono i tasti dei controller, è rimasto allora qualcuno sano in questi luoghi avvolti dalla disperazione e dal grigiume (letteralmente, oggi il cielo è brutto)!"... e invece, ascoltando meglio, parlavano di numeri, chissà quale malata branca della matematica. 😩

Non ho visto ancora molti che hanno il mio stesso #esame, ma in generale altri della mia classe si, e sono venuti per... studiare?! E le pause di 25 minuti che fanno ogni 5 minuti di studio non sono per giocare, ma per fumare!!! Dove sta la cultura del gamin'!?!?! Io ora sto ancora aspettando e la presura è tantissima, non paura ma proprio scocciatura; forse sarebbe meglio aver ripetuto e ripetere, da un lato sarebbe necessario perché argomenti rognosi, ma dall'altro è comunque Prostituzione e Strutture Dati (quindi boh sia superfluo che #palloso ripassare, anche ora)... 😵‍💫

Quindi, piuttosto, fino a prima ho fatto GAMING, e dopo ho scritto questo su come ho fatto gaming (mentre se state leggendo ora sto facendo l'esame; esatto l'ho programmato per motivi di engagement, GOT'EM). Davvero vi scongiuro lasciatemi #giocare, devo prendere i fossili, devo passare per i negozi, devo importunare gli abitanti, devo rimuovere i pesci dal fiume, devo svolgere le missioni, devo GIOCARE. Voglio GIOCARE, lasciatemi GIOCARE. VOGLIO GIOCARE. LASCIATEMI GIOCARE. DEVO GIOCARE. FATEMI GIOCARE. 😭

playstation mortable

È da troppo tempo che qui non parlo di riparazioni arronzate... beh, l'altro pomeriggio non sapevo che fare, quindi ne ho approfittato qualche ora per cercare di sistemare quei dettagli che mi mancavano sulla PSP... non è andata benissimo. Con la varia roba presa da AliExpress qualche settimana fa, c'era anche la seconda membrana sostitutiva (di sinistra), dopo che avevo scoperto che anche il tasto L aveva iniziato a fare le bizze. Beh, quello è stato indolore, il casino invece si è verificato per quell'altra cagata... 🥶

Ovviamente, iniziando a richiudere sono sorti i problemi. Innanzitutto, non riuscivo a collegare la scheda madre sulla piccola scheda secondaria dell'output AV, perché con gli enormi fili lì non riuscivo a spingere tutto per bene in basso avendo i due pezzi allineati (il connettore è quel rettangolino cagoso proprio affianco ai pad dello stick), e nell'altro verso la scheda non si abbassa proprio per via del bordo della scocca, quindi... ho sacrificato con le tronchesine (o come cavolo si chiamano) il più piccolo pezzo di scocca che potevo, cioè la parte proprio sopra l'output AV, così da poter prima attaccare i pezzi, e poi spingere da sopra senza regalare alcun fottuto. 💀

E infine, ehm, lo stick, come dire... funziona... per bene solo in orizzontale, però. Per via dei fili grossi, probabilmente a seconda di come si muove il tutto quelli fanno corto, e quindi falsi input. Con le saldature lì grosse, il nastro isolante si teneva malissimo (e la colla a caldo avrebbe fatto troppo spessore), quindi ho dovuto inserire tutto così con al massimo un pezzo di carta in mezzo per isolare. Pare essere meglio di niente, ma comunque non buono. ...Se con il CFW inibissi gli input verticali, lasciando alla console leggere solo gli orizzontali, quali giochi potrei giocare che col solo DPad non potrei? 😕

Vi risparmio cosa c'è tra la mutilazione della plastica e il testing dello stick, ve lo tengo per la prossima volta, ma vi assicuro, nulla di bello... spoiler: la scocca non si chiudeva più bene. Però ho come la sensazione che lo stick debba soltanto "stabilizzarsi", perché avendolo riprovato a distanza di un giorno già non era più così problematico. Forse forse, me ne esco fuori con un analogico un po' marcio ma comunque totalmente funzionante... mamma mia, questa PSP mi chiede pietà e di terminare le sue sofferenze, e io continuo a tentare di aggiustarla... 😱

elezioni momento

Odio seguire la massa e ripetere a pappagallo le cose, ma, a costo di sembrare un'NPC, andate a votare per queste elezioni europee, mannaggia!!!!! C'è tempo solo fino a stasera, poi non se ne parla per i prossimi 5 anni. L'amore e il rispetto per la supremazia paneuropea passano anche dall'esercitare il diritto di voto per tentare un minimo, in via microscopica popo ma comunque meglio di zero, di non dare troppo potere di governo a pazzoidi e/o fannulloni. Vi ricordo che alle europee non funziona esattamente come alle politiche, perché i vari partiti formano gruppi in modo diverso dalle classiche coalizioni, quindi, davvero, evitate di saltare il voto solo perché "ah vabbè tanto la maggioranza da noi è troppo forte". Altrimenti... ⚔️

Ah, obbligatorio postare prima delle 23: Oggi sarà domenica sera e gli scrutatori si stanno già preparando per chiudere i seggi. Ricordate che il partito che odiate, anche quello che credete abbia già vinto, questa sera si potrà ancora far sfondare, perché gli sprovveduti sono andati al mare anziché al voto. Il 90% degli aventi diritto stasera non andrà alle urne perché crede che tanto sia tutto già scritto, oppure perché c'è la partita in TV (ovviamente come ogni settimana), questo lo fanno da più di 15 o 16 anni. Nel frattempo noi dobbiamo smetterla di stare segregati in casa, a parlare di emigrare dall'Italia e dall'Europa che tanto nessuno farà (anche se lo farete, ormai, sarà troppo tardi, non proverete mai l'essere locali altrove). Ricordate che, se non andate a votare a queste elezioni nonostante nulla ve lo impedisca, avrete sempre dei rimpianti, una psiche danneggiata, non sarete mai normali. Chi pensa che per la democrazia sia già finita è un povero illuso.

gaming nails

Essere abbastanza infognata in gamin' e programmin' che a furia di fare tictictic su tavole di plastica e, soprattutto, saponette di vetro tascabili, le unghie si spaccano, e anche malamente... ma non essere talmente pro-gamer da avere sempre costantemente lo smalto applicato. Possibile che sono l'unica in questa situazione scomoda? (Su Reddit non ho trovato molto.) 😵️

Realmente però. Ultimamente non so che sto combinando, ma le unghie, se le tengo senza smalto per un bel po', ecco che prendono e iniziano a rompersi in modo molto subdolo... non solo il classico che si spezzano se sono troppo lunghe e sbattono o boh; anche da corte possono (due to RNG of The Game) scheggiarsi sulla parte più estrema, e inizialmente si sente un rialzamento al tatto, poi via via magari pezzettini più superficiali si staccano. Forse le ho tagliate particolarmente male, mah, vallo a capire; non sembra essere stato il modo in cui le ho limate o meno. 🧨️

Vabbè, in realtà la soluzione semplice è mettere lo smalto, quello le indurisce e prende i danni al posto delle unghie... finché non si rovina e va risistemato... finché non si rovina e va risistemato... finché non si rovina troppo e va levato. È anche per questo che non beccherete mai un singolo pro-gamer vero su questo pianeta senza una manicure perfetta in ogni momento: loro lo sanno benissimo che tipo di #spacc succedono se si lascia le manine in balia di mouse e tastiera, e si assicurano di tenere unghie stilose e scintillanti, che riflettono colori puliti e non il giallo-grigino di boh, i commercialisti che coi loro arti inseriscono dolorosi numeri, che cazzo ne so. Ma, appunto, essendo io più casual ogni giorno che passa, facendo il gamin' per sfizio e non per sport, certe volte ho i ditini non pittati, e si piange. 🖐️

modifiche non ninty

[sc name=quote-embed-post]2024/06/06/modifiche-crostini/[/sc]

Detesto quotare post precedenti, perché significa che è successo qualche inghippo. Si belle le mod ecc, ma... che cosa succederebbe se puf sparissero e io nel frattempo non le avessi scaricate? Sarebbe un bel problema se io volessi poi provarle, se gli autori non le ricaricano e da altri non riesco a procurarmele. "Ma non accadrà mai, no?" Ehhh... 🥲

Leggo, notizia dell'altro giorno tipo, Ninty ha tirato giù una mod randomizer per Zelda Breath Of The Wild... così a cazzo. Muzunna ragassi, ormai non si può proprio più abbassare la guardia, è la fine!!! Se quando qualche settimana fa è successo il bordello con GMod non ho detto niente, perché, per quanto shit move possa essere stata quella, comunque non ci sono cazzi, si trattava di ridistribuzione non autorizzata di asset di gioco protetti... qual è la giustificazione in questo caso? Con una mod non ci fai nulla se non hai il gioco originale, lol. ...Anche se, sospetto, considerando cosa è successo nel breve passato (ma fino ad ora non ho visto nessuno proporre questa idea) che abbiano preso provvedimenti perché l'autore Waikuteru ha un Patreon, dove chiede da 15 a 50 dollari (!) per avere gli aggiornamenti della mod in accesso anticipato... suona un po' familiare. 🤥

Probabilmente, quindi, le mod senza scopo di lucro continueranno ad essere a posto... ma io ho comunque paura, in generale Nintendo sta diventando sempre più litigiosa... Quindi ho creato uno script per scaricare in blocco da #GameBanana (non ne ho trovati funzionanti), salvando tutti i metadati e le immagini di anteprima oltre ai file scaricabili, e ho già creato due torrent con rispettivamente tutte le mod di Animal Crossing New Leaf e New Horizons disponibili finora. Trovate tutto in questa cartellina: hlb0it.blogspot.com/?path=/Drive/Misc/GameBanana-Dump/; sarebbe buono se aiutaste a far circolare i torrent, e, nel caso usaste lo script per archiviare altri giochi (non so se ora ne faccio altri io), fatemelo sapere che così ve li aggiungo. 🤗️

tela spaccata

Ieri sera, una roba che davvero mi ha fatto perdere la pazienza e ogni speranza, maledetto web development, avevo iniziato a scrivere questo post ma ho poi deciso di a mimire... in pratica, il Canvas HTML5 è inconsistente, tra diverse funzioni, diversi browser, e a tratti è proprio buggato mi sa. In breve: non si può tracciare linee o contorni puliti lì dentro, viene tutto sfocato, mannaggia!!! 😶‍🌫️️

Beh, non è la prima volta che scopriamo che la roba nei browser gira a furia di hack, quindi non so perché proprio questa volta sono così spiazzata, però questo è. Ho scoperto questa magagna dopo aver notato che, i bordi di rettangoli nel programma che sto facendo, che sono puliti su Firefox, appaiono tutti blurrati in Chromium. Ho fatto qualche test al volo, e notato che cambiare lo spessore dei tratti sistemava il problema su un browser e lo faceva apparire sull'altro. "Sarà colpa di p5.js", ho pensato, "ti pare che nei due browser web più grandi al mondo ci sono gli spacc?"... e quindi ho cercato. Big oopsie, perché una issue l'ho trovata, ma da lì ho scoperto che p5.js in realtà non centra. E... ecco, facendo dei test con la API Canvas liscia, senza la libreria esterna di mezzo, persiste il problema. 👹️

Ho fatto un piccolo file con vari test: jsbin.com/dadobugiye/ (caricato su JSBin, così potete verificare anche voi). In foto c'è a sinistra come ha renderizzato Firefox, e a destra Chromium (entrambi chiaramente sul mio desktop Linux). Tra le quattro linee spesse da 1 a 4 pixel, e i tre rettangoli con bordo da 1 a 3 pixel, notate come a spessore alternato si alternano anche la presenza e l'assenza di sfumatura. Quello che cambia tra la copia superiore e quella inferiore è che sulla seconda è applicato uno shift di 0.5 pixel sia per X che Y (la seconda soluzione più brutta tra le consigliate)... appunto, fare questa cagata pulisce ciò che prima era sporco e sporca ciò che era pulito. 🚬️

La schifezza è dovuta al fatto che il browser fa anti-aliasing di ciò che disegna lui, e non c'è modo di disattivare la cosa; c'è una proprietà imageSmoothingEnabled che vale però solo per i dati immagine raw (forse è per questo che non ho mai notato problemi con, ad esempio, gli emulatori web di console). Quindi, in teoria si potrebbero implementare da zero funzioni per disegnare linee e roba varia, che scrivono direttamente i pixel sulla tela... ma non sembra qualcuno abbia voglia di implementarlo in librerie grafiche general-purpose e che non deviano troppo dalla API. (Io certamente no.) Shiftare ogni azione di disegno di 0.5 pixel in base al browser può sembrare una soluzione (dato che il problema è causato dall'allineamento subpixel, e ci sarebbe il metodo .translate(x,y) per farlo senza ogni volta sommare alle coordinate), ma non lo è affatto, perché lo vedete come le linee e i rettangoli appaiono tra loro diversi (e, curiosamente, le linee sono uguali tra i due browser)... 💱️

Computer potentissimi e piattaforme software di complessità estrema e potenzialità infinite, ma poi non riescono a fare delle fottutissime linee non sburrate, stiamo tornando indietro. E falliscono appunto in modo pure inconsistente!!! Non sembra proprio esserci soluzione, se non creare delle mie astrazioni sulle funzioni di disegno di linee e rettangoli (che fanno in autonomia gli shift necessari ogni volta). Veramente sto male, è possibile che se il mio numero arbitrario di spessore in pixel è pari o dispari, a seconda del gusto del browser e dell'allineamento .0 o .5 a subpixel, deve venire tutto: o grigino anziché nero, o spesso di 2 pixel anziché 1 (o la qualsiasi), o coi bordi sciolti in lava? Per ora continuo a usare p5.js e quindi il disegno a forme sul Canvas per questa applicazione, perché è comodo, ma per i prossimi progetti chissà che dovrei usare... nulla si avvicina neanche lontanamente all'efficienza di scrivere del JavaScript vanilla e averlo immediatamente prendere vita. 🤢️

Ho provato anche un'altra soluzione di tizi, un po' brutta ma che avrei accettato se avesse funzionato: applicare un dato filtro SVG... che dire. Vero, non si vede più alcuna sbleurratura, ma gli angoli dei tratti sono più arrotondati (non chiesi), e lo spessore è comunque sbagliato. E una cosa stramba bonus: i lati delle linee superiori (ma non di quelle shiftate?!) sono tipo corrotti, hanno dei pixel che appaiono un po' a sinistra come delle spine. Ma come cazzo è possibile?!?!?! 🌋️

modifiche crostini

Il postaggio sta scivolando nell'oblio, perché gli Animali Crostini mi stanno trascinando lì... non perché ci sto giocando tanto però. Ci sto giocando sempre poche decine di minuti al giorno, però sto parallelamente esplorando la scena del modding (non hacking), che è una cosa che non ho mai fatto. Per ora non ho installato niente, però c'è comunque molto da vedere. 👁️

A quanto pare, il modding vero e proprio è esploso con New Horizons tipo, e da quei tempi lì qualcosa è tornato indietro anche a New Leaf, ma onestamente non me lo ricordo da prima del nuovo decennio... e in effetti la pagina di GameBanana per il gioco quadra, tutte le mod sono recenti (e ce ne sono alcune veramente carine e pure uwu wtf). Sarà perché la gente negli anni prima si era già abbastanza divertita con runtime hacking (cheat RAM classici, per cui sono usciti fuori anche dei "mod menu", che invece su Switch ancora non ci sono) e save editing, e proprio visto che ora il gioco è stantio vuole aggiungere nuovi oggetti? 🤔️

È interessante però che per gli ultimi due giochi ci sia abbastanza varietà (anche se l'ammontare di robe disponibili per New Horizons fa impallidire le liste di New Leaf), e per quelli precedenti non c'è nulla o quasi. (Per Pocket Camp zero assoluto... "mobile game, what did you expect?" beh, almeno un server privato!) Un grosso problema è che tutte queste modifiche riescono solo a modificare parti esistenti del gioco, ma mai ad aggiungere dati del tutto nuovi (come invece fanno le mod di boh, Minecraft)... quindi, una mod che aggiunge un certo mobile, lo fa sovrascrivendo il modello di un altro, idem per animali e qualsiasi altra cosa. Qualcuna modifica proprietà funzionali di robe anziché l'estetica, ma siamo sempre lì, e nessuna modifica il codice eseguibile della ROM, ma solo i dati. 🧩️

Essendo questo il contesto, secondo me le mod che propongono di aggiungere cose nuove hanno poco senso, perché idk... anche se rimpiazzano oggetti brutti o di poca importanza, mi fa comunque brutto pensare che quella cosa, che gli sviluppatori hanno pensato e messo non a caso, è stata effettivamente rimossa. Quelle che invece sono create con la filosofia di cambiare qualcosa di specifico per un motivo specifico, come i colori di un dato ambiente, il design di un animale o del giocatore, e così via, hanno molto più senso. Ma, suppongo che, se l'intento è di prolungare la longevità del gioco, in realtà qualsiasi cosa è meglio del vanilla... 😾️

Però uffa, sarebbe figo avere più item del normale, e magari anche implementare funzioni di gioco nuove, come il piazzare mobili all'esterno su New Leaf... Ho iniziato con Creeperiano a vedere se magari riusciamo a combinare qualcosa, e in effetti la ricerca va avanti, e stiamo scoprendo alcuni dettagli del funzionamento più interno del gioco, che possono essere utili... però per ora ci siamo bloccati. Ancora non sappiamo nemmeno se possiamo cavarcela con appena un po' di patch, oppure servirebbe una decompilazione completa del gioco (sarebbe la megafine), ma comunque stiamo documentando i dettagli scoperti via via su una repository apposita... se sapete chi ci può aiutare, condividete: https://github.com/andrigamerita/ACNLWA-Decomp. 😩️ (Entro oggi devo caricare anche altra documentazione.)