Quatre pratiques devops essentielles pour que tous vos jeux se démarquent.

Passer de l'urgence des correctifs à la rapidité des itérations et des versions.
Introduction
Des semaines de travail de 60 heures, des mois avant la sortie d'un film ? Des codes qui traînent toute la nuit pour livrer des corrections de bogues miraculeuses plusieurs fois par semaine ? Ajouter à la dernière minute des fonctionnalités inspirées, littéralement jusqu'au lancement ?
Ce secteur est réputé pour sa cadence "crunch-crunch-crunch". Et vous êtes peut-être quelqu'un qui se nourrit de cette folie. Mais si le résultat n'est pas au rendez-vous à la fin de l'année fiscale, il faut se demander pourquoi.
L'un de vos principaux développeurs a peut-être été trop sollicité par le lancement d'un produit, ce qui l'a conduit à démissionner et à retarder la sortie du produit. Peut-être qu'une nuit de fixation a déclenché une réaction en chaîne d'autres nuits de fixation. Peut-être qu'une fonctionnalité de dernière minute, insuffisamment testée, a menacé de faire s'écrouler l'ensemble du projet. Quel que soit le scénario, une chose est claire : Vous êtes venu ici trop souvent.
Si ces tactiques ne semblent pas en valoir le prix, c'est que, malgré votre héroïsme, vous ne donnez pas aux clients ce qu'ils veulent. La capacité de créer des shaders, d'animer de l'eau, d'imaginer des niveaux ou de configurer un CDN n'est qu'une partie de ce qu'il faut pour réussir à créer de la valeur pour la communauté des joueurs. Pour franchir le gouffre de la production rentable, les compétences les plus importantes dont vous aurez besoin sont l'application de systèmes et de processus qui orientent votre énergie dans une seule direction : la production de jeux de qualité pour vos fans.
Il faut des pratiques DevOps intelligentes pour transformer un studio d'un chaos basé sur le crunch en une terre de flux de travail productifs et efficaces. L'objectif est de rendre à votre équipe sa ressource la plus précieuse - le temps - afin qu'elle puisse travailler sur les choses qui comptent vraiment.
Mais combien de temps pouvez-vous réellement récupérer en éliminant le "crunch" ? Des années, selon Josh Nixdorf, directeur technique chez Electronic Arts : "Du point de vue de mon équipe, l'une des mesures les plus importantes que nous suivons est le nombre d'années d'efforts économisées. Cela aussi a augmenté de manière exponentielle au fur et à mesure que nous progressions dans notre voyage DevOps, en commençant par une vingtaine d'années d'efforts avec notre première tentative de DevOps et en dépassant les 1 000 ans aujourd'hui."
En adoptant un processus de développement plus rationnel et intentionnel, vous donnez à votre équipe les moyens d'offrir de meilleures expériences à vos joueurs - et vous serez en mesure de les offrir plus souvent. Cet e-book présente quelques principes et processus DevOps fondamentaux spécifiques aux environnements de développement de jeux et met en lumière quelques outils DevOps essentiels au bon fonctionnement de la pile technologique d'un studio.
Pourquoi DevOps ?
Le développement de jeux se complique avec la sortie de chaque génération de console. Les joueurs s'attendent de plus en plus à des graphismes de meilleure qualité, à des mises à jour fréquentes après le lancement et à une assistance irréprochable. Si votre jeu est truffé de bogues au moment de son lancement, il est extrêmement difficile, voire impossible, de s'en remettre. Comme l'a déclaré Chris Hewish, président de Xsolla , dans cette interview accordée à GamesIndustry.biz, "on peut toujours s'appuyer sur un succès, mais on ne peut pas vraiment se développer sur les cendres d'un lancement raté".
Pour maximiser la valeur des joueurs, il est essentiel d'examiner vos processus et votre outillage, puis d'identifier les possibilités d'optimisation. Vos flux de travail actuels vous permettront-ils de soutenir votre jeu au fil du temps ? Qu'en est-il des projets futurs ?
Les équipes de studio ont tendance à concentrer leur attention sur la manière dont les développeurs et les artistes peuvent accomplir des tâches de plus en plus difficiles. Mais cette focalisation fait qu'il est trop facile de passer complètement à côté de la compréhension du processus. Par exemple, si un programmeur s'arrête et vérifie son travail plus souvent (un processus DevOps), il passera moins de temps à corriger les bugs.
Sans cette compréhension du processus, les studios sont voués à perdurer :
- Des développeurs surchargés de travail qui travaillent perpétuellement en mode "crunch".
- Des versions entachées de bogues et de réactions négatives
- Frustration généralisée causée par des plans de développement confus
- Gaspillage d'efforts dans tous les domaines
La solution consiste à adopter des pratiques et des outils DevOps qui optimisent et raccourcissent les cycles de développement afin de produire des jeux toujours performants. Les avantages sont trop nombreux pour être énumérés, mais en voici quelques-uns :
- Automatisation des processus qui libère les développeurs des tâches répétitives
- Une prise de décision proactive plutôt que réactive
- Une intégration et des déploiements continus qui permettent à vos joueurs de bénéficier d'un contenu de meilleure qualité
- Beaucoup moins de surmenage, de stress et d'épuisement professionnel
Et le remboursement à la fin de l'année fiscale ? Plus que vous ne pouvez l'imaginer : un personnel plus heureux, des clients plus heureux et des comptables plus heureux.
Les quatre pratiques essentielles
Vous n'avez pas besoin d'un ingénieur DevOps pour commencer à bénéficier des avantages d'une approche plus proche de DevOps dans votre environnement de développement. Même un développeur solo améliorera sa productivité en comprenant simplement ces quatre pratiques DevOps essentielles.
Contrôle de version robuste : Pour la plupart des programmeurs, la sauvegarde des modifications apportées au code est aussi automatique que le fait de cligner des yeux. Une simple validation garantit que le travail est en sécurité et qu'il ne sera pas écrasé ou perdu. Mais le développement de jeux implique la gestion et le suivi d'une variété beaucoup plus large d'actifs parfois énormes générés par des artistes distribués et d'autres personnes. Il faut donc un système de contrôle de version complet doté d'un ensemble de fonctionnalités puissantes.
Build Automation (CI/CD): L'intégration continue (CI) consiste à fusionner automatiquement des travaux provenant d'une ou de plusieurs sources dans un référentiel central. La livraison continue (CD) consiste à créer automatiquement de nouvelles versions au fur et à mesure du développement. La mise en œuvre d'un pipeline CI/CD automatisé est une meilleure pratique établie dans la méthodologie agile, fournissant un moyen cohérent et automatisé de construire, empaqueter et tester votre jeu.
Gestion des artefacts : Au-delà du code et des actifs gérés par un système de contrôle de version, les artefacts comprennent une grande variété de dépendances telles que les images de base, les progiciels, les cartes Helm, les métadonnées et d'autres ressources tangentielles mais essentielles. Un gestionnaire d'artefacts complète le contrôle de version en maintenant un référentiel central pour absolument tout ce qui est nécessaire pour construire ou déployer des apps ou des jeux.
Tests fréquents et automatisés : Une approche DevOps permet de briser les silos traditionnels entre développeurs et assurance qualité. Par exemple, les développeurs écrivent le code en plus petits morceaux et effectuent leurs propres tests avant de l'intégrer à la base de code principale pour la construction. Idéalement, ces tests sont continus et automatisés. Les versions candidates sont plus raffinées et les équipes d'assurance qualité examinent de plus près les performances des jeux.

1: Contrôle de version robuste
Minimiser les conflits de fusion et les pertes de travail
Lorsque les artistes et les programmeurs s'opposent constamment, ou lorsque les conflits de fusion entraînent des redondances ou des pertes de travail, le contrôle de version est généralement le coupable. Pour appliquer les meilleures pratiques de contrôle de version dans les environnements de développement de jeux, vous aurez besoin d'un système doté de capacités uniques.
En pratique, les fichiers de code sont petits, quelle que soit leur longueur. Cependant, les graphismes des jeux de console et de PC de la prochaine génération peuvent être comparativement énormes, ce qui fait de la bande passante du réseau un facteur critique. L'extraction et le transfert de ces ressources à partir d'un référentiel central doivent être aussi rapides et faciles que pour n'importe quelle autre ressource de développement.
Le plus gros problème de la plupart des solutions de contrôle de version ? Facilité d'utilisation - pour tout le monde.
Les programmeurs maîtrisent généralement les interfaces de ligne de commande et les techniques complexes de contrôle des versions, tandis que les artistes peuvent trouver difficile de simplement appuyer sur Save assez souvent. Mais leurs dessins et leurs animations sont tout aussi importants pour le produit final que la base de code.

Un système de contrôle de version pour le développement de jeux doit offrir des options complexes et détaillées aux développeurs tout en étant très accessible aux utilisateurs moins techniques. Sinon, les ingénieurs passeront leur temps à expliquer, encore et encore, le fonctionnement du système.
Une interface graphique intuitive peut faciliter la coordination de ramifications et de fusions complexes avec les programmeurs, les artistes et les concepteurs qui travaillent simultanément sur différents niveaux et versions destinés à différentes plates-formes.
La traçabilité permet de savoir exactement quand et où un bien a été modifié et sur quelles branches il est utilisé, et c'est une capacité importante pour les équipes d'assurance qualité également. De plus, une sécurité adéquate de tous vos dépôts, branches, étiquettes et chemins est une exigence minimale.

2: Build Automation (CI/CD)
Passez plus de temps à créer, moins de temps à gérer des pipelines et des outils complexes.
Un thème constant de toutes les pratiques DevOps est la décomposition du travail en plus petits morceaux. Les petites unités sont plus faciles à manipuler, plus simples à tester et plus rapides à optimiser. Vous minimisez également les efforts inutiles si vous vous heurtez à un mur ou si vous décidez de changer de direction.
Dans le domaine du développement de jeux, cela revient à fusionner fréquemment vos modifications en cours avec celles des autres et à créer de nouvelles versions. La création manuelle de constructions n'est pas très compliquée, mais elle interrompt d'autres travaux et le temps qu'elle prend peut s'accumuler rapidement. Là encore, comme beaucoup d'autres pratiques DevOps, l'automatisation est essentielle.
Un pipeline de construction automatisé est lié à votre système de contrôle de version, surveillant les modifications et créant de nouvelles constructions à chaque validation ou lorsque le nombre de modifications dépasse un certain seuil. Cela signifie que les développeurs peuvent repérer et corriger les lacunes rapidement et souvent avant que la situation ne devienne incontrôlable. Il maintient le code et les actifs dans un état plus fiable et prêt à être publié. Si vous devez annuler des modifications pour une raison quelconque, la dernière version réussie est prête à être utilisée. De plus, les autres équipes peuvent facilement accéder aux versions pour obtenir des mises à jour et donner leur avis en temps voulu.
Culturellement, une approche DevOps de l'automatisation de la construction déplace les priorités de votre équipe pour s'assurer que leur travail est bien fait avant de sauter en avant vers de nouvelles fonctionnalités. Ils avancent progressivement, en s'appuyant sur de petites réussites, plutôt que de faire de longs sprints et de s'épuiser. Cela renforce la confiance et réduit considérablement la probabilité de faire dérailler le travail de quelqu'un d'autre parce que votre code n'était pas tout à fait terminé.

3: Gestion des artefacts
Mettez votre jeu à l'endroit où il doit aller
Lorsque le système CI/CD crée une nouvelle version, il la transmet généralement à un dépôt d'artefacts, où le gestionnaire d'artefacts l'enregistre avec toutes ses dépendances et les autres composants nécessaires. L'orchestration de ces "autres composants nécessaires" est la raison pour laquelle la gestion des artefacts est une pratique si importante dans le DevOps du développement de jeux.
Les artefacts peuvent provenir de toutes sortes de sources, telles que vos développeurs internes, vos artistes contractuels et tout autre dépôt public de code source ouvert. Le gestionnaire d'artefacts veille à ce que tous ces contenus essentiels soient téléchargés et archivés, tout en vérifiant les versions et les approbations, en recherchant les problèmes de sécurité, etc. Il existe de nombreux points de défaillance possibles.
Bien entendu, tout système de gestion des artefacts utile comporte des exigences minimales. Il doit être en mesure de gérer les métadonnées pour prendre en charge le versionnage et le filtrage sur la base des licences. Il doit permettre aux développeurs de déterminer quels contenus sont conservés et pendant combien de temps. Et, surtout, il doit être conçu comme un système à haute disponibilité afin d'éviter les temps d'arrêt.
La mise en œuvre d'un véritable gestionnaire d'artefacts présente des avantages considérables par rapport à la simple désignation d'un godet S3 comme référentiel de projet. Cela signifie que le maintien d'une bibliothèque commune pour toutes les ressources du projet améliore la collaboration, en particulier entre les artistes et les ingénieurs. Toutes les ressources sont enregistrées et traçables, ce qui permet des constructions prévisibles et reproductibles. Il libère également tous les membres de l'équipe de la gestion des déploiements, ce qui leur permet de coder, d'animer, de concevoir ou de faire ce qu'ils font le mieux.

4: Tests fréquents et automatisés
Réagir au retour d'information et travailler avec agilité
Deux principes façonnent les pratiques DevOps efficaces pour l'assurance qualité :
Tests fréquents au début du développement
Flux de travail automatisés pour l'assurance qualité
Un charpentier mesure deux fois pour couper une fois. En d'autres termes, ils résolvent la variable de longueur et testent leur travail avant de passer à l'étape de production suivante. Les développeurs peuvent faire exactement la même chose en écrivant des blocs de code plus courts et en les vérifiant avant d'en écrire d'autres. La frontière entre le développeur et l'assurance qualité s'estompe.
Les vérifications fréquentes du code par les développeurs portent leurs fruits lorsque les constructions sont soumises à des tests automatisés. Chaque fois que le compilateur envoie une nouvelle version au dépôt, celle-ci est testée. Grâce aux tests automatisés continus, il est beaucoup moins probable que des bogues survivent au-delà du développement et causent des problèmes dans le code de production. Et ceux qui survivent ne seront pas aussi virulents.
Cela dit, nous savons tous qu'il y a des bugs. L'automatisation des tests d'assurance qualité s'accompagne d'une automatisation des rapports, à la fois à partir des protocoles de test et, après la commercialisation d'un jeu, à partir des appareils sur lesquels il fonctionne. Dès que l'assurance qualité ou l'installation d'un utilisateur rencontre des anomalies, le système signale les données spécifiques relatives aux pannes et aux exceptions afin de permettre des corrections plus rapides. Souvent, les problèmes ne sont pas encore apparents pour l'utilisateur final et peuvent être résolus avant qu'ils ne se manifestent sous la forme de dysfonctionnements perceptibles.
De toutes les pratiques DevOps pour les environnements de développement de jeux, les tests fréquents et automatisés sont peut-être les plus cruciaux. Les joueurs veulent du nouveau contenu régulièrement, et les studios sont soumis à une pression énorme pour respecter les dates de lancement avec de nouvelles fonctionnalités révolutionnaires. Mais si un influenceur important a une mauvaise expérience en plus d'une mauvaise journée, les ramifications peuvent être dévastatrices. Il est impératif que l'assurance qualité soit correcte.
Les studios de jeux réussissent leur pari
Les pratiques DevOps et agiles ne sont en grande partie que des habitudes de travail relevant du bon sens. Mais lorsqu'ils sont appliqués à des jeux impliquant un code complexe, des milliers d'actifs et des contraintes de performance impitoyables, les studios ont besoin d'outils DevOps dédiés pour assurer un contrôle méticuleux des sources, une intégration et une livraison continues, une gestion sûre et sécurisée des artefacts, ainsi que des tests fréquents et automatisés.
L'utilisation d'outils DevOps qui s'intègrent étroitement à votre plateforme de développement accroît leur efficacité. Vous trouverez ci-dessous quelques-uns des milliers de créateurs Unity qui utilisent notre bibliothèque croissante d'outils DevOps pour améliorer leurs flux de travail et produire des jeux époustouflants.
Studio : Alta
Dans un Creator Spotlight sur la chaîne Twitch d'Unity, Alta a partagé la façon dont ils utilisent Unity Version Control (anciennement Plastic SCM), pour accélérer les cycles de publication et fournir des mises à jour de contenu régulières à leur grande base de fans en pleine croissance. "Nous utilisons Plastic SCM pour le contrôle des sources. Cela nous permet d'avoir des branches de différentes versions du projet", explique Boramy Unn, directeur de jeu chez Alta. "Nous créons une nouvelle branche pour chaque fonctionnalité, puis nous créons des sous-branches pour tout type d'activité risquée au sein de chaque fonctionnalité.

Studio : KO_OP
KO_OP est un studio de jeu coopératif basé à Montréal. Ils étaient à la recherche d'une solution de contrôle de version qui éliminerait les obstacles entre les artistes et les ingénieurs alors qu'ils travaillaient sur leur dernier projet, Goodbye Volcano High. "Gluon[le flux de travail des artistes de Unity Version Control] a été une excellente surprise", a déclaré Jacob Blommestein, développeur chez KO_OP, dans une étude de cas sur Unity. "Les artistes n'avaient pas besoin de savoir quoi que ce soit sur les ramifications ou les fusions. Ils ont simplement ajouté leurs fichiers .psd, et la gestion des versions a été transparente."

Studio : Sycoforge
Dans une interview sur le blog d'Unity, la PDG Michela Rimensberger a partagé la façon dont Unity Version Control aide Sycoforge et sa communauté à travailler ensemble pour donner vie à leur ambitieux jeu Return to Nangrim. "D'un point de vue technique, Unity Version Control a été une véritable bouée de sauvetage pour la collaboration", a-t-elle déclaré. "Nous avons essayé de nombreux outils de gestion des versions et nous avons rapidement réalisé qu'aucun d'entre eux ne répondait vraiment aux besoins d'une société de développement de jeux vidéo. Alors que certains étaient utilisables par les programmeurs, les artistes ont eu des crises de sueur en les utilisant. Avec Version Control, nous avons trouvé de quoi changer la donne. Il est facile à utiliser pour les non-programmeurs comme pour les programmeurs".

Studio : Cryptic Studios
Cryptic Studios, filiale de Perfect World, utilise Backtrace pour automatiser le suivi des bogues et des erreurs. "Backtrace a changé la façon dont nous explorons et utilisons les données de collision", a déclaré le producteur principal de Cryptic Studios, Brent Lamb, dans un e-book d'Unity publié cette année . "Tout le monde se sent à l'aise pour lancer des requêtes et comprendre l'état de santé de l'un de nos jeux.

Commencez dès aujourd'hui
Accélérez vos flux de travail et développez votre chaîne d'outils DevOps avec les solutions DevOps d'Unity. Créer de manière plus efficace afin d'arriver sur le marché à temps, avec la qualité que vous attendez. Découvrez les solutions ici.