L’atelier des Dev d’aujourd’hui, au lieu d’une vidéo, parle d’un développement intéressant d’un plugin dans le moteur Unreal 4 avec un impact disproportionné sur le développement.
Ceux qui nous suivent depuis un certain temps savent que nous cherchions à développer séparément différentes parties du jeu sous forme de modules indépendants. Nous sommes entrés dans le détail à ce sujet dans notre mise à jour Pieces of the Game (lien ici). En partie à cause de l’éparpillement de l’équipe, en partie à cause de l’ampleur du projet. Une partie était aussi pour faciliter la maintenance ainsi que la découverte et l’élimination des bugs tout au long de la vie du jeu.
Cependant, les meilleurs plans s’égarent tristement et ce qui semble être une grande idée réalisable ne résiste pas toujours à l’épreuve du temps. Au fil des années, le niveau de modularité nécessaire pour conserver ces avantages s’effondrent lentement mais sûrement, quelles que soient les mains qui s’en occupent. La réalité a rencontré l’intention et l’a apporté aux nettoyeurs. Nous avions besoin d’une autre approche pour garder les choses propres et autonomes. Et Unreal Engine version 4.18 a fourni le chemin.
Beaucoup de ceux qui utilisent des logiciels sont familiers avec le terme plugin. Il s’agit d’un composant logiciel qui peut se brancher à un autre et s’ajouter à l’original. Unreal Engine les a depuis longtemps. Par exemple, Dungeon Architect, notre générateur de donjon procédural, est un plugin. Ils sont très pratiques, mais jusqu’à récemment, un plugin ne pouvait se brancher que sur le projet principal lui-même. Les plugins ne pouvaient pas se brancher sur d’autres plugins. La version 4.18 a changé cela, et avec lui, notre plan de développement.
Il a fallu beaucoup de planification préalable pour restructurer le projet. La version 4.18 de Unreal Engine a été publié il y a quelques mois, mais nous ne l’appliquons que maintenant. Mais maintenant que les plugins peuvent fonctionner avec d’autres plugins, tous les différents composants du jeu peuvent être des plugins. Cela signifie que l’interdépendance et la modularité ne s’excluent plus mutuellement – elles peuvent être les deux à la fois.
Cette façon très différente de conserver la modularité est auto-entretenue et permet tous les avantages décrits dans le premier paragraphe, et rend l’ajout de nouvelles pièces beaucoup plus simple. Auparavant, la mise à jour du projet ou des contributions d’autres personnes pouvait être délicate, devait être coordonnée et ne pouvait souvent pas être automatisée en toute sécurité. Cela signifie que tout le monde avait tendance à travailler dans des configurations quelque peu différentes, ce qui a contribué au problème. Mais maintenant, toutes les ressources, systèmes et actifs communs sont leurs propres plugins, travaillant avec le propre projet des développeurs (aussi un plugin) mais pas directement intégré avec lui. Cela signifie que toutes les autres parties peuvent être automatiquement mises à jour sans interférer avec le travail du développeur, de sorte que tout le monde travaille dans le même environnement tout le temps. Quand le développeur est prêt, il branche simplement son plugin dans le projet principal, qui utilise les mêmes plugins de support. Parce que tout est au même endroit, tout – dans la mesure où tout ce que ce qui est compliqué vous dérange – fonctionne.
La mise en place de ce système a pris un peu de temps pour Chargen et d’autres choses à très court terme – environ deux mois – mais le gain en rythme de développement sera plus que compensé, ce qui permettra de rationaliser et d’accélérer tous les aspects du développement. Et cela continuera à profiter au jeu jusqu’au coucher du soleil. Nous nous réjouissons de vous accueillir tous dans la ville.
Source : https://cityoftitans.com/forum/developers-workshop-put-plugin-it
Discussion sur le forum FR :