Top 8 des meilleurs fours muraux sur le marché 2020 Avis et guide d'achat
29 septembre 2020
Top 5 des meilleures cuisinières à gaz pour l'argent 2020 Avis
29 septembre 2020

Jeu multijoueur
Shutterstock / REDPIXEL.PL

L'un des plus gros problèmes que les développeurs de jeux indépendants doivent résoudre lors de la conception de leur jeu est de décider comment le multijoueur fonctionnera. Devez-vous exécuter des serveurs dédiés? Pouvez-vous utiliser le réseau peer-to-peer? Parlons-en.

Cet article se concentre sur l'infrastructure générale derrière votre jeu, plutôt que sur les détails exacts du fonctionnement du réseau multijoueur, car cela dépendra de votre moteur et de la façon dont votre jeu est programmé.

Déterminez si vous devez exécuter des serveurs du tout

Certains jeux peuvent se gérer sans serveurs dédiés. Si vous créez un jeu qui est principalement une interaction joueur à joueur, sans système compétitif classé, vous n'aurez peut-être pas besoin de serveurs du tout.

Par exemple, Minecraft le fait particulièrement bien. Vous pouvez jouer seul, sur un réseau local, vous connecter à des serveurs hébergés par d'autres joueurs ou héberger votre propre serveur. Bien sûr, cela nécessite le soutien de la communauté et les joueurs intéressés par l'hébergement de leurs propres serveurs en premier lieu, sinon c'est trop compliqué à demander à vos utilisateurs. Un système hybride a fonctionné pour Rust; les développeurs gèrent quelques serveurs officiels, et la communauté gère les leurs.

En plus d'avoir vos serveurs hôtes de communauté, la méthode la plus simple d'architecture sans serveur est le modèle de serveur d'écoute. À l’aide d’un sous-système en ligne tel que Steam, les utilisateurs peuvent créer leurs propres lobbies, soit en rejoignant le jeu de leur ami, soit en trouvant et en rejoignant des sessions ouvertes à l’échelle mondiale par d’autres joueurs sur Steam.

Habituellement, la personne qui a créé le lobby est le chef. Ils sont sélectionnés comme serveur et tout le monde s'y connecte. L’ordinateur du responsable du lobby devient un serveur ad hoc, hébergeant la session pour tout le monde dans le hall. Cela élimine le besoin d'exécuter entièrement les serveurs.

Si votre jeu suit un gameplay plus axé sur le match, comme un jeu de tir 5v5, vous voudrez peut-être un serveur de matchmaking dédié, conçu uniquement pour trier les joueurs dans des lobbies en fonction de leurs statistiques (et non pour gérer le gameplay réel). Cela vous permettrait de rendre le processus de recherche de jeux automatique et également de mettre en œuvre vos propres règles de matchmaking. Vous aurez de toute façon besoin d’un serveur comme celui-ci, même si vous n’utilisez pas de modèle de serveur d’écoute pour exécuter les jeux.

Inconvénients du modèle de serveur d'écoute

Le modèle de serveur d'écoute est fantastique et idéal pour les jeux indépendants qui souhaitent créer un mode multijoueur sans avoir à payer pour des serveurs dédiés. Mais il a deux inconvénients majeurs: la triche et le décalage.

Le premier est évident. Si vous avez des matchs 5v5, même si vous sélectionnez au hasard l'hôte du serveur, un joueur donné a 10% de chances d'être choisi comme serveur. S'ils sont le serveur, ils ont un contrôle total sur l'ensemble du jeu, ce qui rend le modèle de serveur d'écoute totalement irréalisable pour un jeu compétitif. Imaginez Counter Strike, mais tous les quelques matchs, vous avez quelqu'un en mode divin dans l'équipe ennemie, coupant et tuant tout le monde. Pas amusant pour vous ou vos joueurs.

Cela ne peut vraiment pas être atténué, mais ses effets dépendent du type de jeu joué. Peut-être que votre jeu est un jeu de société en ligne qui se joue juste pour le plaisir; tricher pendant un jeu comme celui-là n’est pas très utile. Avec un système de rapports décent, vous pouvez gérer les quelques instances qui apparaissent, surtout si votre jeu n'est pas si grand. Ce type d'anomalie sera facile à détecter, et il est peu probable que quelqu'un s'efforce de développer des astuces à moins que votre jeu ne soit assez grand pour s'offrir de toute façon des serveurs dédiés.

Le deuxième inconvénient est un problème beaucoup plus important pour les petits jeux. Si l’ordinateur choisi comme serveur d’écoute n’est pas si puissant ou dispose d’une mauvaise connexion Internet, l’expérience peut être lente. Cela peut être atténué avec un serveur de mise en relation externe qui choisit le meilleur serveur d'écoute hors du hall, en fonction des spécifications du PC et de la vitesse Internet. Cela ne peut pas vraiment être mis en œuvre avec le sous-système Steam – la personne qui a commencé à héberger le lobby sera toujours le leader du lobby dans ce cas.

Dans tous les cas, il n’est pas rare du tout que les petits jeux utilisent le modèle de serveur d’écoute, car il est essentiellement gratuit pour le développeur. Et bien que l'on s'attende à ce que les plus gros jeux aient des serveurs dédiés, ils n'en ont pas toujours –Pour l'honneur, un titre AAA d'Ubisoft, ne disposait pas de serveurs dédiés au lancement, à la grande consternation de leur joueur.

Les serveurs dédiés ne sont vraiment pas si effrayants

Serveur

Bien que dépenser des frais mensuels en tant que développeur indépendant pour entretenir votre jeu semble fastidieux, ce n'est peut-être pas aussi grave que vous le pensez. Disons que votre jeu propose des matchs 5v5. Combien de matchs prévoyez-vous disputer en même temps? Si vous avez 100 joueurs actifs, ce n'est que 10 matchs.

Si votre jeu n'est pas trop intensif, il peut probablement fonctionner sur un seul thread. Un serveur quad core avec hyperthreading pourrait théoriquement exécuter 8 sessions de jeu simultanées. Vous voudrez certainement faire des tests pour vérifier le nombre de sessions qu'un serveur donné peut prendre en charge, afin que vous puissiez avoir une idée de la puissance dont vous aurez besoin.

Et si vous avez 100 joueurs actifs, vous faites déjà quelque chose de bien, car vous aurez des ordres de grandeur, plus de gens qui ont acheté le jeu mais qui n'y jouent pas 24/7. Par exemple, Rust a vendu plus de 5 millions d'exemplaires, mais ne voit qu'environ 50 000 personnes actives à la fois, soit 100 fois plus de ventes que les joueurs actifs quotidiennement.

Ainsi, avec des matchs 5 contre 5 et 100 joueurs actifs, vous aurez besoin d'un serveur capable de prendre en charge 10 matchs. Peut-être trouvez-vous qu'un serveur à six cœurs avec 64 Go de RAM peut facilement exécuter toutes vos correspondances. Vous pouvez trouver un serveur dédié avec ces spécifications pour environ 80 $ par mois. Si vous avez en moyenne 100 joueurs actifs, vous avez certainement vendu au moins quelques milliers d'exemplaires, vous aurez donc certainement de l'argent à dépenser pour offrir à vos joueurs une bonne expérience.

Si vous n’avez pas autant de joueurs, vous pouvez probablement tout exécuter sur un serveur beaucoup plus petit, ce qui réduit considérablement vos coûts. Si votre jeu décolle vraiment au point où vous commencez à voir vos marges diminuer, vous pouvez toujours rechercher des options de monétisation alternatives; les cosmétiques (comme les peaux d'armes et de joueurs) sont un choix courant; ils donnent aux joueurs dédiés quelque chose sur quoi dépenser de l'argent, ce qui vous donne un revenu mensuel constant pour aider à compenser le coût des serveurs.

L'option la moins chère: louez une ou deux boîtes dédiées

Avec les serveurs virtuels, la mémoire a une prime. Si vous comparez les prix d'AWS ou de Google Cloud Platform au prix de la location d'un boîtier dédié auprès d'une petite entreprise, vous constaterez que vous serez facturé beaucoup plus pour la même quantité de mémoire sur AWS. C'est un problème, en particulier pour les jeux, car la mémoire est souvent le facteur limitant pour qu'un serveur puisse exécuter plus de sessions.

Une «boîte dédiée» signifie simplement que vous louez le matériel lui-même. Vous louez un rack entier dans un centre de données, ce qui signifie que vous n’avez pas non plus à gérer les frais généraux de virtualisation.

Cela semble plus cher, mais souvent, c'est en fait beaucoup moins cher. Si vous n’avez pas besoin de serveurs haut de gamme, vous pouvez louer du matériel plus ancien pour des remises énormes. Après tout, l'ancien matériel était haut de gamme; lorsque d'énormes fournisseurs de VPS comme AWS mettent à niveau vers des serveurs plus récents, ils vendent souvent une partie de leur matériel plus ancien. (Vous pouvez en fait les acheter vous-même sur Ebay, plus d'informations ci-dessous.) Vraiment, un serveur plus ancien n'est peut-être que 10% ou moins performant qu'un nouveau serveur, mais quand il coûte la moitié du prix, c'est une bonne affaire.

OVH est un bon endroit pour trouver des serveurs dédiés assez bon marché. Leur société sœur, SoYouStart, vend leur matériel plus ancien, que vous pouvez trouver à des prix très bas.

La solution évolutive – AWS GameLift

Image d'en-tête GameLift

Bien qu'AWS soit plus cher, il présente de grands avantages. AWS GameLift est un service qui facilite grandement l’exécution de serveurs de jeux sur la plate-forme de calcul EC2 d’AWS.

GameLift est essentiellement une version sophistiquée de l'autoscaling EC2. Il lance automatiquement de nouvelles instances lorsque la demande est élevée, ou met fin aux instances lorsqu'elles ne sont pas nécessaires, par exemple du jour au lendemain lorsque les gens ne jouent pas. C'est pratiquement le cas d'utilisation parfait pour l'autoscaling; à partir de la console GameLift, vous pouvez définir le type d'instance que vous souhaitez utiliser pour évoluer et le nombre de sessions de jeu que le serveur peut gérer.

Cela permet de compenser considérablement les coûts lorsque, par rapport aux serveurs dédiés, et lorsqu'il est combiné avec des instances Spot EC2, peut faire de l'exécution sur AWS une option viable pour un jeu assez populaire. Le coût par heure est plus élevé (AWS est cher), mais vous passez beaucoup moins de temps à exécuter des serveurs, car votre architecture évoluera pour répondre exactement à la demande.

GameLift comprend même un système de matchmaking de base, qui élimine le besoin d'exécuter un serveur de matchmaking séparé. Les joueurs rejoignent une file d'attente et le matchmaking GameLift les trie en sessions en fonction des règles que vous définissez. Si un nouveau serveur est nécessaire, celui-ci sera lancé.

Pour les petits jeux qui n'ont pas besoin de plus d'un serveur, AWS GameLift est un peu exagéré, mais si vous souhaitez toujours être sur la plate-forme AWS, vous pouvez réserver des instances EC2 avec un contrat d'un an pour environ 40% moins cher que À la demande. Cependant, cela ne se rapproche toujours pas du rapport qualité-prix qu'un serveur dédié bon marché vous offrira dans d'autres entreprises, alors ne choisissez une instance réservée que si vous aimez vraiment AWS.

Si vous aimez le bruit, achetez, ne louez pas

Il y a une raison pour laquelle les anciens serveurs dédiés sont si bon marché: les centres de données vendent leur ancien matériel sur Ebay tout le temps, souvent pour des remises massives. Dans le monde des serveurs, le le matériel lui-même est un coût insignifiant. Le principal puits d'argent est la facture d'électricité massive associée à l'exécution du serveur et le refroidissement nécessaire pour refroidir la chose à une température de fonctionnement raisonnable.

Si vous deviez louer un serveur dédié à SYS, vous paieriez environ 84 $ par mois pour un Xeon Haswell (2014) 6 cœurs avec 64 Go de RAM et quelques To d'espace de stockage. C'est déjà un extrêmement bonne affaire pour un serveur de cette taille. Comparé au r5.2xlarge d'AWS avec 8 cœurs et 64 Go de RAM (la RAM est ce qui est important ici), vous paieriez plus de 250 $ par mois même avec un contrat d'un an, sans parler des 50 $ à 100 $ supplémentaires environ pour un volume EBS comparable.

Donc, avec le serveur SYS étant une si bonne affaire, combien pensez-vous qu'il en coûterait pour acheter un serveur comparable sur Ebay? Le serveur SYS coûte plus de 1000 $ par an, donc environ 500 $ à 700 $ environ pourraient être une bonne estimation, surtout si l'on considère le processeur Xeon seul vendu pour plus de 600 $ au détail, sans parler du coût de la RAM, des lecteurs et des composants assortis.

Nan. Voici une liste sur Ebay pour un rack avec les mêmes spécifications pour 70 $ avec livraison gratuite:

Très bon serveur pour seulement 70 $ sur ebay

Vous êtes peut-être en train de saisir l'occasion d'acheter cela, mais il y a quelques points à considérer en premier.

Tout d’abord, vous ne voulez pas mettre ce truc dans votre chambre. Les serveurs sont bruyant. Ils sont destinés à être installés dans un centre de données et les ordinateurs n’ont pas d’oreilles. Vous pourrez peut-être vous en sortir en le mettant dans votre sous-sol, mais ne vous attendez pas à le laisser dans le placard de votre chambre, en particulier un serveur 1U, qui a de minuscules ventilateurs de 40 mm qui doivent tourner un milliard de fois par seconde juste pour refroidir le chose.

Et si le matériel est bon marché, la puissance ne l'est pas. Un serveur comme celui-ci consomme 100 à 200 watts au ralenti et peut atteindre plus de 500 watts, certains serveurs à cœur lourd pouvant tirer un kilowatt entier de puissance lorsqu'ils sont entièrement chargés. Si vous ne rencontrez pas de charge insensée, vous ne paierez probablement pas trop pour l'électricité, mais vous vous attendez à ce que votre facture augmente de 10 à 15 USD par serveur.

Et enfin, il y a la question de savoir si vous pouvez ou non exécuter les serveurs depuis votre domicile. La plupart des forfaits Internet à domicile ne sont pas bien équipés pour le faire. Non seulement il est généralement contraire à la ToS, mais vous n’avez pas d’adresse IP statique, ce qui rend la mise en réseau très difficile. Vous voudrez examiner les plans d’affaires proposés par votre FAI si vous envisagez sérieusement d’acheter votre propre serveur.

Si vous souhaitez acheter votre propre serveur, vous devriez vérifier LabGopher, un service d'agrégation pour trouver des serveurs d'occasion vous permettra de parcourir plus efficacement les listes Ebay.

Menu de comparaison de LabGopher

Habituellement, vous pouvez trouver de très bons serveurs pour moins de 500 $ environ. Le serveur dans la comparaison ci-dessus est une offre exceptionnelle, mais n'est pas entièrement rare.

Vous n'êtes pas obligé de les héberger depuis chez vous. Il existe des fournisseurs qui se spécialisent dans l'hébergement de matériel d'autres personnes, appelés services de colocation, qui connectera votre serveur à leur centre de données, avec alimentation et réseau. C'est une option extrême et un engagement assez sérieux, mais cela peut avoir du sens dans certaines situations.

La colocation d'un seul serveur 2U vous coûtera un peu plus de 100 $ par mois. Si ce serveur est très puissant, ce coût peut être bien inférieur à ce que vous paieriez pour louer un serveur dédié du même calibre. Gardez à l'esprit, cependant, que de nombreux services de colocation seront facturés en fonction de la consommation d'énergie, vous voudrez donc faire vos recherches avant de colocaliser.

Options de service de backend: Google Firebase, RethinkDB

Google Firebase

Cette dernière option est pour un cas d'utilisation spécial. Si votre jeu n'a vraiment besoin que d'un simple backend, vous pourriez être intéressé par une base de données en temps réel. Les bases de données en temps réel se mettent à jour instantanément et transmettent les mises à jour aux utilisateurs abonnés via des Websockets. Ils sont couramment utilisés pour créer des applications telles que Google Docs, où la communication d'informations en temps réel est essentielle. Cette option fonctionne particulièrement bien pour les jeux mobiles, où une latence ultra-faible, une action rapide et un traitement compliqué ne sont pas vraiment nécessaires.

Firebase est un service géré de Google. Cela a commencé comme une simple base de données en temps réel, mais a depuis évolué pour devenir une plate-forme complète pour le backend des applications mobiles. Il existe un niveau gratuit, un niveau de 25 USD qui devrait suffire pour la plupart des petites applications, et un plan de paiement à l'utilisation qui facture en fonction de l'utilisation.

RepenserDB est une base de données open source conçue pour le temps réel. Vous devrez l'exécuter sur votre propre serveur, mais la puissance de traitement de RethinkDB, ainsi qu'un serveur dédié bon marché, devraient s'avérer plus que suffisantes pour la plupart des choses, à moins que votre application ne subisse un trafic important.

//]]>