Passer de Gamelift

Si vous cherchez à passer d'AWS Gamelift à Edgegap, les étapes simples suivantes vous permettront de démarrer en un rien de temps. Avant de commencer, nous supposons que :

  • Vous utilisez actuellement AWS Gamelift

  • Vous avez actuellement une version fonctionnelle du serveur de jeu sur Gamelift

  • Vous avez déjà créé et déployé une application sur Edgegap

circle-info

Vous bénéficierez de bien plus d'emplacements avec la solution Edgegap.

Supprimer le SDK AWS Gamelift

La première étape pour passer à Edgegap est de supprimer le code qui initialise AWS Gamelift dans votre serveur de jeu. Ceci permet de réduire la charge et d'éviter des erreurs. Le code que vous devez supprimer ressemble probablement à ce qui suit :

Unity (C#)

using UnityEngine;
using Aws.GameLift.Server;
using System.Collections.Generic;

public class GameLiftServerExampleBehavior : MonoBehaviour
{
    //Ceci est un exemple d'intégration simple avec le SDK GameLift Server qui permettra aux processus du serveur de jeu de devenir actifs sur GameLift !
    public void Start()
    {
        //Identifier le numéro de port (codé en dur ici pour simplifier) sur lequel le serveur de jeu écoute les connexions des joueurs
        var listeningPort = 7777;

        //InitSDK établira une connexion locale avec l'agent de GameLift pour permettre une communication ultérieure.
        var initSDKOutcome = GameLiftServerAPI.InitSDK();
        if (initSDKOutcome.Success)
        {
            ProcessParameters processParameters = new ProcessParameters(
                (gameSession) => {
                    //Lorsqu'une session de jeu est créée, GameLift envoie une demande d'activation au serveur de jeu et transmet l'objet de session de jeu contenant les propriétés et autres paramètres du jeu.
                    //C'est ici qu'un serveur de jeu doit agir en fonction de l'objet session de jeu.
                    //Une fois que le serveur de jeu est prêt à recevoir des connexions de joueurs entrantes, il doit invoquer GameLiftServerAPI.ActivateGameSession()
                    GameLiftServerAPI.ActivateGameSession();
                },
                (updateGameSession) => {
                    //Lorsqu'une session de jeu est mise à jour (par ex. par un backfill FlexMatch), GameLift envoie une requête au serveur de jeu
                    //contenant l'objet session de jeu mis à jour. Le serveur de jeu peut alors examiner les
                    //matchmakerData fournis et gérer correctement les nouveaux joueurs entrants.
                    //updateReason est la raison pour laquelle cette mise à jour est fournie.
                },
                () => {
                    //Callback OnProcessTerminate. GameLift invoquera ce callback avant d'arrêter une instance hébergeant ce serveur de jeu.
                    //Il donne au serveur de jeu la possibilité de sauvegarder son état, communiquer avec des services, etc., avant d'être arrêté.
                    //Dans ce cas, nous indiquons simplement à GameLift que nous allons effectivement arrêter.
                    GameLiftServerAPI.ProcessEnding();
                },
                () => {
                    //Ceci est le callback HealthCheck.
                    //GameLift invoquera ce callback toutes les ~60 secondes.
                    //Ici, un serveur de jeu pourrait vérifier la santé des dépendances, etc.
                    //Retournez simplement true si c'est sain, false sinon.
                    //Le serveur de jeu a 60 secondes pour répondre avec son statut de santé. GameLift utilisera 'false' par défaut si le serveur de jeu ne répond pas à temps.
                    //Dans ce cas, nous sommes toujours en bonne santé !
                    return true;
                },
                listeningPort, //Ce serveur de jeu indique à GameLift qu'il écoutera sur le port 7777 les connexions des joueurs entrants.
                new LogParameters(new List<string>()
                {
                    //Ici, le serveur de jeu indique à GameLift quels fichiers télécharger lorsque la session de jeu se termine.
                    //GameLift téléchargera tout ce qui est spécifié ici pour que les développeurs puissent récupérer ensuite.
                    "/local/game/logs/myserver.log"
                }));

            //Appeler ProcessReady indique à GameLift que ce serveur de jeu est prêt à recevoir des sessions de jeu entrantes !
            var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParameters);
            if (processReadyOutcome.Success)
            {
                print("ProcessReady success.");
            }
            else
            {
                print("ProcessReady failure : " + processReadyOutcome.Error.ToString());
            }
        }
        else
        {
            print("InitSDK failure : " + initSDKOutcome.Error.ToString());
        }
    }

    void OnApplicationQuit()
    {
        //Assurez-vous d'appeler GameLiftServerAPI.Destroy() lorsque l'application se quitte. Cela réinitialise la connexion locale avec l'agent de GameLift.
        GameLiftServerAPI.Destroy();
    }
}

Unreal Engine (C++)

Conteneurisez votre serveur de jeu

La deuxième étape pour passer à Edgegap est de conteneuriser votre serveur de jeu. Vous pouvez suivre les guides suivants :

  • Unity

  • Unreal

Poussez votre conteneur sur un dépôt

Vous devrez pousser votre conteneur sur un dépôt. Vous pouvez utiliser le dépôt privé ou toute autre option.

Créez une application sur Edgegap

Maintenant que votre conteneur est sur un dépôt, vous devrez créer une application sur Edgegap. Cette application représentera votre serveur de jeu. Avec cette application, vous pourrez déployer votre serveur.

Vous pouvez maintenant déployer votre serveur à la demande pour vos joueurs !

Mis à jour

Ce contenu vous a-t-il été utile ?