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à.
Genera richieste di riempimento manuali da un servizio di backend
È consigliabile inviare le richieste di backfill da un servizio di gioco lato client in alternativa al server di gioco. Per utilizzare questa opzione, il servizio lato client deve disporre dell'accesso ai dati correnti sull'attività della sessione di gioco e sulle connessioni del giocatore; se il gioco utilizza un servizio di directory di sessione, questa potrebbe rappresentare una scelta adeguata.
Questo argomento presuppone che tu abbia già compilato i componenti di FlexMatch necessari e aggiunto correttamente i processi di abbinamento al server di gioco e a un servizio di gioco lato client. Per ulteriori dettagli sulla configurazione di FlexMatch, consulta la sezione Roadmap: Aggiungi il matchmaking a una soluzione di hosting Amazon GameLift Servers.
Per abilitare il backfill degli abbinamenti per il gioco, aggiungi la funzionalità seguente:
-
Invio delle richieste di backfill di abbinamento a un matchmaker e monitoraggio dello stato delle richieste.
-
Aggiornamento delle informazioni di abbinamento per la sessione di gioco. Per informazioni, consultare Aggiorna i dati delle partite sul server di gioco.
Come per altre funzionalità client, un servizio di gioco lato client utilizza l' AWS SDK con API. Amazon GameLift Servers Questo SDK è disponibile in C++, C# e altri linguaggi. Per una descrizione generale del client APIs, consulta l'Amazon GameLift ServersAPI Reference, che descrive l'API di servizio per Amazon GameLift Servers le azioni e i collegamenti alle guide di riferimento specifiche della lingua.
Per configurare un servizio di gioco lato client per il backfill dei giochi abbinati, completa le attività seguenti.
-
Attivare una richiesta di backfill. In genere, un gioco avvia una richiesta di backfill ogni volta che sono presenti uno o più slot giocatori vuoti su un gioco abbinato. È consigliabile collegare le richieste di backfill a circostanze specifiche, ad esempio ricoprire i ruoli di personaggi importanti o bilanciare i team. È inoltre opportuno limitare il backfilling in base alla durata della sessione di gioco. Qualunque sia il trigger utilizzato, saranno necessarie almeno le informazioni riportate di seguito. Puoi ottenere queste informazioni dall'oggetto della sessione di gioco (GameSession) chiamando DescribeGameSessionscon un ID della sessione di gioco.
-
Number of currently empty player slots ( Numero di slot giocatori attualmente vuoti). Questo valore può essere calcolato a partire dal limite massimo di giocatori e dal loro attuale numero in una sessione di gioco. Il numero di giocatori attuali viene aggiornato ogni volta che il server di gioco contatta il servizio Amazon GameLift Servers per convalidare la connessione di un nuovo giocatore o per segnalare un giocatore che ha abbandonato la sessione di gioco.
-
Creation policy (Policy di creazione). Questa impostazione indica se la sessione di gioco attualmente accetta nuovi giocatori.
L'oggetto della sessione di gioco contiene altre informazioni potenzialmente utili, tra cui l'ora di inizio della sessione di gioco, le proprietà di gioco personalizzate e i dati del matchmaker.
-
-
Creare una richiesta di backfill. Aggiungere del codice per creare e inviare le richieste di backfill degli abbinamenti a un matchmaker FlexMatch. Le richieste di backfill vengono gestite utilizzando questi client: APIs
Per creare una richiesta di backfill, richiamare
StartMatchBackfillcon le informazioni seguenti. Una richiesta di backfill è simile a una richiesta di abbinamento (consultare Richiedi il matchmaking per i giocatori), con la differenza che la richiesta di backfill identifica anche la sessione di gioco esistente. Per annullare una richiesta di backfill, richiamareStopMatchmakingcon l'ID del ticket della richiesta di backfill.-
ID biglietto: fornisci un ID del ticket di matchmaking (o scegli di generarli automaticamente). Puoi utilizzare lo stesso meccanismo per assegnare il ticket sia alle richieste di matchmaking che IDs a quelle di backfill. Tali ticket vengono elaborati nello stesso modo.
-
Matchmaker: identifica il nome di una configurazione di matchmaking da utilizzare. In genere, è consigliabile utilizzare per il backfilling lo stesso matchmaker utilizzato per creare l'abbinamento originale. Queste informazioni si trovano in un oggetto della sessione di gioco (GameSession),
MatchmakerDataproprietà, nella configurazione del matchmaking ARN. Il valore del nome è la stringa che segue ""matchmakingconfiguration/" (ad esempio, nel valore ARN ""arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MM-4v4", il nome della configurazione di abbinamento è "MM-4v4"). -
ARN della sessione di gioco: specifica la sessione di gioco da riempire. Utilizzare la proprietà
GameSessionIddall'oggetto della sessione di gioco; questo ID utilizza il valore ARN richiesto. I ticket di matchmaking (MatchmakingTicket) per le richieste di backfill hanno l'ID della sessione di gioco durante l'elaborazione; i ticket per le nuove richieste di matchmaking non ottengono un ID della sessione di gioco finché non viene piazzata la partita; la presenza di at game session ID è un modo per distinguere tra i biglietti per le nuove partite e i ticket per i backfill. -
Dati del giocatore: includi le informazioni sul giocatore (giocatore) per tutti i giocatori in corso nella sessione di gioco che stai completando. Queste informazioni consentono al matchmaker di individuare gli abbinamenti di giocatori migliori possibili per i giocatori attualmente nella sessione di gioco. Devi includere l'appartenenza alla squadra per ogni giocatore. Non specificare una squadra se non utilizzi il backfill. Se il server di gioco segnala con precisione lo stato di connessione del giocatore, dovrebbe essere possibile acquisire questi dati come segue:
-
Chiama DescribePlayerSessions() con l'ID della sessione di gioco per scoprire tutti i giocatori che sono attualmente connessi alla sessione di gioco. Ogni sessione giocatore include un ID giocatore. È possibile aggiungere un filtro dello stato per recuperare soltanto le sessioni giocatore attive.
-
Estrai i dati del giocatore dall'oggetto della sessione di gioco (GameSession),
MatchmakerDatadalla proprietà (vediInformazioni sui dati del matchmaker. Usa il giocatore IDs acquisito nel passaggio precedente per ottenere dati solo per i giocatori attualmente connessi. Dal momento che i dati del matchmaker non vengono aggiornati quando i giocatori abbandonano la sessione di gioco, sarà necessario estrarre soltanto i dati sui giocatori correnti. -
Per la latenza dei giocatori, se il matchmaker richiede i dati di latenza, raccogliere nuovi valori di latenza da tutti i giocatori attualmente connessi e includerli nell'oggetto
Player. Se i dati di latenza vengono omessi e sul matchmaker è impostata una regola di latenza, la richiesta non verrà abbinata correttamente. I dati di latenza sono necessari per le richieste di backfill soltanto per la regione in cui si trova attualmente la sessione di gioco. È possibile risalire alla regione della sessione di gioco dalla proprietàGameSessionIddell'oggettoGameSession; questo valore è un ARN in cui è inclusa la regione.
-
-
-
Monitorare lo stato della richiesta di backfill. Aggiungere del codice per restare in attesa degli aggiornamenti dello stato del ticket di abbinamento. È possibile utilizzare il meccanismo configurato per monitorare i ticket delle nuove richieste di abbinamento (consultare Tieni traccia degli eventi di matchmaking) tramite le notifiche eventi (impostazione preferita) o il polling. Anche se non è necessario attivare l'attività di accettazione da parte dei giocatori con le richieste di backfill, e anche se le informazioni sui giocatori vengono aggiornate sul server di gioco, è comunque necessario monitorare lo stato del ticket per gestire gli errori e i nuovi invii delle richieste.
Il matchmaker è in grado di elaborare soltanto una richiesta di backfill degli abbinamenti da una sessione di gioco alla volta. Se è necessario annullare una richiesta, richiamare StopMatchmaking. Se è necessario modificare una richiesta, richiamare
StopMatchmakinge inviare una richiesta aggiornata.Una volta che una richiesta di backfill ha esito positivo, il server di gioco riceve un oggetto
GameSessionaggiornato e gestisce le attività richieste per aggiungere nuovi giocatori alla sessione di gioco. Ulteriori informazioni su Aggiorna i dati delle partite sul server di gioco.