www.neverwinternights2.fr
[Truc] Comment lancer un projet de module pour NwN2? (Josh Sawyer)
Catégorie : Trucs et astuces
Publié par NorD le 23/6/2006

[post écrit par Josh Sawyer sur le forum de Obsidian, traduit de l’anglais et légèrement modifié]

Bonjour.

Mon nom est Josh Sawyer. Je suis un développeur de jeux vidéos. Autrefois, je travaillais au studio de développement Black Isle, je travaille maintenant pour Midway San Diego. Je ne suis pas nécessairement un expert du processus de développement d’un jeu mais j’ai travaillé avec un bon nombre de producteurs et eu l’opportunité de voir différents styles de gestion de projets (bon et mauvais).

Je vois plusieurs personnes ambitieuses se rassembler pour la création de module, dont 90%+ ne sont jamais complétés. Je ne crois pas que ce soit parce que les idées ne sont pas bonnes ou que les gens impliqués soient une bande d’idiots. Je pense que c’est dû à:

  1. une mauvaise préparation
  2. un mauvais horaire
  3. une mauvaise gestion générale.


Il n’est pas rare de voir des projets réussir malgré une mauvaise gestion. Il est certainement possible de développer un jeu ou module sans gestion efficace mais vous feriez aussi bien de prier, et souhaiter que tout finisse par marcher.

La gestion prend du temps et n’est ni amusante ou prestigieuse mais est essentielle au succès des efforts d’une équipe. Je voudrais suggérer un processus et certains trucs pour organiser un projet de module. Ces suggestions ne sont pas nécessairement les meilleures au monde. Vous pouvez même penser qu’elles sont mauvaises mais elles semblent marcher de mon point de vue. Pour ces suggestions j’assume que vous, l’initiateur du projet de module, êtes le chef, le producteur, le dieu et empereur de l’équipe. Aussi, ne prenez pas le titre trop au sérieux, seulement un retardé avec un gros ego considère cela comme important. Si vous êtes celui qui coordonne les choses et qui fait rouler la balle, ce post est pour vous. Avant de faire une énumération des phases de développement, j’aimerais suggérer quelques trucs généraux :

Garder les gens concentrés sur les taches à accomplir. Un grand nombre des gens qui se proposent pour une équipe de module veulent juste faire les tâches de haut niveau et amusantes. Une grande partie des choses à faire dans le développement d’un jeu ne sont pas  amusantes. Par contre, si vous pouvez garder les gens concentrés sur les tâches importantes (même les moins intéressantes), la progression devrait être assez satisfaisante pour garder les gens motivés. À la fin, les tâches moins intéressantes sont satisfaisantes si le résultat est supérieur aux efforts.
  • Si possible, utilisez quelques chose comme http://wikimedia.org pour vos documents importants. Gardez toujours une copie des documents mais c’est mieux si toute l’équipe à accès aux documents importants (pour NWN, version du module, document de design, etc). Quand un document important est modifié, informez le reste de l’équipe et dite leur ce qui a changé et ou ils peuvent voir ces changements.

PHASE 1 : VISION (chef d’équipe)

Voulez-vous simplement créer de nouveau niveau? Allez-vous changer des parties de l’interface? Allez-vous ajouter de nouvelles armes? Allez-vous ajouter un nouveau modèle de personnage avec de nouvelles animations? Couvrez en profondeur tous les aspects qui peuvent être pris en considération. Combien de cartes? Avec combien de monstres?
Pourquoi est-ce amusant? Si vous pensez que la simple création d’un module est amusant c’est très correct. Malgré tout, c’est plus facile de stimuler les gens à participer à votre projet si vous pouvez rapidement et clairement leur dire pourquoi ce que vous faites sera intéressant.
Vous ne voulez pas rassembler des gens pour les voir quitter à moitié chemin parce qu’il y a eu une mésentente dans l’équipe sur ce qui allait être accompli. Garder les gens concentrés sur les objectifs à partir du début et rappelez-vous vous-même de leur présence dans l’équipe tout au long du projet.
N’essayez pas d’assigner des gens pour chaque tâche dès le début. Comme directeur de projet, vous pouvez avoir une bonne idée de la vision mais vous pouvez être incapable d’analyser les détails de l’implémentation de cette vision. Trouvez un bon artiste. Trouvez un bon programmeur si vous avez besoin d’en avoir un. Et ensuite, si un c’est assez ce n’est pas un problème. Si un déluge de personne se propose à aider, remerciez les pour leur proposition mais dites leur que cela prendra quelques temps avant que vous ayez besoin de plus de personne dans l’équipe. Gardez contact avec eux pendant la pré-production pour ne pas les perdre de vue. Il est possible que vous trouviez des gens de grand talent qui aimeraient bien vous aider mais n’ont simplement pas le temps. N'hésitez pas à leur demander gentiment leur aide à analyser la candidature de d’autres personnes, particulièrement si vous n’en savez pas beaucoup sur leur domaine d’expertise. Maintenant que vous avez une équipe de base, c’est le temps pour la pré-production.

PHASE 2 : PRÉPRODUCTION (chef d’équipe et équipe de base)

Rappelez-vous pour chaque détail que vous voulez accomplir, quelqu’un doit travailler. Les choses ne se font pas avec magie. Même les tâches les plus simples devrait être prises en compte (en étant raisonnable bien sur : essayez simplement de penser à tout ce qui peut être important). Accompagner cette liste de tâches avec une sous-liste. Chaque tâche à accomplir peut nécessiter la complétion de différentes autres tâches. (Ex : création du monstre X nécessite création du script d’IA de monstre X). Si vous ne mettez pas quelques chose sur la liste, vous pouvez aussi bien assumer qu’elle ne sera pas faite.
  • Créez un document principal pour chaque discipline
Ces documents serviront comme guide pour la réalisation du module. Ils seront référencé par différents membres de l’équipe de base et plus tard par l’équipe tout entière à travers les différentes phases de production. Si vous avez besoin d’un nouveau modèle de créature et que le nombre de polygone ne devra pas dépasser 1000, tant qu'à faire l’indiquer dans le document. L’organisation de ces documents peut être discutée par l’équipe de base mais le format devrait être décidé par le chef d’équipe.
Encourager la communication entre les membres d’équipes pour identifier les dépendances et risques. Vous réalisez peut être que certains des membres de l’équipe de base condamne un élément de la vision comme étant impossible ou très risqué. Si l’équipe arrive à un consensus sur ce point, considérez sérieusement la révision de la vision et de l’étendue du projet. N’importe quoi de risqué devrait être implémenté et testé le plus tôt possible. Ceci est particulièrement important si c’est un élément du jeu qui pourrait briser l’objectif du projet. Si vous avez de nouvelles mécaniques complexes qui peuvent affecter le jeu drastiquement, implémentez et testez le le plus tôt possible. Si le projet entier tient sur les épaules de ce ‘’nouvel élément’’ et qu’il ne fonctionne pas, il n’y a aucune raison de continuer de l’avant avec la vision initiale du projet. La dépendance entre différentes tâches devrait être clairement notée pour l’intégration subséquente dans l’horaire. Toutes tâches étant un pré requis devrait être accomplies en premier. Je sais que ça semble logique mais vous seriez surpris du nombre de personne qui ne ‘’réalise pas’’.
Oui, toutes les infimes petites tâches. La plus petite unité de temps devrait être d’une heure environ. Ces estimations n’ont pas à être hyper-précise mais devraient être réalistes. Si vous êtes incertains du temps nécessaire à une tâche, prenez pour acquis le plus long possible. C’est toujours mieux de prévoir plus que moins de temps. Si vous finissez une tâche en moins de temps que prévu, merde, vous êtes en avance sur l’horaire!
Tout ça vous donnera un bon estimer de vos besoins en terme de staff. Si vous avez 38 heures de programmation à faire, un programmeur qui travaille 5 heures par semaine devrait y arriver en 8 semaines. Si vous avez 180 heures de tâches en design, une seule personne travaillant 3 heures par semaine ne terminera pas dans la même année que le programmeur et ça pourrait causer problème à votre durée de développement de 3 mois.
Donnez la plus grande importance aux tâches à haut risque et assignez les tôt dans l’horaire. Assurez-vous que vous considérez l’intégration des ressources dans le module dans l’horaire et que celle-ci est efficace et sans risque d’erreur. La réussite ou non des tâches à haut risque sera le test ultime de la capacité de l’équipe à terminer le projet. Si vous complétez les tâches les plus risquées dans l’horaire, les autres tâches devraient être faciles à accomplir. Alors que vous faites cet horaire, assurez-vous que vos estimations sont réaliste auprès des autres membres de l’équipe et qu’ils pourront travailler sur les différentes tâches pendant les heures prévues. Sérieusement et s’il vous plait, je vous prie de garder en tête que vous travaillez sur un module et que les gens peuvent avoir de vraie vie et vrai travail. Prévoyez la fin de l’implémentation des tâches à haut risque environ une semaine avant la fin actuelle prévu sur l’horaire. Gardez la dernière semaine pour tester et la correction d’erreurs. Soyez ferme à ce sujet. NE LAISSEZ PAS d’autres contenus être implémenté avant la fin de cette semaine de tests. Une base stable et jouable devrait être l’objectif. Qualité et non quantité.
Si l’horaire arrive à court dans une discipline (ex : tout prendra 2 semaines à l’exception de la programmation qui prendra 8 semaines), agrandissez le staff ou repoussez la date de pré-production à un moment plus réaliste. Réalisez que cela prendra du temps à trouver de nouveaux membres pour l’équipe et que ça prendra quelques temps pour qu’il arrive à une vitesse de production égale à celle du reste de l’équipe. Ne considérez pas la participation d’un membre d’équipe dont vous n’avez pas encore la confirmation de disponibilité sur l’horaire.
  • Coordonner les nouveaux membres de l’équipe avec votre équipe de base pour assurer que tout le monde est sur la même longueur d’onde.
Faites les lire à travers les documents de base et prenez leurs commentaires si approprier.
  • Commencez le travail sur les tâches à haut risque de la pré-production.
  • Assurez-vous que chaque membre de l’équipe fait un rapport fréquent de sa progression.
Si un membre ne donne pas de nouvelle, assumez qu’il n’a rien accompli. 
  • Surveillez la progression de façon réaliste.
Si vous voyez des gens prendre du retard sur les dates prévues, discutez avec eux de la situation et essayer d’adapter votre horaire. N’attendez pas la fin d’une phase pour prendre des actions. À ce moment il sera trop tard pour rattraper le problème. LE RETARD DANS LE DÉVELOPPEMENT DE JEUX VIDÉOS A LIEU PARCE QUE LES GENS NE RÉALISENT PAS OU NE PRENNENT PAS D’ACTION QUAND L’HORAIRE N’EST PLUS SUIVI.
Si nécessaire, donnez du travail d’un membre d’équipe en retard à un autre en avance (ou prêt à travailler plus), ou remplacer le membre de l’équipe. Les créateurs de module sont reconnus pour parler beaucoup mais agir peu. Ils ne seront pas pénalisés pour ne pas faire leur travail bénévole. Il est inutile de les faire sentir coupable, s’ils ne sont pas assez motivés pour faire le travail, retirez-les de l’équipe. C’est aussi simple que ça.
La progression des meilleurs membres de votre équipe aidera à motiver les autres (‘’Hey, on a fait quelques chose!’’) et assurera que chacun suit à l’œil son propre horaire. N’indiquez pas simplement les dates, le pourcentage et le nom des tâches. Faites un petit résumé de ce qui a été fait, ce qui n’a pas été fait et ce que ça implique globalement pour le projet.
Certaines tâches pourraient paraître irréalistes. Notez le et discutez en dans le post-mortem de la pré-production. Pour tout le reste, faite des modifications réalistes et appropriées sur l’horaire. Si une animation est manquante, peut être que convaincre l’animateur de travailler un peu plus fort dans la dernière semaine n’est pas déraisonnable. Un rush n’est pas nécessairement mauvais. Aucun horaire n’est parfait. Un rush est déraisonnable quand il est continu par manque d’un horaire réaliste ou modifié pendant l’évolution du projet.
Partagez cette première version avec les différents membres d’équipe et révisez-la. Déterminez ce qui c’est bien passer et ce qui c’est moins bien passer et ce que ça implique pour le reste du projet. Cherchez activement à avoir l’opinion des différents membres de votre équipe. Parfois les gens ne donneront pas leur opinion volontairement, même s’il est d’une importance vitale.

PHASE 3 : PRODUCTION (équipe complète)
  • Réévaluez la liste des tâches et assigner un ordre d’importance de la même façon que pour la phase de pré-production.
Chaque tâche devrait avoir un objectif. Pour un module amateur, la longueur assigner à la complétion de différentes tâches n’a pas vraiment d’importance et pourrait être de une semaine comme trois mois. Ce qui est important est que le travail qui sera fait sur le volume total de travail à faire pour une tâche précise aura une valeur assez importante pour rendre le projet plus intéressant qu’a la phase précédente.
  • Gardez en tête les différents problèmes possibles qui ont été mis en avant lors de la pré-production.
Changez l’étendu du projet, trouvez de nouveaux membres pour l’équipe, etc. L’horaire et les documents de bases ne sont pas taillés dans la roche. Ce sont des documents changeants et ils devraient être traités de la sorte.
  • Alors que de nouveaux membres s’ajoutent à l’équipe, assurez-vous de leur intégration rapide à une bonne vitesse de production.
Aidez-les à se sentir intégrés dans le projet et la communauté et travaillez cet horaire, retravaillez-le et retravaillez-le encore. Donnez-lui de l’importance, changez-le. Réalisez rapidement quand un membre de l’équipe prend du retard, informez en l’équipe et prenez des actions rapides. Complétez les tâches principales. Peu importe si l’elfe à des yeux bleu ou vert, ou si l’épée fait 50 ou 100 points de dégâts sur un critique. Tout ça, votre équipe pourra décider. Mais si vous n’avez pas une approche organisé et un horaire pour votre projet, c’est peu probable que ces détails est une quelconque importance.

www.neverwinternights2.fr