Home Homebrew Counter-Strike arriva su PSP grazie a JavaScript: OpenStrike dimostra le potenzialità di...

Counter-Strike arriva su PSP grazie a JavaScript: OpenStrike dimostra le potenzialità di PocketJS

141
0

A oltre vent’anni dal debutto della PlayStation Portable, la storica console portatile Sony continua a sorprendere attraverso una dimostrazione tecnica che mostra un gioco ispirato a Counter-Strike in esecuzione su PSP, con una caratteristica che fino a poco tempo fa sarebbe sembrata impensabile: gran parte della logica del progetto è sviluppata in JavaScript.

Il progetto prende il nome di OpenStrike ed è il primo runtime videoludico realizzato interamente con l’ecosistema PocketJS.

Si tratta di uno sparatutto in prima persona ispirato a Counter-Strike che utilizza le classiche mappe BSP di GoldSrc, come de_dust2, combinando un motore 3D scritto in Rust con una HUD completamente sviluppata in JavaScript e TypeScript attraverso PocketJS e Solid JSX.

A renderlo virale è stato un video pubblicato dall’account @pocket_js, che ha rapidamente superato le 100.000 visualizzazioni.

Nel filmato si vede una PSP collegata a un PC mentre esegue OpenStrike in maniera sorprendentemente fluida, mostrando il gameplay contemporaneamente sulla console e sulla versione desktop.

La particolarità del progetto è che lo stesso identico gioco funziona sia su PC, utilizzando il backend grafico wgpu, sia su una vera PlayStation Portable del 2004 attraverso sceGu, senza modificare la logica di gioco.

Entrambe le versioni condividono lo stesso codice, lo stesso bundle JavaScript e le stesse regole, mantenendo prestazioni bloccate a 60 fotogrammi al secondo.

Durante la dimostrazione è possibile osservare la celebre mappa de_dust2, un’interfaccia completa con HUD, kill feed, timer dei round e indicatore dei danni completamente renderizzati tramite Solid JSX, mentre gli strumenti di sviluppo del browser ispezionano in tempo reale gli elementi dell’interfaccia.

Tutto questo viene eseguito con un consumo di memoria di appena circa 12 MB di RAM, un risultato particolarmente impressionante considerando le limitazioni hardware della PSP.

L’architettura di OpenStrike è suddivisa in più componenti. Il cuore del gioco è openstrike-core, scritto in Rust e condiviso integralmente tra PC e PSP.

Qui vengono gestiti movimento del giocatore, intelligenza artificiale dei bot, armi e stato dei round. Sopra questo livello lavora Pocket3D, il motore grafico che si occupa del rendering, della gestione delle mappe BSP, delle collisioni e delle animazioni scheletriche.

La parte più innovativa è però affidata a QuickJS, un motore JavaScript embedded che esegue tutta la logica di alto livello.

Regole delle partite, bilanciamento delle armi, punteggi, comportamento dei bot e persino l’interfaccia grafica vengono caricati come un normale bundle JavaScript scritto in TypeScript e TSX.

Gli sviluppatori descrivono il gioco base come “la prima mod”, poiché utilizza le stesse API messe a disposizione degli utenti e non dispone di privilegi aggiuntivi rispetto a una qualsiasi modifica realizzata dalla community.

Il funzionamento interno è estremamente efficiente. A ogni fotogramma il motore Rust aggiorna la simulazione e invia a QuickJS uno snapshot completo dello stato della partita insieme agli eventi generati.

Il codice JavaScript aggiorna quindi HUD e regole di gioco, restituendo al motore soltanto i comandi necessari, come il cambio di fase del round, il riavvio della partita o la configurazione delle armi. In questo modo la simulazione non viene mai bloccata dall’esecuzione dello script, garantendo fluidità costante.

Un altro aspetto interessante riguarda il sistema di modding. Basta modificare il file rules.ts per creare una mod completa del gameplay, mentre hud.tsx permette di ridisegnare interamente l’interfaccia tramite PocketJS.

L’intero sistema è stato progettato affinché le mod possano modificare sia le regole della partita sia la presentazione grafica utilizzando esclusivamente JavaScript.

Per quanto riguarda i contenuti, OpenStrike non include le mappe originali di Counter-Strike, poiché sono protette dal copyright di Valve.

L’utente deve quindi fornire autonomamente i file .bsp e .wad provenienti da una propria copia del gioco. Il motore è compatibile con le mappe GoldSrc in formato BSP v30 e gli sviluppatori hanno verificato il funzionamento con le otto mappe classiche di Counter-Strike.

La versione PSP non è una semplice demo tecnica, ma una vera applicazione homebrew distribuita come EBOOT, completa di icona, sfondo personalizzato e menu principale dal quale è possibile selezionare tutte le mappe installate. Durante la partita è inoltre possibile tornare rapidamente al menu principale tramite il tasto .

I controlli sono stati adattati alla console portatile: lo stick analogico gestisce il movimento del personaggio, i pulsanti frontali controllano la visuale, il tasto viene utilizzato per sparare, per saltare, la croce direzionale permette di ricaricare o camminare lentamente, mentre apre il menu di ritorno.

Anche dal punto di vista delle prestazioni il lavoro svolto dagli sviluppatori è notevole. I test effettuati su hardware reale con la PSP impostata a 333 MHz mostrano un frame rate stabile di 60 FPS, senza rallentamenti nemmeno durante gli scontri a fuoco.

Questo risultato è stato ottenuto grazie a numerose ottimizzazioni, tra cui la conversione preventiva delle lightmap nei colori dei vertici, l’uso di texture CLUT8 con mipmap complete, il caricamento on-demand delle mappe e un sistema di rendering che disegna esclusivamente le aree realmente visibili della scena.

Il progetto include inoltre una completa suite di test automatici che verifica il corretto funzionamento del gameplay senza richiedere una finestra grafica.

Attraverso script dedicati vengono controllati movimento, collisioni, animazioni, combattimento, gestione dei round e comportamento dei bot, garantendo che la stessa logica venga eseguita in maniera identica sia su PC sia su PSP.

OpenStrike rappresenta uno degli esempi più interessanti degli ultimi anni nel panorama homebrew. Non si limita a dimostrare che JavaScript può funzionare su una console portatile del 2004, ma mostra come sia possibile realizzare un’architettura moderna in cui un motore Rust altamente ottimizzato e un runtime JavaScript convivono senza compromessi.

Il risultato è uno sparatutto capace di girare a 60 FPS su PSP utilizzando lo stesso identico codice che viene eseguito su desktop, aprendo prospettive molto interessanti anche per futuri progetti destinati a PS Vita e ad altre piattaforme supportate da PocketJS.

Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale.

🔥 Prodotti in promozione e articoli più venduti: Nintendo Switch

Vedi altri prodotti Nintendo Switch

Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.

Ultimo aggiornamento 2026-08-15 / Link di affiliazione / Immagini da Amazon Product Advertising API

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui
Captcha verification failed!
Punteggio utente captcha non riuscito. Ci contatti per favore!

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.