Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Création de jeux vidéo Discussion :

Questionement sur l'infra systeme / réseaux / charge


Sujet :

Création de jeux vidéo

  1. #1
    Futur Membre du Club
    Questionement sur l'infra systeme / réseaux / charge
    Bonjour,

    Je suis porteur d'un projet et j'aimerais avoir plus d'informations concernant l'infrastructure d'un jeu online machine, charge, monitoring, scalabilité, performance et optimisation.

    Pour me présenter, je suis un développeur/devops et je travail sur des projets à très fortes charges et qui demande beaucoup de performance, je travaille principale avec des cloud public tel que GCP ou AWS.

    La problématique que j'ai remarqué en jouant à des jeux online, je prends le cas de Dauntless qui est très récent, c'est l'instabilité des serveurs (lenteur pour rechercher un serveur, des déconnections, ils ont même mis une file d'attente pendant un moment), donc je me dis quand même qu'il y a moyen de faire beaucoup beaucoup mieux.

    Mes questions portes sur plusieurs points:
    - Comment se passe lorsque vous devez mettre sur des serveurs vos jeux ?
    - Il existe des services pour faciliter la mise en place ?
    - Si oui quels sont les coûts de se genre de services ?
    - Vous avez des outils de monitoring et de gestion de la scalabilité, simple d'utilisation ?

    Mon projet c'est d'être un intermédiaire et faciliter le déploiement sur des serveurs.
    Pour le moment je suis seulement à la phase de recherche d'information pour comprendre le besoin et voir si le projet est viable ou pas.

    Merci pour votre aide

  2. #2
    Rédacteur/Modérateur

    Il n'y a pas de secret, il faut profiler le serveur sur différentes machines.
    Puis faire des tests de montée en charge.
    Puis choisir une machine en fonction du prix/puissance/...
    Puis choisir combien de machines on veut en fonction de la quantité de joueurs que l'on attend.
    Enfin, mettre en place les règles de scalabilité/provisionning.

    Et à la fin tu n'as jamais assez de puissance/serveurs disponibles, malgré toutes les précautions et les surévaluations faîtes, parce qu'il y a des incertitudes à tous les niveaux (profiling pas 100% accurate, qui ne peut pas couvrir tous les cas de figure de joueurs, nombre de joueurs impossible à deviner, tests de montée en charge jamais significatifs, hardware/software très légèrement différent, ...).
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Futur Membre du Club
    Merci pour ta réponse,

    Désolé par avancé si mes questions sont un peu confus. j'ai aucune expérience dans le domaine.

    Je suppose que les gros studios on des équipes en interne pour traiter toutes les optims, la maintenance, les tests de charge etc ...
    Quoique je sais pas si il utilise des serveurs physique (bare metal) ou plutôt des machines virtuelles chez un prestataire ?

    Pour trouver des réponses je vais essayer de me mettre en situation.
    Bien sur je ne suis pas un gros studios avec des gros budget.

    Voila je créer mon jeu : application, ressource, image, son, texture etc.

    Déja pendant la phase de développement, j'ai des outils/service pour m'aider sur l'optimisation ? je me projette sur le coté déploiement serveur du jeu pas du développement en lui même.
    par exemple Amazon propose Amazon GameLift ? ça parle a quelqu'un ? quelqu'un a déjà utilisé ce genre de service ?

    Ensuite lorsque je veux mettre en production (ou en beta), je dois me débrouiller tous seul pour le mettre sur des serveurs ou trouver quelqu'un ou un service ?
    - Dans cette étape comment je choisi les serveurs ? qu'est ce qui est important (cpu ? ram ? gpu ? ethernet ?)
    - Comment je monitore tous ça pour voir les éventuels problème de perf ? de bug ? ou autre ?
    - Si le jeu cartonne comment je scale ? voir plus est ce que je peux faire de l'auto scaling ? suivant la charge ou suivant le nombre d'utilisateur (c'est ce qui est fait avec des applications moderne et le cloud computing)

    J'essaie vraiment de comprendre le besoin serveur / déploiement à partir du développement jusqu’à la production.

    Dans t'as réponse du me dit ce qu'il faut faire (au final c'est les mêmes problématiques que pour une application à forte charge), mais pas comment on fait, c'est plus ça qui m'intéresse le comment.

  4. #4
    Rédacteur/Modérateur

    Comment ?
    Tu contactes AWS, Azure, Gamelift, Playfab, Google Cloud, et probablement d'autres, et tu payes le service et as un support que tu peux contacter si les docs fournis ne suffisent pas.
    Pour le profiling tu les mets en place toi-même dans ton appli et sur ta machine. Tu as des docs pour chaque plateforme et peux aussi développer ta propre solution et des outils https://docs.microsoft.com/en-us/vis...g?view=vs-2019
    Et tu testes sur différentes machines pour voir combien d'instances tu peux avoir par machine, faire du multi-tenancy etc. M'enfin le GPU tu t'en moques pas mal... ce sont des machines sans interface graphique : moins chères et inutiles.
    Quant au scaling, ça dépend de ton contrat et de ce qui est prévu. Tu peux le paramétrer aussi.
    Tu peux aussi avoir un simple serveur dédié chez OVH et faire ce que tu veux avec.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Expert confirmé
    Citation Envoyé par brillantb Voir le message
    Ensuite lorsque je veux mettre en production (ou en beta), je dois me débrouiller tous seul pour le mettre sur des serveurs ou trouver quelqu'un ou un service ?
    Ca dépend de ton packaging, de tes moyens, de ton besoin.

    Citation Envoyé par brillantb Voir le message

    - Dans cette étape comment je choisi les serveurs ? qu'est ce qui est important (cpu ? ram ? gpu ? ethernet ?)
    Ca dépend de ton jeu

    Citation Envoyé par brillantb Voir le message

    - Comment je monitore tous ça pour voir les éventuels problème de perf ? de bug ? ou autre ?
    Splunk || elk || graylog , prometheus

    Citation Envoyé par brillantb Voir le message

    - Si le jeu cartonne comment je scale ? voir plus est ce que je peux faire de l'auto scaling ? suivant la charge ou suivant le nombre d'utilisateur (c'est ce qui est fait avec des applications moderne et le cloud computing)
    Ca dépend de ton jeu
    Play50HZ, le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  6. #6
    Futur Membre du Club
    Merci pour vos réponses