Questa non è un’ode all’MSX (me la terrò in serbo per una prossima volta), però cazzo se è buono l’MSX. Ora che lo guardo un pochino meglio, per molti versi sembra decisamente più allettante del NES, e mi sa che rischia di diventare la mia piattaforma #retro preferita, dal punto di vista dello #sviluppo#software. (Riguardo il gaming invece, si continua ad andare semplicemente dove stanno i giochi volta per volta, il resto conta meno di zero.) 🥶️
Lo stereotipo che i giochi #MSX scrollano di cacca in parte è vero, e certamente il NES sotto quel punto di vista rimane migliore, però per il resto… l’audio è oggettivamente migliore (ha più roba dei 4 canali), il video negli altri ambiti è più potente e flessibile con anche diverse modalità (e con MSX2 diviene tutto ancora meglio), e per il resto… l’MSX è uno standard per home computer, non una console, per cui si gode di più memoria senza bestemmie, supporto di prima classe a dispositivi come mouse e tastiera, o anche espansioni più oscure. 👹️
Volendo quasi quasi programmare per questa piattaforma quel recente giochino che ho in mente, perché credo di riuscire a fare qualcosa di artisticamente più valido con le limitazioni d’epoca (ma sento che il NES rischia di essere un mal di testa troppo grosso), ho provato a cercare qualcosa… E inizialmente mi stavo un po’ scoraggiando, non riuscendo a trovare materiale soddisfacente, ma continuando a scavare ho trovato MSXgl; sembra una #libreria multimediale eccellente, permette di #programmare in #C con astrazioni comode per quasi ogni cosa. La documentazione non è perfetta, molti dettagli non sono detti quindi un po’ ho dovuto guardare i sorgenti dell’engine e degli esempi, e un po’ cercare in giro… ma è comunque sorprendentemente ottima. 😻️
Per iniziare a prendere familiarità col tutto, ho fatto giusto questo po’ ora: una ROM che mostra due linee di dialogo senza senso all’avvio, e poi cambia scena e inizia a riprodurre una musica. Ovviamente, gli assets sono quelli di #esempio, non ho ancora iniziato a produrre nulla, anche perché devo prima capire quale modalità video è la migliore per questa mia applicazione… 🧐️https://octospacc.altervista.org/2024/05/18/msx-more-like-sex/
Colpo di #genio estremamente radicale per risolvere un annoso #problema: il creare una data #webapp, che non abbia bisogno di grande interattibilità (vedi un social network, o un CMS), senza dover mantenere 2 #codebase separate e quindi impazzire, facendola funzionare sia con un #server che totalmente senza… ossia, come unire in una sintesi circa accettabile i due maggiori paradigmi del #frontend? 🤔️
Quello antico, delle prime #piattaforme#web, dove il server genera tutto l’HTML e il browser lo visualizza com’è, spesso con (quasi) zero #JavaScript (vedi la Spacc BBS). 📦️
Quello moderno, dove nel #backend si espongono API (spesso JSON REST), e il fronte viene sviluppato a parte come app che gira totalmente lato #client, con il #browser che richiede pezzetti di dati e fa i suoi iperprocessamenti. 💱️
Ormai quello antico non si usa quasi mai per #progetti nuovi, perché gli svantaggi sono pesanti appena si vuole andare un po’ più in là: per tappare i buchi nel progetto medio si finirebbe a dover scrivere talmente tanto #codice#ClientSide, che a questo punto era meglio fare tutto nel secondo modo, senza menzionare i modelli e le #API da esporre nel server che altrimenti non si sarebbero implementati. Però, le webapp antiche girano bene anche sul computer tascabile meno performante (average Ximi), sui browser vecchi, e spesso sono le uniche che vanno quando tutto il resto ti lascia a piedi. D’altro canto però, anche se in teoria quella #app potrebbe funzionare #offline, magari mostrando dati cachabili, se è sviluppata in modo attaccato al server ecco allora che non si può fare nulla: muore il server, muore tutto. 💣️
Quindi la mia #idea paxxerella, dato che devo fare banalmente una #applicazione come frontend per un altro servizio già esistente, ma voglio i vantaggi appena millantati: sviluppare con i paradigmi #ServerSide in un framework JS adatto, che giri sia in Node che nel browser. A quanto pare, qualcuno ci ha pensato prima, e qualcosa di già fatto ho trovato (Express+FrontExpress, Koa+Koa-Client, Rill)… ma è tutta roba ormai abbandonata, che o non funziona (ho provato) o ha altre #rogne. Te pareva che trovavo mai qualcosa di buono già pronto… Però, in un quarto d’ora ho tirato su uno #script scheletrino, giusto per poter partire per questa via. ☠️