View a markdown version of this page

GAMESEC03-BP03 Usa il tuo servizio di backend di gioco per convalidare le richieste dei giocatori di partecipare a una partita multiplayer - Games Industry Lens

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

GAMESEC03-BP03 Usa il tuo servizio di backend di gioco per convalidare le richieste dei giocatori di partecipare a una partita multiplayer

In genere, nelle partite multiplayer, un giocatore partecipa a una sessione di gioco selezionando un'opzione direttamente da un elenco di sessioni disponibili, oppure invia una richiesta per trovare una partita. Quest'ultimo approccio attribuisce allo sviluppatore del gioco la responsabilità di individuare una sessione di gioco idonea e di fornire le informazioni di connessione (di solito un indirizzo IP e un numero di porta) al client di gioco del giocatore. L'implementazione può variare a seconda del genere di gioco che stai sviluppando, ma in ogni caso, è una buona pratica di sicurezza eseguire la convalida lato server della richiesta di iscrizione di un giocatore a una partita.

Livello di rischio associato se questa best practice non fosse adottata: medio

Guida all’implementazione

Ad esempio, in una partita multigiocatore basata su sessioni, la richiesta di un giocatore di partecipare a una sessione di gioco deve essere convalidata dal software del server di gioco con il servizio di matchmaking di backend di gioco prima di autorizzare la connessione al server. Quando un giocatore richiede di partecipare a una sessione di gioco, il server di gioco dovrebbe verificare la richiesta di un identificatore univoco, come un ID di sessione del giocatore e un ticket generato dal server che era stato precedentemente fornito al client di gioco dal tuo servizio di matchmaking di backend di gioco.

Dopo aver avviato la connessione al server di gioco, il software lato server può utilizzare queste informazioni per verificare con il servizio di matchmaking che la richiesta di connessione del giocatore sia valida e verificare che il giocatore non si stia unendo a un posto precedentemente riservato nella sessione di gioco a un altro giocatore. 

Per i giochi ospitati su Amazon GameLift, consulta client/server Interazioni di gioco con Amazon GameLift Servers per un esempio di come può essere implementato questo tipo di convalida lato server.

Esempio del cliente

Durante il lancio iniziale AnyCompany della versione beta di Games, hanno scoperto che i giocatori aggiravano il loro sistema di matchmaking collegandosi direttamente ai server di gioco, causando seri problemi di integrità competitiva. Quando i giocatori di alto livello hanno scoperto di poter condividere gli indirizzi IP dei server con gli amici, hanno iniziato a eludere il sistema di matchmaking basato sulle abilità, con il risultato che i giocatori esperti si univano alle partite alle prime armi e creavano un'esperienza frustrante per i nuovi giocatori. AnyCompany Games ha risposto implementando un sistema di convalida lato server che generava ticket di sessione unici per ogni richiesta di matchmaking. Il sistema richiedeva sia i ticket di richiesta del giocatore che quelli del matchmaking IDs e verificava i tentativi di connessione con il servizio di matchmaking di backend.

Passaggi dell’implementazione

  • Convalida le richieste di iscrizione dei giocatori sul lato server utilizzando identificatori univoci come la sessione del giocatore e i ticket generati dal server. IDs

  • Conferma la validità delle richieste di connessione con il servizio di matchmaking per bloccare l'accesso non autorizzato.

  • Verifica che i posti riservati nelle sessioni di gioco non siano accessibili a giocatori non autorizzati durante il processo di convalida.