banner

Blog

May 18, 2024

Devo prenderli tutto il tempo

I giochi Pokémon, apprezzati da persone di tutte le età, hanno catturato il cuore di milioni di persone in tutto il mondo sin dalla loro uscita. I giochi mirano a catturare e collezionare varie creature conosciute come Pokémon. Mentre i giocatori incontrano una varietà di questi esseri fantastici durante il loro viaggio, la vera eccitazione deriva dalla ricerca di Pokemon rari. Queste creature sfuggenti, con le loro abilità uniche e design accattivanti, rappresentano una sfida che mette alla prova le abilità, la pazienza e la determinazione dell'allenatore.

I Pokémon rari non vengono semplicemente consegnati ai giocatori; spesso devono essere ricercati in luoghi specifici o durante eventi speciali. Nella loro ricerca per catturare Pokémon rari, gli allenatori potrebbero dover impiegare varie tattiche, come l'uso di Poke Ball speciali, indebolire il Pokémon bersaglio senza metterlo KO e sfruttare i suoi punti deboli. Alcuni Pokémon rari potrebbero addirittura richiedere il completamento di missioni o enigmi intricati prima di rivelarsi, aggiungendo livelli di complessità alla sfida.

Molte persone credono che la sfida sia diventata troppo grande in alcuni dei giochi più recenti, poiché alcuni Pokémon impiegano settimane di gioco per essere catturati. Lo YouTuber Dinones è un grande fan del gioco Pokémon Diamante Brillante per Nintendo Switch, ma ritiene decisamente che i Pokémon più rari, soprattutto quelli brillanti, siano troppo difficili da catturare. Apparentemente Nintendo aveva un generatore di numeri casuali a 12 bit che non vedevano l'ora di usare in questo gioco, dando una possibilità su 4.096 che un Pokémon brillante appaia in una determinata battaglia.

Dinones ha fatto alcuni calcoli approssimativi e si è reso conto che potrebbero facilmente essere necessarie più di 40 ore di gioco per trovare un singolo Pokémon brillante. Come dice il famoso detto (che sto coniando proprio adesso), quando il gioco si fa duro, i duri si automatizzano. Dinones ha creato un sistema che esegue automaticamente il gioco, rileva se un raro Pokémon lucente è presente in una battaglia e, in tal caso, lo cattura. Questa configurazione è stata configurata per essere eseguita in loop, quindi può essere riprodotta per ore fino al raggiungimento dell'obiettivo. Mentre alcune persone potrebbero considerare questa mossa controversa, Dinones la vede semplicemente come una risposta pratica a probabilità irragionevoli.

Ci sono una serie di pezzi in movimento per far funzionare questo trucco. Innanzitutto, un dispositivo di acquisizione da HDMI a USB acquisisce i fotogrammi dell'immagine da Nintendo Switch durante la riproduzione del gioco. Successivamente, con l'aiuto di uno strumento da lui creato, Dinones ha trovato i colori presenti nei Pokémon lucidi che non sono presenti nelle loro controparti normali. Ciò fornisce una firma che può essere rilevata durante una battaglia utilizzando OpenCV.

Per controllare il gioco, è stata sfruttata un'applicazione chiamata NXBT. Ciò consente di inviare programmaticamente i comandi a uno Switch tramite Bluetooth, come se provenissero da un Joy-Con. Infine, utilizzando questi pezzi, la logica è stata codificata in uno script Python che avvierà il gioco, entrerà in battaglia e valuterà se è presente o meno un Pokémon lucente. In caso contrario, viene emesso un soft reset e il processo viene riavviato. Se viene trovato un Pokémon lucente e sfuggente, viene immediatamente catturato da una speciale Master Ball che non può fallire, quindi il gioco viene messo in pausa. L'intero sistema funziona su un Raspberry Pi in modo che Dinones non abbia bisogno di ascoltare il ronzio della ventola sul suo computer principale durante le lunghe ore di caccia automatizzata dei Pokémon.

Se hai bisogno di allontanarti dal tuo Switch perché devi mangiare un boccone, o magari andare al lavoro per poter continuare a mangiare in futuro, ma vuoi comunque catturare un inafferrabile Pokémon lucente, allora Dinones' il lavoro potrebbe interessarti. Fortunatamente, ha rilasciato il codice sorgente su GitHub per chiunque desideri replicare il progetto.

CONDIVIDERE