Lors du développement d'un jeu, il est préférable d'éviter tout impact immédiat des modifications expérimentales, corrections ou idées inachevées sur l'ensemble du projet. La création de plusieurs branches vous permet, à vous et aux membres de votre équipe, de collaborer en toute sécurité ou de travailler de manière indépendante sans ralentir l'avancement global du projet.
Les branches sont des versions parallèles du projet principal qui évoluent à des rythmes différents et à des fins différentes.
Un projet peut nécessiter la prise en charge simultanée de plusieurs types de tâches. La création et la gestion de branches permettent d'adopter cette méthode de travail en laissant chaque axe de travail suivre son propre rythme, et en ne les fusionnant que lorsque vous êtes prêt. Bien qu'il existe différentes stratégies d'embranchement, toutes reposent sur un paradigme commun faisant appel aux éléments suivants :
Branche principale : branche stable et durable qui sert de base au projet.
Branche de version : branche permettant de tester le travail et de le préparer à une version spécifique.
Branche de fonctionnalités : branches dédiées où les fonctionnalités sont développées en amont avant d'être intégrées à une branche de version ou à la branche
principale.Branche expérimentale : branches permettant d'effectuer des tests en toute sécurité sans incidence sur l'ensemble du projet ou sur d'autres branches.
Branche principale
La branche principale est la version la plus stable d'un projet, car elle constitue la base commune et fiable à partir de laquelle toutes les autres branches sont créées et vers laquelle elles convergent.
Une branche principale sert à :
Créer une autre branche lorsque le travail est prêt.
Itérer pour créer une version stable en vue de tester le jeu.
Créez une branche de développement qui suit la branche principale. La branche de développement vous permet de tester la stabilité du travail avant de la fusionner avec la branche principale.
Branche de version
Les branches de version sont des branches dans lesquelles le travail est verrouillé pendant la préparation d'une version à des fins de test ou de publication. Une branche de version est un excellent moyen d'organiser le travail autour d'un objectif ou d'un calendrier de publication spécifique.
Une branche de version sert à :
Bloquer l'ajout de fonctionnalités en vue de publier une version spécifique.
Se concentrer sur les corrections de bugs et la finition.
Éviter les changements de dernière minute et toute extension non maîtrisée du projet.
Il est particulièrement utile de séparer le travail lié à une version dans sa propre branche en fin de développement, car :
Les tâches expérimentales peuvent se poursuivre sans perturber le reste de l'équipe.
Les modifications ne sont pas définitives à l'échelle du projet, ce qui évite d'éventuels retards.
L'équipe sait toujours ce qui est inclus dans une version.
Branches de fonctionnalités
Une branche de fonctionnalités est utilisée pour développer les fonctionnalités sans impacter la branche de version ou la branche principale. Les membres de l'équipe peuvent travailler sur diverses branches de fonctionnalités et y apporter des modifications librement sans perturber les autres branches du projet.
Les branches de fonctionnalités permettent de travailler sur une tâche spécifique, par exemple :
Ajouter un nouveau système de gameplay.
Créer un flux d'interface utilisateur.
Ajouter une nouvelle section de la carte.
Les branches de fonctionnalités servent à :
Regrouper les fonctionnalités et les passer en revue.
Passer des fonctionnalités en cours de développement à d'autres tâches sans perdre le fil ni encombrer votre espace de travail actif avec des modifications disparates.
Si vous décidez de changer de cap, vous pouvez facilement abandonner une branche de fonctionnalités sans impacter le travail des autres collaborateurs.
Il est très facile d'abandonner une branche de fonctionnalités sans impacter les autres membres de l'équipe ou le travail en cours.
Branches expérimentales
Une branche expérimentale est un espace vous permettant d'explorer de nouvelles idées en toute sécurité sans perturber le travail des autres membres de l'équipe. Après avoir exploré une idée, vous pouvez comparer les résultats et décider ce qu'il convient de conserver. Si une idée fonctionne, vous pouvez fusionner les modifications. Si elle ne fonctionne pas, il vous suffit de supprimer ou d'abandonner la branche.
Les branches expérimentales servent à :
Prototyper les idées de gameplay.
Tester des optimisations de performances.
Explorer d'autres options artistiques ou d'autres dispositions de niveaux.