Parmi nous, un programmeur donne un aperçu des coulisses du code

  • Un Parmi nous programmeur se joint à nous pour expliquer un élément clé du code du jeu.
  • Ce jeu multiplateforme donne l’impression qu’il est facile d’héberger des joueurs d’une douzaine de systèmes différents.
  • Le jeu est construit dans le populaire moteur Unity, avec du code C++ et C# dans les coulisses.

    Dans le jeu à succès Parmi nous, un groupe de joueurs est largué dans un vaisseau spatial et se voit confier de petites tâches comme l’entretien et la réparation du moteur. Mais pour un joueur, la “petite tâche” est de tuer tous les autres. Le jeu est sorti en 2018 mais a connu un succès fulgurant à partir de 2020 en tant que jeu de société auquel les groupes pouvaient jouer ensemble virtuellement. C’est un jeu amusant pour commencer, mais il illustre également des choses intéressantes sur la façon dont les jeux informatiques sont créés et conçus. Nous avons parlé avec Shahrin Khan d’Innersloth, les créateurs de Parmi nous. Elle a partagé un morceau de code du jeu qui nous aidera à raconter l’histoire.

    Comment le jeu est joué

    Parmi nous est un jeu pour jusqu’à 15 joueurs. Tout le monde choisit des couleurs ainsi que des accessoires, comme des chapeaux ou des animaux de compagnie, dans une zone de détention principale. Une fois le match commencé, jusqu’à trois joueurs sont choisis pour être des imposteurs et les autres sont des joueurs réguliers. Il s’agit d’un jeu de rôles asymétrique, car les imposteurs ont un ensemble de mouvements et de capacités différent de celui du reste des joueurs. Vous connaissez peut-être des jeux de survie d’horreur asymétriques populaires comme Mort au grand jour, où tueurs et survivants s’affrontent. Dans Parmi nous, les membres d’équipage tentent de survivre. L’imposteur peut voyager à travers des évents cachés, dans le but de piéger et de tuer des joueurs là où les autres ne peuvent pas les voir. Ensuite, tout le monde se rassemble pour voter sur qui ils croient être les imposteurs.

    un programmeur parmi nous explique un extrait de code

    Victoria T. (Innersloth)

    Pourquoi ce jeu attire les utilisateurs

    L’un des grands tirages de Parmi nous est que le jeu prend en charge le jeu multiplateforme, ce qui signifie que les personnes disposant de l’application Android gratuite peuvent rejoindre des jeux avec des personnes sur la Nintendo Switch, le PC et d’autres consoles. Le jeu est conçu dans Unity, qui est un moteur de jeu : le logiciel qui prend en charge et sous-tend le développement de jeux en incluant de nombreuses fonctionnalités et bibliothèques existantes que les développeurs sont susceptibles d’utiliser.

    Sorti pour la première fois en 2005, Unity a été créé en tant que moteur Mac avant de prendre en charge presque tous les autres types de plates-formes, de Linux aux consoles. C’est même gratuit pour de nombreux utilisateurs, car il y a un plancher de 200 000 $ de revenus annuels avant qu’un compte ne passe à la version payante d’Unity Pro, et les développeurs qui gagnent plus de 200 000 $ par an sont rares. En raison de sa philosophie de “démocratisation”, Unity dispose également d’une énorme communauté de personnes qui apportent des ressources que d’autres peuvent utiliser dans leurs projets. Pour les petits studios et les particuliers, cela signifie gagner du temps et de l’argent sur la création d’actifs tels que des modèles de personnages et des arrière-plans.

    Les langages de programmation qui fonctionnent

    Unity utilise les langages de programmation C++ et C#. Le codage est très générationnel et itératif, avec des langages qui ajoutent des fonctionnalités et des traits au fil du temps. C++ et C# remontent au C, qui a été introduit dans les années 1970 mais reste populaire aujourd’hui comme moyen de coder les systèmes d’exploitation et le matériel. (Ce n’est même pas le langage le plus ancien encore largement utilisé ; COBOL, populaire pour les systèmes comptables et bancaires par lots, remonte à 1959. Il y en a probablement d’autres !)

    C++ est l’épine dorsale de nombreuses programmations de jeux vidéo, en partie parce qu’il a été conçu pour interagir avec le matériel de manière économe en énergie. Cela signifie que les logiciels écrits en C++ peuvent fonctionner plus efficacement tout en exploitant les fonctionnalités matérielles de l’ordinateur telles que les graphiques et la RAM. C #, à son tour, a été prétendument conçu en réponse au langage Java. (L’échantillon que Shahrin Khan m’a envoyé ressemble tellement à Java, un langage que j’ai plus utilisé moi-même, que je l’ai d’abord pris pour ça !)

    Regardons le code

    Khan écrit du code pour Parmi nous dans un environnement de développement intégré (IDE), logiciel qui facilite la visualisation et l’utilisation du code en utilisant des fonctionnalités telles que le codage couleur. Il va falloir s’en passer dans cet échantillon !

    montre un bloc de code qui change la couleur d'un chapeau

    Paresse intérieure

    Il s’agit d’une méthode, qui est un bloc de code qui ne s’exécute que si quelqu’un d’autre l’« appelle ». Appeler SetHat(15) revient à taper 15 dans votre calculatrice puis à appuyer sur la racine carrée, sauf qu’au lieu de la racine carrée, la méthode change la couleur de votre chapeau. “Cela suppose que vous savez déjà qui chapeau à porter, mais la couleur change », explique Khan. Les options de couleur sont stockées sous des valeurs entières, car c’est beaucoup plus facile que de demander à l’ordinateur d’analyser ou d’interpréter un nom de couleur écrit sous forme de mot.

    Ensuite, le code transforme l’entier du code de couleur en quelque chose qui effectue le changement dans le moteur Unity. Ce changement applique en fait les bonnes informations visuelles à l’art représenté dans le jeu. “Cela démarre finalement une coroutine – en gros, quelque chose que Unity essaie de faire en arrière-plan tout en faisant d’autres choses pour que le jeu ne semble pas figé – pour charger les” données de vue “pour le chapeau”, explique Khan. “Une fois que nous avons chargé la texture, nous avons finalement utilisé l’ID de couleur qui nous a été transmis afin de colorer le chapeau de manière appropriée.”

    Parmi nous, un programmeur explique un extrait de code

    Victoria T. (Innersloth)

    Les jeux, en particulier les jeux en ligne multijoueurs, équilibrent toujours de nombreux flux d’informations en même temps. Et cela est également vrai pour la plupart des autres utilisations de l’informatique. Nous voyons toutes nos applications ou fenêtres ouvertes et les considérons comme des flux séparés qui se déroulent tous en même temps, mais c’est à cause de la programmation qui échelonne la “prochaine étape” de chaque processus afin que tout semble être uniforme. En réalité, cela ressemble plus à gratter une guitare : vous êtes techniquement une corde à la fois très rapprochée, créant le son de frapper un accord.

    Parmi nous a plus de 300 chapeaux, et ils représentent une grande partie du modèle financier du jeu. L’application Android est gratuite et les autres versions du jeu sont assez peu coûteuses. mais tous les joueurs peuvent payer pour la monnaie du jeu qui peut être utilisée pour acheter des packs cosmétiques thématiques pour les saisons, les vacances et d’autres événements spéciaux. “Le plus amusant avec les chapeaux personnellement, c’est de voir tous les noms basés sur des jeux de mots pour eux”, dit Khan. “Je voulais vraiment trouver un bon jeu de mots pour dire ça, mais je ne pouvais pas.” (Un bon jeu de mots est difficile à surpasser.)

    Les chapeaux sont amusants, mais il y a un gros inconvénient, explique Khan. « L’un des défis est la gestion de la mémoire. De nombreux appareils mobiles plus anciens ne peuvent pas charger trop d’actifs dans le jeu à la fois, ce qui a entraîné des problèmes de plantage pour certains utilisateurs. C’est quelque chose dont nous devons être conscients chaque fois que nous ajoutons de nouveaux produits cosmétiques de tout type, chapeau ou non », dit-elle. Et cela a du sens, car plus une expérience de jeu devient complexe et plus l’art est utilisé et géré pendant le jeu, plus la pression exercée sur le processeur de l’ordinateur et la mémoire qui alimentent l’appareil est grande.

    Si jamais une modification était apportée à la méthode SetHat ci-dessus, il existe un processus très spécifique pour introduire la modification dans le code, et éventuellement aux joueurs. Khan effectuerait le changement localement sur sa propre machine, puis le testerait. (Les tests ne sont pas qu’une étape ou un emplacement dans le processus – il existe une demi-douzaine de types de tests différents, et certains sont utilisés plusieurs fois au cours du développement.) À partir de là, le nouveau code serait chargé dans des fichiers partagés dans le GitHub d’Innersloth, un service en ligne qui suit les modifications et les versions de logiciels.

    «Chaque nuit, nous avons un système automatisé qui prend notre base de code de travail et crée un exécutable ou une« construction »à partir de celle-ci pour diverses plates-formes comme Steam, Android, etc.», explique Khan. “Le lendemain matin, ces constructions seront prêtes pour notre [quality assurance (QA)] équipe pour le tester. S’il réussit leurs tests, le changement est considéré comme fonctionnel et prêt à être intégré à la prochaine mise à jour.

    Parfois, les changements sont urgents, comme un nouveau code qui corrige une erreur qui fait planter le jeu. D’autres fois, le code est destiné à l’amélioration des performances, à de nouvelles fonctionnalités ou à des correctifs pour des bogues ésotériques et peu courants qui n’ont pas la même urgence. Les équipes de développement décident ensemble quand elles souhaitent planifier des versions mises à jour de leur logiciel. Il peut également être déployé à différents moments sur les plates-formes.

    Khan a eu quelques travaux de codage avant de travailler sur Parmi nous, dont six ans en tant que développeur Unity dans une société de jeux mobiles. Elle dit qu’elle a été surprise de voir à quel point l’équipe d’Innersloth est cool, ce qui est toujours une bonne chose dans un travail. “Je pense que la principale chose qui a surpris, c’est à quel point l’équipe est formidable et à quel point nous nous amusons tous à travailler ensemble”, dit-elle. “Cela semble très ringard, mais c’est vrai.”

    Ce contenu est créé et maintenu par un tiers, et importé sur cette page pour aider les utilisateurs à fournir leurs adresses e-mail. Vous pourrez peut-être trouver plus d’informations à ce sujet et sur un contenu similaire sur piano.io

.

Leave a Comment