Home Mobile Android Rilasciato EasyRPG Player v0.8.0 “Paralyze”

Rilasciato EasyRPG Player v0.8.0 “Paralyze”

531
0

Disponibile un nuovo aggiornamento di EasyRPG Player, l’implementazione open source del motore RPG Maker 2000/2003 presenta un nuovo logo e una  schermata delle impostazioni da dove è possibile uscire dal gioco attualmente in esecuzione.

Purtroppo pare che uno degli sviluppatori principali nel team di sviluppo (un certo Ghabry) si prenderà una pausa per concentrarsi sull’Editor di EasyRPG e su altri fantastici progetti secondari.

Tra l’altro Ghabry era uno dei contributori più attivi, questo significa che lo sviluppo del player rallenterà ad un certo punto. Probabile che non ci saranno aggiornamenti significativi per i prossimi anni.

Per sottolineare la situazione attuale, il nome in codice di questa release è Paralyze. L’aggiornamento è comunque enorme, con correzioni e modifiche per dispositivi Android, 3DS, Wii, Switch, PlayStation Vita, core Libretro e tanti altri.

Molte delle correzioni per bug più o meno noti sono stati affrontati in Yume2kki (ゆ め 2 っ き). Questo gioco si basa su molti comportamenti non documentati e casi limite in RPG_RT.

Changelog

Progetto OpenRTP

Il Runtime Package (RTP) è una raccolta di risorse condivise per i giochi RPG Maker. Possono essere utilizzati solo per i giochi creati con RPG Maker. Non possono essere distribuiti, pertanto gli sviluppatori ora stanno lavorando su alcune risorse sostitutive.

Questi hanno un layout compatibile con l’RTP esistente (ciò significa che mostrano gli stessi concetti nella stessa posizione, rendendoli una sostituzione immediata).

Le risorse saranno sotto CC-BY 4.0. Ciò significa che si potranno utilizzare ovunque (al di fuori di EasyRPG) e anche le modifiche sono consentite, anche se  bisognerà fornirne l’attribuzione.

Se si vuole aiutare si consiglia di leggere la guida ed eseguire il ping di Jetrotal nel canale openrtp.

Un nuovo logo (#2701)

Stiamo cambiando il logo della nostra startup per la terza volta. Il nuovo logo è meno dettagliato e appare meno sfocato se ingrandito.

Il logo è concesso in licenza sotto CC-BY-SA 4.0 se si desidera utilizzarlo (come la licenza OpenRTP con la restrizione aggiuntiva che le modifiche devono essere sotto la stessa licenza). Tutti i file del logo sono disponibili nella directory di download.

Impostazioni (#666#2730)

EasyRPG Player ora ha finalmente una scena ambientata. Ci sono voluti quasi due anni per sviluppare questa scena, con diverse pause di un mese, perché era davvero fastidioso da programmare.

Non è stato davvero impegnativo, ma è stato noioso, è stato necessario riscrivere un’enorme quantità di codice del player per leggere le impostazioni di configurazione e dovevamo assicurarci che tutte le funzionalità funzionassero correttamente sulla maggior parte delle piattaforme.

Se un’impostazione non è completamente supportata su una particolare piattaforma, viene nascosta. Ma ne è valsa la pena e l’aggiunta di più impostazioni ora è piuttosto semplice perché le basi noiose sono lì.

È possibile accedere alle impostazioni tramite il comando dell’evento Apri opzioni video, il browser di gioco o premendo F1. Se hai un controller di gioco, provare il pulsante Start.

Accanto alle impostazioni c’è un’opzione per uscire dal gioco in corso. Questo è utile per i giochi che non utilizzano la schermata del titolo incorporata. In precedenza, non esisteva un buon modo per uscire da questi giochi. (#1335)

Impostazioni video

Nelle impostazioni video è possibile configurare il layout iniziale della finestra all’avvio (schermo intero o finestra e fattore di zoom). Anche la posizione della finestra viene mantenuta (non esiste un’interfaccia utente per questo, basta spostare la finestra).

V-Sync può essere attivato. Se è disattivato, puoi invece impostare un limite di frame personalizzato. Tieni presente che la disattivazione di V-Sync può causare il tearing. Quando la commutazione V-Sync non funziona per te, è probabile che si tratti di un problema con il driver della GPU.

Presenti anche tre diverse modalità di ridimensionamento: (#720#1366)

  1. Nearest esegue il ridimensionamento del vicino più vicino alla dimensione intera dello schermo. Questa era l’impostazione predefinita fino ad ora e causa brutti artefatti di ridimensionamento quando la risoluzione target non è un multiplo della risoluzione del gioco. Non ho idea del motivo per cui vorresti usarlo, a meno che tu non sia nostalgico della nostra vecchia implementazione.
  2. Integer è come il più vicino, ma si ridimensiona solo a multipli della risoluzione del gioco. Questo sembra migliore ma ottieni grandi bordi neri a seconda della risoluzione dello schermo.
  3. Il bilineare è l’impostazione predefinita e, a nostro avviso, il migliore di entrambi: prima ingrandiamo con il vicino più vicino a una risoluzione adeguata che è leggermente superiore alla risoluzione dello schermo e successivamente eseguiamo un downscale bilineare. Il risultato finale si adatta all’intero schermo e non presenta artefatti. Lo svantaggio è che perde un po’ di nitidezza. Se vuoi davvero una nitidezza perfetta, devi usare Integer.

L’impostazione della risoluzione del gioco è molto speciale. Ciò consente di forzare il rendering dei giochi in risoluzione widescreen (16:9) o ultra-widescreen (21:9).

Tieni presente che ciò interromperà i giochi perché non si aspettano di funzionare a risoluzioni così elevate. Vedere la sezione Risoluzione personalizzata/Widescreen di seguito per ulteriori informazioni.

Impostazioni audio

Nelle impostazioni audio è possibile controllare il volume della musica di sottofondo e degli effetti sonori ( #794 ).

Le impostazioni del volume attualmente non funzioneranno correttamente per la riproduzione MIDI, poiché il volume MIDI viene gestito inviando eventi MIDI a un dispositivo MIDI. Questo verrà risolto in seguito.

Impostazioni di input

Le impostazioni di input consentono di rimappare tutti i pulsanti supportati dal motore. Se vuoi che Numpad 0 sia mappato su F o Gamepad X, puoi farlo ora.

L’interfaccia utente di input sembra un po’ disordinata perché RPG Maker ha una quantità ridicola di tasti mappati per determinate azioni, in particolare conferma e annullamento. (#713)

Probabilmente non dovrai inserire molte di queste impostazioni perché la mappatura dei pulsanti predefinita per il gamepad ora è migliore e ogni tasto pertinente è disponibile per impostazione predefinita.

Anche giochi come Yume Nikki che richiedono il tastierino numerico sono già giocabili: per impostazione predefinita, lo stick analogico destro rappresenta il tastierino numerico da 1 a 9 (5 è la pressione della levetta destra, 0 è la pressione della levetta sinistra).

Se preferisci i pulsanti utilizzati sui controller Nintendo, c’è anche un’impostazione diretta per scambiare AB e XY.

È possibile effettuare mappature così errate che il giocatore diventa incontrollabile. In questo caso, puoi richiedere un ripristino di emergenza della mappatura tenendo premuto uno qualsiasi dei quattro pulsanti nelle impostazioni e attendendo qualche secondo.

Più configurazioni

Nelle impostazioni del motore è attualmente possibile configurare dove viene visualizzata la voce del menu delle impostazioni. Puoi scegliere di visualizzarlo nella schermata del titolo o nella scena del menu.

Per impostazione predefinita, la configurazione non viene salvata all’uscita. Devi salvarlo manualmente. È possibile abilitare il salvataggio automatico delle impostazioni qui.

Sotto licenza puoi vedere le librerie open source su cui si basa EasyRPG Player.

Risoluzione personalizzata / Widescreen (#2872#2897#2922)

Il lettore ora supporta risoluzioni personalizzate e ci sono due modi per abilitare questa funzione:

Il primo modo è utilizzare l’impostazione della risoluzione nelle impostazioni video. Questo funziona per tutti i giochi. Puoi scegliere tra tre diverse risoluzioni: 320×240 (4:3, Originale), 416×240 (16:9, Widescreen), 560×240 (21:9, Ultrawide).

Rimane l’altezza di 240, e abbiamo dovuto assicurarci che la larghezza fosse un numero pari se divisa per 16 (dimensione di una piastrella).

Questo ha funzionato meglio per posizionare la telecamera e durante la sperimentazione abbiamo notato che molti giochi hanno iniziato a sembrare brutti quando l’altezza è stata aumentata.

Aumentare la larghezza, tuttavia, di solito funzionava bene. Per garantire che non si rompano troppi giochi, la coordinata x e la posizione della telecamera vengono modificate per garantire che tutto sia ancora reso al centro.

Ovviamente, la prima soluzione è più un trucco di compatibilità e non funzionerà per tutti i giochi. E i nuovi giochi? Per i nuovi giochi, probabilmente non vuoi hack.

Qui puoi scegliere qualsiasi risoluzione di gioco. La telecamera sarà comunque centrata, ma le coordinate saranno nell’angolo in alto a sinistra. Usa la stessa configurazione di Maniac Patch: In RPG_RT.ini crea i valori WinW=Value e WinH=Value.

Questi vengono elaborati all’avvio per modificare la risoluzione del motore. Se vuoi saperne di più, leggi la pagina di manuale.

Resa dei caratteri

Negli ultimi anni abbiamo ricevuto così tante lamentele che i nostri caratteri sono brutti. Siamo davvero spiacenti, ma i caratteri utilizzati da RPG_RT sono di Microsoft e non siamo autorizzati a distribuirli su altre piattaforme.

Invece, utilizziamo font open source che hanno i glifi di cui abbiamo bisogno, ma hanno un aspetto diverso. Questo è simile al problema che il MIDI suona male perché non possiamo usare il soundfont protetto da copyright di Roland da Windows.

Il MIDI errato è stato corretto nella versione 0.7 perché è possibile fornire un soundfont personalizzato, e con la versione 0.8 risolviamo il problema dei font perché puoi finalmente fornire font personalizzati. (#1669#2855 , #2859 )

I caratteri devono essere inseriti nella cartella Font della directory del gioco e devono essere nominati Font.ttf o Font2.ttf. Quale file di carattere viene utilizzato dipende dall’impostazione del carattere grafico del sistema.

Oltre a ttf, sono supportati molti altri font (tutto supportato da FreeType, la migliore libreria open source disponibile per il rendering dei font).

Altri comandi di Maniac Patch

Maniac Patch è una patch complessa per RPG Maker 2003 che aggiunge molti nuovi comandi evento al motore. In EasyRPG Player è possibile utilizzare questi comandi anche nei giochi RPG Maker 2000.

Aggiunto il supporto per molti altri comandi Maniac Patch. In breve, quasi tutto tranne le caratteristiche del sistema di combattimento, perché il sistema di combattimento è molto fragile e ogni volta che tocchiamo qualcosa nel sistema di combattimento, qualcosa si rompe.

Il sistema di combattimento deve essere compatibile con i bug con RPG Maker e cambiare qualsiasi cosa al suo interno è estremamente rischioso.

Si noti che con quasi tutti intendiamo comandi fino alla versione 210414. Le versioni più recenti della patch Maniac non sono più patch dirette a RPG_RT, ma una riscrittura completa del motore.

A differenza di EasyRPG Player, questa riscrittura non è open source e non abbiamo le risorse per reimplementare le funzionalità. Pertanto abbiamo deciso di non supportare nulla dopo il 210414.

Se hai bisogno di tutte le funzionalità, sentiti libero di utilizzare l’ultima versione della patch Maniac, ma se lo fai, non sarai in grado di giocare ai tuoi giochi su altre piattaforme con EasyRPG Player.

Tuttavia, puoi inviare patch che aggiungono ulteriore supporto e noi le esamineremo. Tranne se prendono di mira il sistema di battaglia, come spiegato sopra.

Modifiche e correzioni

  • L’avviso che appare quando viene rilevato Maniac Patch ora è disabilitato. (#2777)
  • I comandi dell’evento relativi al salvataggio del gioco stavano leggendo dalla directory sbagliata. (#2737)

Nuovi comandi evento

  • Control Var Array per operazioni su intervalli di variabili (#2733)
  • Get Picture Info per ottenere informazioni dalle immagini attive (#2735)
  • Control Global Save per la gestione dei dati di salvataggio globali. (#2797)
  • Show String Picture per la visualizzazione del testo sullo schermo all’esterno delle finestre di messaggio. Questa funzione è piuttosto interessante, ma non è stato divertente da implementare. Ci sono ancora molte imprecisioni perché Maniac Patch semplicemente lo esternalizza all’API dei font di Windows. Non possiamo farlo perché supportiamo più di Windows e dobbiamo implementarlo da zero utilizzando la libreria FreeType open source. (#2870)

Estensioni ai comandi esistenti

  • Control Variables ora supporta quasi tutte le nuove funzionalità, incluse le espressioni. (#2797) Le operazioni di matrice sulle espressioni non sono supportate e abbiamo deciso di non implementare espressioni che mutano più variabili. Ad esempio V[4] = 3 + V[5] += 4, qui V[5] += 4 non è consentito. Questa caratteristica crea già confusione nella maggior parte dei linguaggi di programmazione. Creare invece due comandi Variabile di controllo per V[5] += 4 e V[4] = 3 + V[5].
  • Nuove condizioni in Conditional Branch ad eccezione di È stato caricato questo frame (#2797)
  • I cicli while e foreach come estensione del comando dell’evento Loop. (#2649)
  • Le immagini ora supportano l’identificatore di origine (l’origine definisce la posizione su cui si basano le coordinate x/y, molto utile), un angolo di rotazione fisso e l’utilizzo di fotogrammi per la durata dell’animazione invece dei millisecondi. (#2741)
  • Questa è in realtà una funzionalità post-210414 ma è stato facile da aggiungere: i comandi di musica ed effetti sonori ora supportano le variabili e Wait ora supporta le variabili e l’attesa per un numero specifico di frame (invece di millisecondi). Questi sono stati aggiunti perché il fantastico simulatore di sviluppo EasyRPG li richiede. (#2914)

Android e SAF

  • A partire da Android 10, le app aggiornate devono utilizzare Storage Access Framework (SAF). SAF è stato introdotto molto tempo fa in Android 4.4, ma a partire da Android 11, Google ne sta imponendo l’utilizzo. Invece di accedere direttamente a file e directory, tutti gli accessi devono passare attraverso SAF. Dal punto di vista della privacy, questa è un’ottima idea perché l’utente può decidere quali cartelle sono accessibili dall’app. Possono esserci anche diversi fornitori di contenuti nel SAF. Google Drive è un fornitore di contenuti e tramite SAF le applicazioni possono leggere e scrivere direttamente su Google Drive. L’idea è buona, ma il design è pessimo: è estremamente lento e non è più possibile utilizzare la normale interfaccia file. Il tutto, invece, deve essere inviato tramite le funzioni SAF fornite da Android. Fortunatamente, in EasyRPG Player 0.7 è stato aggiunto il supporto per gli archivi ZIP. Per il supporto ZIP, abbiamo riscritto gran parte di EasyRPG Player per centralizzare dove avviene l’accesso a file e directory. Ciò ha reso possibile riutilizzare facilmente la maggior parte di quell’interfaccia per l’interazione SAF. Questa bella astrazione ha reso abbastanza facile agganciare SAF. Nel processo abbiamo riscontrato molti fastidiosi problemi, ad esempio l’astrazione di alto livello (DocumentFile) impiega minuti (non è uno scherzo. Ci vogliono minuti!) per enumerare le directory, rendendolo completamente inutile, ma siamo riusciti a risolverlo. Pubblicheremo più avanti un altro post sul blog che parla di tutti i problemi che abbiamo dovuto risolvere per avere ancora una piacevole esperienza utente su Android. (#2434 , #2699)
  • Un problema SAF di cui vogliamo parlare ora è CVE-2023-21036 (aCropalypse). Probabilmente ne hai letto: la funzione di ritaglio dello strumento screenshot di Android ha mantenuto i vecchi dati dell’immagine dall’immagine non ritagliata che potrebbe essere recuperata. Il motivo è un cambiamento molto discutibile rispetto ad Android 10: l’apertura di un file per la scrittura con SAF non tronca più il file. Invece, scrive semplicemente dall’inizio e se i dati che scrivi sono inferiori al file esistente, i vecchi dati rimangono. Questo è diverso da qualsiasi altra API di file e completamente inaspettato. È probabile che ci siano molte altre applicazioni là fuori che hanno una vulnerabilità simile. Dopo aver letto di questo CVE, abbiamo dovuto dargli un’occhiata e, sì, EasyRPG Player ne risente. Quando si scrivono salvataggi e i nuovi dati di salvataggio sono più brevi dei vecchi dati di salvataggio, i vecchi dati di salvataggio vengono lasciati alla fine del file. Ora tronchiamo i dati di salvataggio prima di scriverli, il che mitiga questo problema. (#2936)
  • L’app per Android ora può avviare direttamente un gioco incorporato nel file APK. Questo è per la modalità standalone, una modalità che consente di distribuire i giochi tramite il Play Store. Per anni esiste una modalità standalone sperimentale, ma ha funzionato estraendo il gioco e poi avviandolo. Questo ha raddoppiato le dimensioni e ha richiesto molto tempo per l’estrazione. Non qualcosa che possiamo consigliare. Ora il gioco viene avviato direttamente dall’archivio ZIP. Non siamo ancora riusciti a scrivere una guida che spieghi come decomprimere. In seguito forniremo una guida che spiegherà i passaggi necessari per raggruppare e pubblicare i propri giochi. Mi dispiace per questo. (#995)
  • Un problema di vecchia data è l’impossibilità di modificare il layout dei pulsanti in modalità verticale. Questo ora è stato implementato: sia il layout dei pulsanti verticale che quello orizzontale possono essere modificati. (#1041)
  • Per rendere l’app molto più reattiva, il browser del gioco ora verifica la presenza di giochi in un thread in background. Se i giochi non sono cambiati dall’ultimo avvio, i giochi vengono recuperati da una cache. Questo fa sì che l’app si avvii quasi istantaneamente. (#1330)
  • Ora è possibile avviare i giochi in modalità debug (gioco di prova) ed è possibile aggiungere due nuovi pulsanti all’interfaccia touch: Apri il menu di debug e Attraversa i muri. (#2244)
  • L’app per Android ora può avviare i giochi che si trovano all’interno degli archivi ZIP. In precedenza, questa funzione era disponibile solo per le versioni Player che utilizzavano il browser di gioco integrato. (#2760)
  • Non siamo sicuri di quando ciò sia iniziato, ma nelle versioni più recenti di Android, il riquadro di navigazione (quel menu scorrevole che appare da sinistra) a volte appariva dietro la finestra del gioco. Ci è voluto molto tempo per risolverlo. Abbiamo provato molte soluzioni diverse su Internet con vari gradi di successo. Se mai lo incontri nel tuo progetto: Ecco la soluzione. (#2885)
Multi-Touch interrotto su Android quando si utilizza un dispositivo Samsung

Siamo a conoscenza di un problema con l’input tattile sui dispositivi Samsung con Android 11 e versioni successive. La causa di questo problema sembra essere il Game Booster in bundle con il sistema operativo.

Game Booster funziona riducendo la risoluzione dei giochi per aumentarne la frequenza dei fotogrammi. Per non interrompere alcun gioco, deve tradurre le coordinate tattili in modo che si adattino ancora al sistema di coordinate del gioco ridotto.

Sfortunatamente, Game Booster ha un bug: se c’è qualcosa in cima al gioco, come i pulsanti toccabili creati tramite l’interfaccia utente di Android, questi pulsanti riceveranno anche le coordinate tattili modificate, il che non è corretto perché i pulsanti utilizzano la risoluzione nativa per il posizione. Non è possibile rilevare il Game Booster e di conseguenza tutti i calcoli all’interno dell’interfaccia touch sono errati.

Questo bug è noto da due anni. A loro non importa. Ecco un bel post sul forum su questo bug nel forum Samsung. Ha tre risposte: Tutte da spambots. Per favore, smetti di comprare telefoni Samsung.

Non è la prima volta che introducono bug nella loro versione di Android. Abbiamo già perso così tante ore negli ultimi anni a risolvere bug che si verificavano solo sui dispositivi Samsung.

Il problema principale qui è l’enorme quota di mercato di Samsung: Quando rompono qualcosa, riceviamo molte recensioni da una stella perché la colpa è degli sviluppatori di app. Non possiamo ignorare i bug perché danneggiano la valutazione.

Inoltre non abbiamo dispositivi Samsung e non abbiamo soldi per comprarli. Se sei uno sviluppatore con un dispositivo interessato: inviaci una patch con una soluzione alternativa.

Correzione di arresti anomali

  • L’impostazione del limite FPS su 0 dalla riga di comando (--fps-limit 0) non si blocca più con un’eccezione in virgola mobile (dividi per zero). L’impostazione del limite su 0 ora rimuove il limite di frame. Oltre al limite di fps ora è disponibile nella nuova scena delle impostazioni. (#2679)
  • Il caricamento degli archivi ZIP non si blocca più su alcune delle nostre piattaforme homebrew. (#2682)
  • Il comando Load event non si arresta più in modo anomalo a causa di un bug use-after-free: i vecchi dati tilemap erano ancora referenziati e utilizzati. (#2695)

Regressioni corrette

  • In Emscripten abbiamo avuto un easter egg quando abbiamo selezionato Esci dal gioco: è stato visualizzato il testo “È ora possibile spegnere il browser”. Questo è un messaggio simile a quello visualizzato da Windows 95 e 98 dopo aver spento il PC. Questa funzione è stata interrotta per un po’ di tempo, ma ora funziona di nuovo. (#1899)
  • Quando ci si sposta verso il basso, i caratteri non si sovrappongono più. (#2550).
  • Un’ottimizzazione delle prestazioni nel renderer è stata un po’ troppo aggressiva: quando un’immagine ruotava, le parti trasparenti venivano renderizzate in nero durante la dissolvenza. (#2667)

Lingua/Traduzione

La funzionalità di traduzione introdotta nell’ultima versione è diventata sempre più popolare e soo state aggiunte molte funzionalità per renderla quanto più fruibile. Se si ha intenzione di utilizzarla si consiglia di leggere la guida alla traduzione.

  • Modifica sostanziale:  La cartella Languages ​​è stata rinominata in Language per corrispondere alla convenzione di denominazione di altre cartelle di gioco. A causa di molte limitazioni, la funzione di traduzione non è stata utilizzata molto nella versione 0.7 e la build continua ha subito questa modifica per un anno, rendendola una modifica a basso rischio.
  • Notevoli le nuove funzionalità cintrodotte nel frattempo (per una spiegazione dettagliata, consultare la suddetta guida).
  • Poiché RPG Maker 2003 è un software molto vecchio, utilizza la codifica locale del sistema. EasyRPG Player è compatibile con questo (più alcune euristiche per rilevare automaticamente la codifica corretta). Ora, con la funzione di traduzione questo, ha comportato la perdita di dati nei salvataggi perché se il testo non può essere visualizzato nella codifica, il testo viene eliminato. Quando una traduzione è attiva, il testo nel salvataggio viene ora memorizzato in Unicode per prevenire la perdita di dati. (#2887)
  • La funzione di traduzione ora è disponibile nel web player. (#2723)
  • Il caricamento delle traduzioni ora funziona quando il gioco corrente viene avviato dal browser del gioco o si trova all’interno di un archivio ZIP. (#2715)
  • Il nome dell’attore nella condizione Il nome dell’attore è ora traducibile. (#2831)
  • Il testo visualizzato da Show String Picture è traducibile. È possibile specificare un codice lingua per ogni lingua. Questo visualizzerà i caratteri corretti nella scena Enter Hero Name e utilizzerà i font corretti per il rendering. Questo aiuta anche con il problema di unificazione CJK menzionato in precedenza. (#2825)
  • Alcune modifiche sono semplici: La finestra di aiuto che appare quando si seleziona una lingua nella schermata del titolo ora rispetta l’impostazione della trasparenza. (#2690)
  • La selezione della lingua non andrà più in overflow quando sono disponibili più di 9 lingue. Questo può sembrare un oscuro caso limite, ma lo Yume Nikki Online Project, che utilizza un fork del nostro web player, raggiunge questo limite per alcuni giochi.

Audio

  • Durante la riproduzione di un file WAV, la condizione BGM completato un loop ora restituirà sempre false (questo è un bug di RPG_RT e dobbiamo reimplementare i bug). Questo bug è stato abusato in Yume2kki (ゆめ2っき) 0.120 patch 8 per rilevare EasyRPG Player e teletrasportarsi su mappe diverse rispetto a RPG_RT. Si prega di non eseguire tale rilevamento del motore. Cambia l’esperienza su diverse piattaforme e può portare a segnalazioni di bug errate.
  • Già che c’eravamo, abbiamo verificato altri casi limite e abbiamo notato che anche questo controllo deve restituire false se al momento non viene riprodotto alcun BGM.
  • Yume2kki (ゆ め 2 っ き) utilizza velocità di riproduzione compromesse per musica ed effetti sonori superiori a quelle normalmente supportate. Il limite è stato aumentato per riprodurli correttamente. (#2590 , #2706)
  • Abbiamo tentato di correggere glitch audio (crepitio e pop) quando la musica si ripete in Yume2kki (ゆめ2っき). Ora è meglio di prima ma non è ancora l’ideale. Il nostro codice audio mostra davvero la sua età. ( #2666 )
  • La riproduzione di file wav molto brevi non interromperà più l’audio del lettore. (#2950)
  • I file Mod/Tracker vengono riprodotti nuovamente nella versione Windows.

MIDI

  • FluidSynth ora cerca soundfonts in più posizioni (oltre a easyrpg.soundfont nella directory del gioco): Tramite la riga di comando --soundfont, tramite la variabile di ambiente SDL_SOUNDFONTS e ora controlla anche il percorso di ricerca predefinito del sistema operativo. (#2300)
  • La musica riprodotta quando si dorme in una locanda ora viene interrotta dopo 10 secondi (#2611) e quando si utilizza il dispositivo MIDI nativo (ad es. Windows MIDI senza soundfont) la musica della locanda ora viene riprodotta. (#2689)
  • Quando si utilizzava un dispositivo MIDI nativo era possibile corrompere la riproduzione tra i brani perché il dispositivo non era stato resettato correttamente. Per risolvere questo problema stiamo inviando ora un evento SysEx GM On. (#2824) Tuttavia questo non corregge tutti i giochi. Siamo a conoscenza di file MIDI più problematici in Toilet in Wonderland che hanno un problema diverso.

Mappa e interprete

  • In Yume2kki (ゆめ2っき) non era possibile spostarsi passando da Christmas World a Exhibition. Il problema qui è che le coordinate del bersaglio del teletrasporto fuori limite. Beh, non proprio fuori dai limiti perché la mappa è in loop, ma il modo in cui viene gestito il loop è un po’ diverso da RPG_RT. Abbiamo aggiunto il codice che garantisce che il movimento sulle mappe in loop funzioni correttamente anche quando tecnicamente è fuori limite. (#2716)
  • Quando si eseguono calcoli con variabili, RPG_RT blocca i valori nelle variabili in un intervallo da -9.999.999 a 9.999.999. Abbiamo fatto lo stesso, ma quando si moltiplicavano due numeri grandi era possibile superarli. Anche Maniac Patch ha innalzato il limite dell’intervallo e ora è possibile utilizzare l’intero intervallo intero a 32 bit. Ciò ha reso ancora più evidente che abbiamo problemi di overflow. Utilizziamo funzioni speciali del compilatore come __builtin_add_overflow ora per rilevare l’overflow e bloccare correttamente il risultato quando si verifica. (#2650 , #2734)
  • Corretta una piccola differenza nella logica di rendering: quando due eventi si trovano sulla stessa coordinata y, lvengono renderizzati in base all’ordine di creazione. Tuttavia RPG_RT li rende da destra a sinistra. Questa logica ora è stata implementata. Già che c’eravamo, abbiamo anche cambiato il comportamento di rendering per gli eventi sovrapposti (stesse coordinate x e y): qui l’ordine è ora per ID. Questo impedisce lo sfarfallio. (#2816)
  • Il comando dell’evento di scuotimento dello schermo ha spostato la finestra nella direzione sbagliata. (#2826)
  • I bersagli di teletrasporto ora vengono ordinati quando vengono aggiunti. I bersagli del teletrasporto erano già stati ordinati al salvataggio. Ora li ordiniamo solo un po’ prima per fornire un ordinamento coerente. (#2913)
  • Quando si utilizzavano i comandi che alterano l’orientamento in un percorso di movimento, la direzione del movimento non veniva aggiornata. ( #2790 )
  • Ora siamo più severi sulla separazione delle funzionalità del motore: quando viene utilizzato un motore RPG Maker 2000, non eseguirà mai i comandi evento di RPG Maker 2003. Ciò previene i problemi nei giochi creati inizialmente nel 2003 ma spostati successivamente nel 2000. ( #2945 )
  • Ora puoi configurare varie patch per migliorare la compatibilità del gioco. Con Common This Event puoi usare i riferimenti This Event negli eventi comuni. Per impostazione predefinita, questo era possibile solo per i giochi di versione inglese di RPG Maker 2003, ma esistevano patch non ufficiali che lo aggiungevano anche ai motori più vecchi. Con Unlock Pics è possibile usare i comandi immagine mentre viene mostrata una finestra di messaggio. Qui vale lo stesso: abilitato nelle versioni in inglese per impostazione predefinita, ma per le altre esistevano patch non ufficiali. Già che c’eravamo, abbiamo disabilitato il supporto per Ineluki Key Patch per impostazione predefinita, tranne quando viene trovato un harmony.dll o si accede tramite la stessa configurazione. Vedere la pagina del manuale per tutte le impostazioni.
  • Per migliorare il rilevamento del motore, il numero di loghi e le informazioni sulla versione ora vengono estratti da RPG_RT.exe. (#2923) Un motore rilevato in modo errato interrompe il comando key input event perché cambia tra le versioni. Questo risolve i giochi Pocket Quest (#2221), Grave Spirit (#2606) e 세포신곡 (Cell of Empireo#2614) e probabilmente molti altri. Questi miglioramenti del rilevamento automatico non funzioneranno durante l’esecuzione nel web player, poiché RPG_RT.exe non è disponibile. Come regressione minore, questo interrompe anche il motore rilevato per .flow nel lettore web. Questo motore ha la versione del motore errata nel file di database e l’euristica per l’utilizzo del motore corretto ha danneggiato altri giochi. Tuttavia, tutto funziona bene localmente. Per il web player, è possibile sovrascrivere il motore con il parametro della riga di comando --engine o l’impostazione del motore in EasyRPG.ini .
  • Alcune transizioni, come Show Inward, ora vengono renderizzate correttamente. Il canale alfa è stato elaborato in modo errato, quindi invece di una dissolvenza, l’immagine era completamente nera. (#2901)

Sistema di Battaglia

L’implementazione del sistema di combattimento ora appare piuttosto solida, ma c’è ancora spazio per miglioramenti.

Quando più attori sono pronti nel sistema di battaglia di RPG Maker 2003, l’ordine in cui sono pronti ora viene ricordato. (#2775)

In Despoina il gioco si bloccava quando veniva usata l’azione Blind Strike. Blind Strike ha utilizzato l’animazione inattiva come animazione di attacco e questa animazione non è mai stata contrassegnata come terminata. (#2896)

El Heredero del Rey, gli eventi di battaglia non si sono innescati correttamente e in Wolfenhain non è stato possibile battere il cosiddetto Tor nel cosiddetto Zyklopenberge tramite il cosiddetto Wuchtattacke. 

Questo era un bug nel modo in cui venivano attivati gli eventi che dipendevano dal numero di turni: gli eventi che dipendono dai turni dell’attore vengono attivati ​​solo quando l’attore ha compiuto un turno, e lo stesso vale per i nemici. (#2753)

Sono state aggiunte molte nuove funzionalità di combattimento. Saranno utili quando l’editor sarà pronto. Sono troppi per discuterne. Per dirne alcuni:

  • La riga di comando di RPG Maker 2003 può essere disabilitato.
  • Attori e nemici possono essere immuni ai colpi critici o ai debuff degli attributi.
  • La percentuale di colpi per gli attacchi normali/senza armi può essere configurata e possono infliggere stati.
  • I nemici possono avere una forte difesa e l’attacco normale può attaccare l’intero gruppo.
  • Nemici: L’attacco normale prende di mira l’intero gruppo di giocatori.
  • Il sistema di combattimento RPG Maker 2000 può essere utilizzato nei giochi RPG Maker 2003.
  • Supporto per stringhe segnaposto RPG2kE nei giochi RPG Maker 2003.

Per l’elenco completo cliccare sul numero dell’edizione: #2697

FileFinder

  • La struttura dei dati di FileFinder è stata ottimizzata, rendendo l’analisi di directory di grandi dimensioni un po’ più veloce e richiedendo meno memoria. (#2306)
  • Le lettere di unità (e le cose che sembrano lettere di unità) ora vengono gestite in modo migliore: abbiamo testato la gestione delle unità solo su Windows e Windows considera sia C: che C:\ lettere di unità valide. Questo non è il caso su altri sistemi. Ad esempio, usiamo romfs:/ su Nintendo 3DS. romfs: non è considerato un percorso valido ma romfs:/ lo è. Per risolvere questo problema, il codice non rimuove più il / dopo il :. (#2256#2668#2787)
  • Quando manca una cartella, il codice di rilevamento RTP non controllerà le risorse in quella cartella mancante. Questo non era davvero un problema prima, ma il controllo dei file ora è così estremamente lento su Android (grazie allo Storage Access Framework) che ritarda l’inizio dei giochi di 30 secondi! (#2804)
  • Le directory mancanti ora vengono memorizzate nella cache per velocizzare le ricerche. (#2817)

Archivi zip

A partire dalla versione 0.7, il caricamento degli archivi ZIP è supportato, ma il formato è molto vecchio, quindi abbiamo riscontrato diversi file ZIP problematici:

  • Ora sono supportati gli archivi ZIP che utilizzano una barra rovesciata (\) come delimitatore di percorso interno. (#2739)
  • Le “cartelle compresse” create da Windows Explorer non memorizzano la dimensione del file nell’intestazione del file locale, ma solo nella directory centrale. La dimensione del file ora viene letta correttamente, aggiungendo il supporto per tali archivi. (#2836)

Per ridurre l’utilizzo della memoria, il gestore ZIP non memorizza più nella cache tutti i file decompressi. La decompressione è abbastanza veloce da rendere superflua questa cache. (#2788)

Salvataggi

  • Durante la modifica delle mappe, il lettore non eliminava i vecchi dati di animazione della battaglia e, durante il salvataggio, questi dati errati sono stati conservati. Il lettore visualizzerebbe un avviso durante il caricamento e continuerebbe, ma il caricamento dello stesso salvataggio in RPG_RT genererebbe solo un messaggio di errore. I dati ora vengono cancellati correttamente. (#2431#2597)
  • Non sappiamo come sia possibile, ma abbiamo ricevuto un salvataggio in cui l’elenco degli ID attore non era sequenziale. Poiché ci affidiamo a questi ID, questo ha interrotto molte funzionalità. Gli ID non sequenziali ora vengono rilevati e corretti quando viene caricato il salvataggio. (#2913)
  • Durante il caricamento della funzione Load dalla scena di debug, i vecchi dati degli eventi non sono stati completamente cancellati. (#2817)

Immagini e panorami

  • I simulatori di camminata come Yume2kki (ゆめ2っき) hanno una vasta comunità e fanno uso di panorami per vari effetti. I dettagli tecnici del posizionamento dei panorami sono difficili da spiegare (e non hanno molto senso), ma la maggior parte dei panorami dovrebbe ora essere posizionata correttamente. (#2195)
  • Quando un’immagine aveva sia la mappa che il livello di battaglia disabilitati, non veniva visualizzata affatto. RPG_RT tuttavia li visualizza invece sul livello mappa predefinito. (#2874)
  • Gli effetti di tono ora sembrano corretti quando la grafica sullo schermo utilizza un canale alfa semitrasparente. Questo bug ti ha colpito solo se stavi usando immagini a 32 bit, che sono un’estensione del nostro motore, o le modalità di fusione fornite da Maniac Patch. (#2755)

Piattaforma specifica

Parti di SDL1.2 sono state riscritte anche se sono ormai obsolete da anni. SDL è un livello di astrazione che fornisce output video e altro su tutti i sistemi operativi.

SDL2 è disponibile dal 2013, ma esistono ancora dispositivi portatili economici che utilizzano SDL1.2. Il motivo è principalmente che utilizzano l’hardware più economico disponibile senza nemmeno il rendering con accelerazione hardware.

Senza accelerazione hardware, SDL2 è più lento di SDL1.2. Stiamo parlando di dispositivi Anbernic come l’RG-300 o revisioni precedenti del Bittboy PocketGo. (#1640#2864)

Emscripten (Web Player)

  • I giochi che supportano l’input del mouse (e non ce ne sono molti, perché ci sono solo due modi per farlo: Ineluki’s Key Patch, che all’epoca era noto solo alla comunità tedesca, e il più recente Maniac Patch) ora possono essere giocati utilizzando l’input tattile, rendendoli riproducibili su smartphone e dispositivi simili. (#2694)
  • Yume2kki (ゆめ2っき) non è riuscito a caricare alcune risorse durante la riproduzione su sistemi turchi. Il problema qui è il casefolding: i nomi dei file di Windows non fanno distinzione tra maiuscole e minuscole, ma su tutti gli altri sistemi lo sono, quindi mettiamo tutto in minuscolo. Inoltre, il web player ha un database di nomi di file separato (index.json) perché non c’è modo di enumerare le directory sul web. Il modo in cui vengono gestite le lettere minuscole dipende dalle impostazioni locali del sistema e il turco ha un comportamento interessante: la versione minuscola della lettera I non è i ma ı, e questa mancata corrispondenza ha fatto fallire la ricerca del nome file. Abbiamo risolto questo problema utilizzando la root locale, che ha il casefolding indipendente dalla lingua del sistema. (#2786 , liblcf #442)
  • I bellissimi sfondi della battaglia in Mother: Cognitive Dissonance non si caricavano correttamente. In RPG Maker 2003, puoi specificare due sfondi di battaglia contemporaneamente. Sul web player, si sono cancellati a vicenda durante il download, quindi ne è stato mostrato solo uno. (#2893) solo per mostrare di nuovo lo sfondo in movimento.
  • I pulsanti del gamepad touch screen ora sono visibili quando il browser è in modalità a schermo intero. (#2900)
  • Il Web Player ora è a conoscenza di DPI che elimina i brutti artefatti di ridimensionamento. (#2900)
  • I controller di gioco ora funzionano nel web player, almeno nella maggior parte dei casi. Abbiamo notato che in Firefox su Linux la mappatura è completamente incasinata. Questo sembra essere un problema del browser, poiché funziona bene in Chromium. (#1156)
  • I tasti della tastiera ora sono indipendenti dal layout della tastiera. I tasti premuti vengono solitamente registrati utilizzando codici di scansione. Ad esempio, lo scancode “Y” viene sempre inviato quando viene premuto il tasto che ha “Y” su una tastiera americana, anche su tastiere tedesche dove “Y” e “Z” sono scambiate. A causa di una limitazione nella libreria SDL2, i tasti della tastiera non erano indipendenti dal layout nel web player. Questo è stato ora corretto in modo che sia la parità di funzionalità con le altre versioni. (#2841)
  • La barra del titolo del browser visualizzerebbe titoli di gioco corrotti se contenessero caratteri non ASCII. Anche questo era un bug in SDL2. L’aggiornamento della libreria lo ha risolto, poiché sono passati a Unicode, che può visualizzare tutti i caratteri del mondo. (#2727)
  • Quando si utilizza la console Javascript, alcune versioni di Chrome hanno generato eccezioni che hanno interrotto l’esecuzione del lettore. (#2806)

Libretro

  • Quando si utilizza il core libretro, tutto l’input ora viene passato attraverso RetroPad. Solitamente supportavamo direttamente la tastiera, ma abbiamo notato che RetroArch aggancia molti tasti della tastiera che non ci vengono passati. Poiché ciò potrebbe confondere l’utente, abbiamo deciso di rimuovere le mappature della tastiera. Puoi ancora mapparli ai tasti RetroPad. (#2752)
  • Quando si utilizza il nostro core libretro in RetroArch, i giochi all’interno degli archivi ZIP sono ora caricabili. (#2955)

Mac OS

  • Il binario del Player ora funziona in modo nativo su dispositivi macOS ARM64 invece di utilizzare l’emulazione x64.

Nintendo Switch

  • Il porting su Switch ora gestisce gli eventi inviati dal sistema operativo, come l’aggancio e lo sgancio o il passaggio al menu principale e viceversa. (#2698)

Nintendo 3DS

  • Il sistema audio è stato riscritto per correggere alcuni problemi audio. (#2827)
  • Lo schermo inferiore ora mostra un indicatore della batteria. (#2827)

PlayStation Vita

  • Le coordinate del touch screen ora vengono calcolate correttamente. (#2683)
  • I parametri di avvio forniti dal servizio psgm:play ora vengono elaborati. Ciò consente ai lanciatori di eseguire i giochi direttamente tramite il lettore. (#2789)
  • L’ultima versione di vita2dlib ora è in uso. Questo interrompe il supporto degli shader, ma il fork con il supporto degli shader non viene aggiornato da 8 anni. (#2791)

Wii

  • Dopo un aggiornamento del compilatore, il caricamento dei salvataggi sulla versione Wii si era interrotto, questo perché il compilatore aveva deciso di ottimizzare parte del codice di scambio di byte richiesto sul Wii (un sistema big endian). (#2672liblcf #438)

Windows

Questa sarà l’ultima versione che supporta il sistema Windows Vista. Successivamente il compilatore a Visual Studio 2022 verrà aggiornato, rendendo Windows 7 la versione minima supportata.

La versione per Windows ora è un po’ a conoscenza dei DPI. Ciò significa che il lettore non appare più sfocato sui display ad alta risoluzione. Tuttavia, la finestra stessa non aumenterà di dimensioni.

  • Questo cambierà quando verrà rilasciato SDL3, che ha un supporto adeguato per DPI più elevati su Windows. (#2958)
  • Il testo di debug nel terminale di Windows ora viene visualizzato correttamente. (#2715)

Download: EasyRPG Player v0.8.0 “Paralyze”

Fonte: blog.easyrpg.org

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.