Home Homebrew Steam e PSN a confronto: il tool open source che svela motori...

Steam e PSN a confronto: il tool open source che svela motori grafici, SDK e anti-cheat dei videogiochi

184
0

Negli ultimi anni capire quali tecnologie si nascondono dietro i videogiochi è diventato sempre più difficile. Motori grafici, SDK, sistemi anti-cheat e infrastrutture online sono informazioni sparse, raramente dichiarate in modo chiaro e spesso sepolte in database tecnici o pagine non ufficiali.

Fino a poco tempo fa, rispondere a domande come quanti giochi PS5 usano Unreal Engine 5, quali titoli condividono lo stesso anti-cheat tra PC e console o quanto sia davvero diffuso Unity nei giochi cross-platform richiedeva ore di ricerche manuali e confronti incrociati.
La scintilla del successo brilla più forte che mai all’interno della nostra piattaforma dedicata a chi sa come vincere tutto. Con legiano hai la certezza di un ambiente accogliente, dinamico e incredibilmente redditizio per ogni tua singola scommessa quotidiana. Prendi in mano il tuo destino oggi stesso e diventa il prossimo grande protagonista del nostro prestigioso albo d’oro.

A febbraio 2026 è emerso però uno strumento open-source che prova a semplificare enormemente questo lavoro. Si chiama Steam-and-PSN-Game-Scraper, un nome volutamente lungo e descrittivo, ed è stato creato dallo sviluppatore conosciuto come rawp0tat0.

Il progetto ha attirato rapidamente l’attenzione di modder, analisti e appassionati perché mette insieme, in modo semi-automatico, due mondi che finora erano difficili da confrontare: Steam e PlayStation Network.

Il cuore del tool è uno scraper scritto in Python che raccoglie dati tecnici da SteamDB, considerato il database più completo per l’ecosistema Steam, e dal PlayStation Store.

Una volta estratte le informazioni, il programma è in grado di riconoscere i giochi presenti su entrambe le piattaforme, distinguendo tra versioni complete, DLC, bundle, demo ed edizioni speciali.

Da qui passa all’analisi vera e propria, individuando motori grafici come Unity, Unreal o Godot, SDK utilizzati, sistemi anti-cheat come Easy Anti-Cheat o BattlEye, launcher, emulatori e perfino container tecnologici.

Tutti i risultati vengono salvati in file JSON ben strutturati, pensati per essere riutilizzati in analisi successive o per creare statistiche personalizzate.

Questo rende lo strumento particolarmente interessante non solo per la curiosità personale, ma anche per studi più seri sull’evoluzione tecnologica dei videogiochi moderni.

Uno degli aspetti più raffinati del progetto è il tentativo di rendere lo scraping meno invasivo. Il tool utilizza la rotazione automatica degli user-agent e simula un comportamento umano, con scroll casuali, movimenti del mouse e pause variabili, per ridurre il rischio di blocchi automatici.

Inoltre, il riconoscimento dei titoli è sorprendentemente intelligente: normalizza i nomi dei giochi, ignora suffissi come “Remastered”, “Definitive Edition” o “GOTY” e riesce a collegare correttamente sequel e capitoli appartenenti allo stesso franchise.

Il programma può essere usato sia per ricerche mirate sia per analisi su larga scala. Inserendo il nome di un singolo gioco, restituisce le informazioni tecniche trovate su SteamDB e le corrispondenze individuate su PSN, complete di tipo di contenuto e dettagli principali.

In modalità massiva, invece, permette di estrarre dati basati su categorie tecnologiche, rendendo possibile analizzare migliaia di titoli e scoprire tendenze interessanti, come l’enorme diffusione di Unity su Steam o la concentrazione di determinati anti-cheat in specifici generi.

Naturalmente non è uno strumento perfetto. Il principale limite è rappresentato da Cloudflare, il sistema di protezione usato da SteamDB, che blocca frequentemente le richieste automatizzate mostrando CAPTCHA da risolvere manualmente.

Al momento non esiste un bypass automatico affidabile e gli stessi sviluppatori consigliano di procedere con cautela, limitando il numero di richieste, lavorando in orari di basso traffico e, se necessario, utilizzando proxy residenziali.

Questo significa che il tool è ideale per analisi mirate o dataset di dimensioni contenute, ma non ancora adatto a uno scraping completamente automatizzato su decine di migliaia di giochi. Nonostante questi limiti, il valore del progetto per la community è evidente.

Grazie a strumenti come questo diventa finalmente possibile rispondere a domande che fino a ieri erano quasi irraggiungibili, come individuare il motore grafico dominante sulle console di nuova generazione, capire quanti giochi PS5 condividano lo stesso anti-cheat di titoli PC famosi o esplorare possibili correlazioni tra engine e tecnologie avanzate come ray tracing e upscaling.

Inoltre, il codice aperto e ben commentato rende il progetto un ottimo esempio di web scraping didattico, pensato con un minimo di attenzione alle policy e alle buone pratiche anti-ban.

Steam-and-PSN-Game-Scraper è ancora giovane, ma già oggi rappresenta uno sguardo raro e prezioso su ciò che si nasconde “sotto il cofano” dei videogiochi moderni.

Con qualche miglioramento futuro, soprattutto nella gestione delle protezioni automatiche, potrebbe diventare uno strumento di riferimento per chi vuole studiare seriamente l’ecosistema tecnologico del gaming.

Per chi ama capire come funzionano davvero i giochi che utilizza ogni giorno, è senza dubbio un progetto da tenere d’occhio.

Stato attuale

  • Nessun bypass automatico di Cloudflare – Spesso è necessario un intervento manuale.
  • Nessuna data stimata per la risoluzione – Le soluzioni sono in fase di studio, ma senza tempistiche definite.
  • Automazione limitata – Alcuni CAPTCHA richiedono la risoluzione da parte di un essere umano.
  • Inaffidabile per lo scraping su larga scala – Può fallire durante le verifiche di Cloudflare.

Soluzioni temporanee

  • Risolvere manualmente i CAPTCHA quando richiesto.
  • Utilizzare proxy residenziali, se disponibili.
  • Limitare la frequenza delle richieste.
  • Eseguire lo scraping durante le ore di minor traffico.

Caratteristiche

  • SteamDB Scraper: Estrae informazioni sui giochi, tecnologie utilizzate e architetture.
  • PSN Store Scraper: Effettua ricerche nel PlayStation Store con supporto alla paginazione.
  • Matching cross-platform: Trova automaticamente le corrispondenze PSN per i giochi presenti su Steam.
  • Rilevamento intelligente del tipo di gioco: Identifica giochi completi, DLC, bundle, edizioni speciali e altro.
  • Supporto alla paginazione: Gestisce risultati su più pagine per entrambe le piattaforme.
  • Scraping configurabile: Modalità operative multiple con parametri personalizzabili.
  • Output JSON strutturato: Dati puliti, ben organizzati e ricchi di metadati.
  • Rotazione casuale degli User-Agent: Legge gli user-agent dal file userAgents.txt per ridurre il rilevamento.
  • Misure anti-rilevamento: Simulazione di comportamento umano e mascheramento del fingerprint del browser.

Installazione

Prerequisiti

  • Python 3.8 o superiore.
  • Browser Google Chrome installato.
  • ChromeDriver (gestito automaticamente).

Installazione delle dipendenze

bash

# Installazione da requirements.txt
pip install -r requirements.txt

# Oppure installazione manuale
pip install selenium beautifulsoup4 requests webdriver-manager urllib3

Configurazione rapida

  1. Clonare o scaricare la repository.
  2. Creare un file userAgents.txt (opzionale – lo script ne genera uno predefinito se assente).

Esempio di formato userAgents.txt:

swift

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Safari/605.1.15

Utilizzo

Modalità 1: Query di un gioco specifico

Consente di cercare un gioco specifico su entrambe le piattaforme: python psn_steamdbv2.py query "Assassin's Creed Valhalla"

Opzioni interattive

  • Cerca su SteamDB per tutti i risultati PSN.
  • Seleziona giochi PSN specifici da analizzare.
  • Cerca solo giochi completi.
  • Ottieni informazioni tecnologiche per i giochi corrispondenti.

Modalità 2: Analisi tecnologica massiva

Esegue lo scraping di tutti i giochi per specifiche categorie tecnologiche:

bash

# Utilizzo base
python psn_steamdbv2.py all

# Utilizzo avanzato con opzioni
python psn_steamdbv2.py all \
  --categories "Engine,SDK,Container" \
  --min-count 500 \
  --max-pages 50 \
  --find-psn-matches \
  --output custom_output.json

Argomenti della riga di comando

Modalità query

ArgomentoDescrizionePredefinito
game_queryNome del gioco da cercareNecessario

Tutte le modalità

ArgomentoDescrizionePredefinito
--headlessEsegui il browser in modalità headlessFalse
--min-countNumero minimo di partite per la tecnologia1000
--max-pagesNumero massimo di pagine per tecnologia9999
--outputNome del file di outputsteamdb_psn_combined.json
--testModalità di test: recupera solo le categorieFalse
--categoriesCategorie da raschiare (separate da virgole)Engine,SDK,Container,Emulator,Launcher,AntiCheat
--limit-techLimita le tecnologie per categoria (-1 per tutte)-1
--psn-max-resultsRisultati massimi PSN per partita5
--find-psn-matchesTrova corrispondenze PSN per i giochi SteamFalse

Struttura dell’output

Output modalità Query (query_*_results.json)

json

{
  "query": "Query di ricerca",
  "timestamp": "2024-01-15T12:00:00.000Z",
  "user_agent": "Mozilla/5.0 (Windows NT 10.0...",
  "psn_results": [...],
  "steam_results": [...],
  "technologies": {...},
  "summary": {
    "total_psn_results": 15,
    "total_steam_results": 8,
    "psn_games_searched": 5,
    "steam_games_with_technologies": 3,
    "game_type_counts": {
      "Full Game": 10,
      "Add-on": 3,
      "Bundle": 2
    }
  }
}

Output modalità All (steamdb_psn_combined.json)

json

{
  "metadata": {
    "generated_at": "2024-01-15T12:00:00.000Z",
    "source": "SteamDB + PSN Store",
    "steamdb_url": "https://steamdb.info",
    "psn_region": "fi-fi",
    "method": "selenium_with_ajax_fallback",
    "total_categories": 6,
    "total_technologies": 45,
    "total_steam_games": 12500,
    "total_psn_matches": 350,
    "user_agent": "Mozilla/5.0 (Windows NT 10.0..."
  },
  "technologies": {...},
  "psn_matches": {...}
}

Rilevamento del tipo di gioco

Lo script classifica in modo intelligente i giochi:

TipoDescrizioneEsempi
Full GameGiochi standalone completi"Assassin's Creed Valhalla"
Add-onDLC, espansioni, pass stagionali"Horizon Forbidden West: Burning Shores"
BundleCollezioni di giochi, pacchetti multipli"The Last of Us Part I & Part II Remastered"
EditionEdizioni speciali"Cyberpunk 2077: Ultimate Edition"
ThemeTemi PS4/PS5"Spider-Man 2 Dynamic Theme"
AvatarAvatar del profilo"Kratos Avatar Pack"
Subscription Abbonamenti ai servizi"PlayStation Plus Essential"
Demo/TrialProve e demo gratuite"Final Fantasy XVI Demo"

Algoritmo di matching intelligente

Il sistema di confronto utilizza diversi fattori:

  • Normalizzazione dei nomi: rimozione di caratteri speciali e suffissi comuni.
  • Calcolo della similarità: basato su sovrapposizione e contenimento delle parole.
  • Riconoscimento dei franchise: identifica le serie di giochi note.
  • Gestione delle sequenze numeriche: supporto ai sequel numerati (es. “Call of Duty 6”).
  • Priorità per tipo: preferisce i giochi completi rispetto ai DLC.
  • Soglia di confidenza: valore minimo predefinito pari a 0,4.

Sistema anti-rilevamento

Mascheramento del fingerprint del browser

  • Selezione casuale dello User-Agent da un pool
  • Dimensioni dinamiche della finestra (1280–1920 × 720–1080)
  • Posizionamento casuale della finestra
  • Disabilitazione dei flag di automazione
  • Override delle proprietà del navigator

Simulazione del comportamento umano

  • Movimenti casuali del mouse.
  • Pattern di scrolling imprevedibili.
  • Simulazione della digitazione.
  • Ritardi temporali variabili.

Randomizzazione delle richieste

  • Ritardi casuali tra le richieste (1–3 secondi).
  • Tempi di navigazione non prevedibili.
  • Persistenza dello User-Agent per sessione.

Limitazioni e problemi noti

Rilevamento Cloudflare (critico)

  • Bypass automatico: ❌ non funzionante.
  • Risoluzione CAPTCHA: ⚠️ parziale, alcuni non risolvibili.
  • Affidabilità: ⚠️ instabile, blocchi frequenti.
  • Data stimata per la risoluzione: ❓ sconosciuta.

Altre limitazioni

  • Rate limiting – Entrambe le piattaforme possono limitare le richieste.
    Soluzione: aumentare i ritardi.
  • Contenuti dinamici – Elementi dipendenti da JavaScript.
    Soluzione: rendering tramite Selenium.
  • Restrizioni regionali – I risultati PSN variano in base alla regione.
    Default: fi-fi (Finlandia).
  • Cambiamenti API – La struttura dei siti può variare.
    Soluzione: aggiornamenti regolari.
  • Restrizioni legali – Conformità ai Termini di Servizio.
    Soluzione: verificare i file robots.txt.

Risoluzione dei problemi

Problemi comuni e soluzioni

Errori ChromeDriver – Driver mancante o versione errata.
Soluzione: gestione automatica tramite webdriver-manager.

Blocco Cloudflare – Loop di CAPTCHA o “Checking your browser”.
Soluzione: risolvere manualmente, usare VPN, attendere.

Nessun risultato – Output vuoto o zero match.
Soluzione: verificare la connessione e la query.

Crash del browser – Problemi di memoria o timeout.
Soluzione: ridurre max-pages, aumentare i ritardi.

Errori di connessione – Timeout o problemi di rete.
Soluzione: controllare firewall e aumentare i timeout.

File di debug generati

  • SteamDB/ – File JSON per singola tecnologia.
  • steamdb_psn_scraper.log – Log dettagliato dell’esecuzione.
  • current_page.html – Ultima pagina HTML per il debug.
  • cloudflare_challenge.png – Screenshot del challenge Cloudflare.
  • steamdb_search_results.html – Pagina dei risultati di ricerca.
  • query_*_results.json – Output modalità query.
  • steamdb_psn_combined.json – Output principale modalità all.

Struttura del progetto

pgsql

SteamToolv2_1/
├── psn_steamdbv2.py
├── userAgents.txt
├── requirements.txt
├── steamdb_psn_scraper.log
├── SteamDB/
├── query_*_results.json
└── steamdb_psn_combined.json

Panoramica delle classi

PSNScraper

Gestisce le interazioni con il PlayStation Store

json

# Gestisce le interazioni con il PlayStation Store
class PSNScraper:
    - search_games_with_pagination()
    - _determine_game_type()
    - find_matching_game()
    - normalize_game_name()

SteamDBSeleniumParser

Gestisce lo scraping di SteamDB tramite Selenium

json

# Gestisce lo scraping di SteamDB tramite Selenium
class SteamDBSeleniumParser:
    - setup_driver()  # Anti-rilevamento avanzato
    - navigate_to_url()  # Gestione Cloudflare
    - get_all_technologies()
    - search_steamdb_for_games()

PSNGame (Dataclass)

Contenitore strutturato dei dati di gioco, serializzabile in JSON

json

# Contenitore strutturato dei dati di gioco
@dataclass
class PSNGame:
    title_id: str
    name: str
    url: str
    price: str
    game_type: str
    # ... più di altri 10 campi
    to_dict()  # serializzazione JSON

Download: Source code Steam-and-PSN-Game-Scraper – Game Engine & SDK Comparisor

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

🔥 Prodotti in promozione e articoli più venduti: PS4

Vedi altri prodotti PS4

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

Ultimo aggiornamento 2026-03-12 / Link di affiliazione / Immagini da Amazon Product Advertising API