{"id":234,"date":"2010-02-16T19:51:32","date_gmt":"2010-02-16T18:51:32","guid":{"rendered":"http:\/\/conquerirlemonde.com\/blog\/?p=234"},"modified":"2010-02-21T16:25:50","modified_gmt":"2010-02-21T15:25:50","slug":"erreur-classique-n%c2%b010-le-plantage-post-proto","status":"publish","type":"post","link":"https:\/\/conquerirlemonde.com\/blog\/2010\/02\/16\/erreur-classique-n%c2%b010-le-plantage-post-proto\/","title":{"rendered":"Erreur classique n\u00c2\u00b010: le plantage post-proto"},"content":{"rendered":"<p><center><a href=\"https:\/\/conquerirlemonde.com\/blog\/wp-content\/uploads\/2010\/02\/fail.jpg\"><img loading=\"lazy\" src=\"https:\/\/conquerirlemonde.com\/blog\/wp-content\/uploads\/2010\/02\/fail.jpg\" alt=\"\" title=\"fail\" width=\"540\" height=\"261\" class=\"aligncenter size-full wp-image-321\" srcset=\"https:\/\/conquerirlemonde.com\/blog\/wp-content\/uploads\/2010\/02\/fail.jpg 540w, https:\/\/conquerirlemonde.com\/blog\/wp-content\/uploads\/2010\/02\/fail-300x145.jpg 300w\" sizes=\"(max-width: 540px) 100vw, 540px\" \/><\/a><\/center><\/p>\n<p>D&rsquo;apr\u00c3\u00a8s une \u00c3\u00a9tude pas du tout objective (juste une impression en fait&#8230;), il semblerait qu&rsquo;il y ait deux moments critiques dans la vie des projets amateurs, deux moments o\u00c3\u00b9 la plupart des projets se plantent.<\/p>\n<p>Le premier moment, c&rsquo;est juste au d\u00c3\u00a9but, quand le projet est vraiment foireux et que la bande de coll\u00c3\u00a9giens qui voulait faire un \u00ab\u00a0WOW en mieux\u00a0\u00bb clashe parce qu&rsquo;ils ne sont pas d&rsquo;accords sur la couleur des poils des loup-garous qui seront pr\u00c3\u00a9sents dans le jeu.<br \/>\n\u00c3\u2021a, c&rsquo;est classique, on l&rsquo;a d\u00c3\u00a9j\u00c3\u00a0 abord\u00c3\u00a9.<\/p>\n<p>Le deuxi\u00c3\u00a8me moment est plus \u00c3\u00a9trange, on voit le projet avancer, des screenshots arrivent, c&rsquo;est jouable, il y a m\u00c3\u00aame un prototype, une petite communaut\u00c3\u00a9 qui se cr\u00c3\u00a9e et soudain \u00ab\u00a0pouf\u00a0\u00bb&#8230; le projet s&rsquo;arr\u00c3\u00aate: soit d&rsquo;un coup avec une annonce, soit il ne donne plus signe de vie et dispara\u00c3\u00aet \u00c3\u00a0 petit feu.<\/p>\n<p>Je me suis donc demand\u00c3\u00a9 pourquoi. Surtout que c&rsquo;est un probl\u00c3\u00a8me qui m&rsquo;est d\u00c3\u00a9j\u00c3\u00a0 arriv\u00c3\u00a9 plusieurs fois.<\/p>\n<p>Voici donc les principales causes selon moi:<\/p>\n<p><strong><u>1. Trop de diff\u00c3\u00a9rences par rapport \u00c3\u00a0 ce qui \u00c3\u00a9tait souhait\u00c3\u00a9 :<\/u><\/strong><\/p>\n<p>C&rsquo;est ce qui arrive quand on a pass\u00c3\u00a9 beaucoup de temps pour atteindre le prototype et que l&rsquo;on se rend compte qu&rsquo;il reste encore \u00c3\u00a9norm\u00c3\u00a9ment de chemin pour atteindre ce que l&rsquo;on souhaitait au d\u00c3\u00a9but. Si le d\u00c3\u00a9veloppement a d\u00c3\u00a9j\u00c3\u00a0 pris plusieurs ann\u00c3\u00a9es et que l&rsquo;on se rend compte qu&rsquo;il reste encore plusieurs ann\u00c3\u00a9es devant soi, \u00c3\u00a7a d\u00c3\u00a9courage.<\/p>\n<p><em>Solution:<\/em> faire des projets plus simples<\/p>\n<p><strong><u>2. \u00ab\u00a0Les autres 90%\u00a0\u00bb :<\/u><\/strong><\/p>\n<p>En d\u00c3\u00a9veloppement informatique, on dit qu&rsquo;une fois les premiers 90% du logiciel d\u00c3\u00a9velopp\u00c3\u00a9s, il ne reste plus qu&rsquo;\u00c3\u00a0 faire les \u00ab\u00a0autres\u00a0\u00bb 90%.<br \/>\nCela a un m\u00c3\u00aame un nom, la r\u00c3\u00a8gle des 90-90 : <a href=\"http:\/\/en.wikipedia.org\/wiki\/Ninety-ninety_rule\">http:\/\/en.wikipedia.org\/wiki\/Ninety-ninety_rule<\/a>.<\/p>\n<p>En fait, cela vient de l&rsquo;impression d&rsquo;avancer tr\u00c3\u00a8s vite au d\u00c3\u00a9but et de faire du sur place vers la fin.<br \/>\nPar exemple pour un projet de jeu vid\u00c3\u00a9o, on met en place Ogre pour avoir un moteur 3d qui marche, on a un d\u00c3\u00a9but de gameplay, etc&#8230; Ce qui fait qu&rsquo;on progresse tr\u00c3\u00a8s vite au d\u00c3\u00a9but. Au bout d&rsquo;un moment, il ne reste plus que les d\u00c3\u00a9tails&#8230; en gros \u00c3\u00a9quilibrer le gameplay, faire les menus, les options, l&rsquo;aide en ligne, paufiner l&rsquo;IA, enlever le lag du jeu en r\u00c3\u00a9seau, d\u00c3\u00a9bugger, traduire les textes en anglais, etc&#8230; Presque rien quoi&#8230; (ce que l&rsquo;on appelle le polishing).<\/p>\n<p>Sauf qu&rsquo;en fait, en cumulant tous les \u00ab\u00a0petits d\u00c3\u00a9tails\u00a0\u00bb de ce genre, cela prend autant de temps (sinon plus) que tout ce qui a \u00c3\u00a9t\u00c3\u00a9 fait avant.<\/p>\n<p>Ceci provoque tout un tas de d\u00c3\u00a9sagr\u00c3\u00a9ments: <\/p>\n<ul>\n<li> On a l&rsquo;impression de ne plus avancer car les r\u00c3\u00a9sultats des changements sont minimes<\/li>\n<li> On ne voit pas la fin du projet car il y a toujours quelque chose \u00c3\u00a0 modifier<\/li>\n<li> C&rsquo;est un travail ennuyeux<\/li>\n<li> Il n&rsquo;y a plus de cr\u00c3\u00a9ativit\u00c3\u00a9, plus de challenge, ce n&rsquo;est que du travail \u00ab\u00a0idiot\u00a0\u00bb<\/li>\n<li> Quand on voit tout ce qu&rsquo;il reste \u00c3\u00a0 faire, on a plus envie de le faire<\/li>\n<\/ul>\n<p><em>Solution :<\/em> simplifier le projet, anticiper ces \u00c3\u00a9tapes <\/p>\n<p><strong><u>3. Le contenu :<\/u><\/strong><\/p>\n<p>Faire un proto avec une map de test, c&rsquo;est marrant.<br \/>\nFaire des niveaux ou des graphismes \u00c3\u00a0 la cha\u00c3\u00aene, c&rsquo;est moins marrant&#8230; \u00c3\u00a7a peut m\u00c3\u00aame \u00c3\u00aatre lassant, voire d\u00c3\u00a9courageant.<\/p>\n<p><em>Solution :<\/em> \u00c3\u00a9viter les jeux \u00c3\u00a0 contenu, ou avoir quelqu&rsquo;un qui aime bien faire \u00c3\u00a7a dans l&rsquo;\u00c3\u00a9quipe.<\/p>\n<p><strong><u>4. La sensation \u00ab\u00a0d&rsquo;avoir atteint sa vision\u00a0\u00bb :<\/u><\/strong><\/p>\n<p>Quand on veut cr\u00c3\u00a9er un jeu amateur, on a plein d&rsquo;images en t\u00c3\u00aate sur ce \u00c3\u00a0 quoi \u00c3\u00a7a ressemblera quand \u00c3\u00a7a sera fini.<br \/>\nLe truc, c&rsquo;est que lorsqu&rsquo;on atteint le proto et que celui-ci est conforme aux attentes, on se dit \u00ab\u00a0ouais, \u00c3\u00a7a marche, j&rsquo;ai enfin r\u00c3\u00a9ussi ce que je voulais faire\u00a0\u00bb.<br \/>\nComme on fait abstraction des d\u00c3\u00a9tails qui manquent (les autres 90%) et qui peuvent attendre, on a l&rsquo;impression d&rsquo;avoir atteint sa vision et on rel\u00c3\u00a2che les efforts.<br \/>\nEt l\u00c3\u00a0&#8230; c&rsquo;est le drame, on perd le momentum (= la lanc\u00c3\u00a9e qu&rsquo;on avait) et c&rsquo;est tr\u00c3\u00a8s dur de le r\u00c3\u00a9cup\u00c3\u00a9rer.<\/p>\n<p><em>Solution :<\/em> anticiper cette sensation pour redoubler d&rsquo;efforts \u00c3\u00a0 ce moment l\u00c3\u00a0<\/p>\n<p><strong><u>5. Les probl\u00c3\u00a8mes techniques non anticip\u00c3\u00a9s :<\/u><\/strong><\/p>\n<p>Quand on est tout seul sur son projet, tout va \u00c3\u00a0 peu pr\u00c3\u00a8s bien.<br \/>\nQuand on commence \u00c3\u00a0 avoir des joueurs, il faut g\u00c3\u00a9rer plein de choses suppl\u00c3\u00a9mentaires:<\/p>\n<ul>\n<li> les probl\u00c3\u00a8mes de configuration et de compatibilit\u00c3\u00a9 (syst\u00c3\u00a8me d&rsquo;exploitation, drivers&#8230;)<\/li>\n<li> les probl\u00c3\u00a8mes de taille d&rsquo;\u00c3\u00a9cran<\/li>\n<li> les probl\u00c3\u00a8mes de lag pour le jeu sur internet<\/li>\n<li> les probl\u00c3\u00a8mes de scalabilit\u00c3\u00a9 quand le jeu est trop gourmand niveau serveur<\/li>\n<li> etc.<\/li>\n<\/ul>\n<p>Tout cela d\u00c3\u00a9motive car on doit r\u00c3\u00a9gler les probl\u00c3\u00a8mes des autres que l&rsquo;on a pas chez soi, ils sont souvent inattendus et ne font pas progresser le jeu d&rsquo;un point de vue cr\u00c3\u00a9atif. <\/p>\n<p>On rajoute \u00c3\u00a0 cela tous les probl\u00c3\u00a8mes techniques li\u00c3\u00a9s \u00c3\u00a0 l&rsquo;apprentissage de technos diff\u00c3\u00a9rentes (rendu graphique, moteur physique, IA, etc.), ce qui allonge la liste de toutes les choses \u00c3\u00a0 r\u00c3\u00a9gler.<\/p>\n<p><em>Solution :<\/em> ne pas avoir de projets sur lesquels il faut apprendre trop de choses techniques en m\u00c3\u00aame temps, \u00c3\u00a7a limitera les surprises.<\/p>\n<p><strong><u>6. La diff\u00c3\u00a9rence de qualit\u00c3\u00a9 :<\/u><\/strong><\/p>\n<p>Si le projet est cons\u00c3\u00a9quent, on apprend beaucoup au cours de son d\u00c3\u00a9veloppement. Le probl\u00c3\u00a8me est que la diff\u00c3\u00a9rence de qualit\u00c3\u00a9 entre ce qui a \u00c3\u00a9t\u00c3\u00a9 fait au d\u00c3\u00a9but et maintenant (qualit\u00c3\u00a9 des graphismes, des maps, du code, etc.) est parfois telle que le jeu est devenu beaucoup trop in\u00c3\u00a9gal.<br \/>\nComme continuer sur une base instable n&rsquo;est pas une bonne id\u00c3\u00a9e, g\u00c3\u00a9n\u00c3\u00a9ralement soit le projet est recommenc\u00c3\u00a9 du d\u00c3\u00a9but \u00ab\u00a0en plus propre\u00a0\u00bb, soit abandonn\u00c3\u00a9 au profit d&rsquo;un autre projet.<\/p>\n<p><em>Solution :<\/em> privil\u00c3\u00a9gier les projets courts, surtout si ce projet sert d&rsquo;apprentissage<\/p>\n<p><strong><u>7. Les engueulades dans l&rsquo;\u00c3\u00a9quipe :<\/u><\/strong><\/p>\n<p>Si le projet commence \u00c3\u00a0 avoir du potentiel, il arrive que l&rsquo;\u00c3\u00a9quipe se d\u00c3\u00a9chire pour divergences d&rsquo;opinions. Soit parce que certains veulent avoir une plus grosse part du g\u00c3\u00a2teau que pr\u00c3\u00a9vu, soit parce que rien n&rsquo;a \u00c3\u00a9t\u00c3\u00a9 pr\u00c3\u00a9vu et que chacun a sa propre vision de ce que le jeu pourrait lui rapporter&#8230;<\/p>\n<p>Une autre raison peut \u00c3\u00aatre un d\u00c3\u00a9saccord sur l&rsquo;objectif r\u00c3\u00a9el du jeu (gratuit, open source, payant, etc.) ou de son style graphique une fois un proto technique r\u00c3\u00a9alis\u00c3\u00a9.<\/p>\n<p><em>Solution:<\/em> bien d\u00c3\u00a9finir les r\u00c3\u00b4les et pr\u00c3\u00a9voir un accord \u00c3\u00a0 l&rsquo;avance avant de s&rsquo;engager avec quelqu&rsquo;un, notamment sur la propri\u00c3\u00a9t\u00c3\u00a9 des \u00c3\u00a9l\u00c3\u00a9ments r\u00c3\u00a9alis\u00c3\u00a9s en cas de d\u00c3\u00a9part de la personne.<\/p>\n<p><strong><u>8. Le d\u00c3\u00a9part des membres qualifi\u00c3\u00a9s :<\/u><\/strong><\/p>\n<p>Si l&rsquo;\u00c3\u00a9quipe est compos\u00c3\u00a9e de personnes comp\u00c3\u00a9tentes et que le projet commence \u00c3\u00a0 se faire conna\u00c3\u00aetre, celles ci vont s\u00c3\u00bbrement avoir des propositions r\u00c3\u00a9mun\u00c3\u00a9r\u00c3\u00a9es pour leur talent&#8230; A ce moment l\u00c3\u00a0, il sera dur de les garder pour un jeu amateur&#8230; <\/p>\n<p>De plus, les nouveaux qui pourraient \u00c3\u00aatre recrut\u00c3\u00a9s pour les remplacer risquent d&rsquo;\u00c3\u00aatre largu\u00c3\u00a9s.<\/p>\n<p><em>Solution:<\/em> avoir des projets courts, particuli\u00c3\u00a8rement s&rsquo;ils sont b\u00c3\u00a9n\u00c3\u00a9voles. Si le projet est \u00c3\u00a0 vis\u00c3\u00a9e commerciale, l&rsquo;objectif est d&rsquo;\u00c3\u00aatre rentable rapidement pour pouvoir payer l&rsquo;\u00c3\u00a9quipe. <\/p>\n<p><strong><u>9. Le nouveau super projet qui est vachement mieux que l&rsquo;actuel :<\/u><\/strong><\/p>\n<p>Ben oui, vous avez une super nouvelle id\u00c3\u00a9e qui est vachement mieux que le projet actuel. Et puis de toute fa\u00c3\u00a7on votre code il est pas beau, il faudrait le rendre plus flexible. Et puis il y a ce nouveau moteur 3D qui a l&rsquo;air bien mieux que Ogre\/Irrlicht\/Unity\/Whatever. Quoique vous avez vu un tuto sur \u00ab\u00a0comment cr\u00c3\u00a9er son propre moteur 3D\u00a0\u00bb et \u00c3\u00a7a a pas l&rsquo;air si compliqu\u00c3\u00a9 que \u00c3\u00a7a en fait&#8230;<\/p>\n<p>De plus, c&rsquo;est \u00c3\u00a0 ce moment que vous allez voir tous les d\u00c3\u00a9fauts du projet actuel. Il est pas assez ceci, un peu trop cela&#8230; et au final, est-ce que \u00c3\u00a7a vaut vraiment le coup de le finir ?<\/p>\n<p><em>Solution :<\/em> Savoir se fixer sur un projet. Pas toujours facile. Cela d\u00c3\u00a9pend aussi de vos objectifs: apprendre ou finir un projet ?<\/p>\n<p><strong><u>10. \u00c3\u0160tre un concepteur et non un r\u00c3\u00a9alisateur :<\/u><\/strong><\/p>\n<p>Certaines personnes sont tr\u00c3\u00a8s bonnes pour concevoir des projets, \u00c3\u00a9laborer la strat\u00c3\u00a9gie, les diff\u00c3\u00a9rents \u00c3\u00a9l\u00c3\u00a9ments du concept, etc.<br \/>\nD&rsquo;autres personnes sont tr\u00c3\u00a8s bonnes pour les r\u00c3\u00a9aliser, passer au concret, appliquer les strat\u00c3\u00a9gies.<\/p>\n<p>\u00c3\u0160tre les deux en m\u00c3\u00aame temps n&rsquo;est pas toujours facile.<\/p>\n<p><em>Solution :<\/em> \u00c3\u00aatre les deux, ou trouver les personnes qui vous compl\u00c3\u00a8tent<\/p>\n<p><strong><u>Conclusion :<\/u><\/strong><br \/>\nTout ceci peut \u00c3\u00aatre chang\u00c3\u00a9 par des facteurs aggravants :<\/p>\n<p>&#8211; \u00c3\u0160tre sur plusieurs projets en m\u00c3\u00aame temps (\u00c3\u00a0 \u00c3\u00a9viter au maximum car un projet va toujours prendre le dessus sur un autre)<br \/>\n&#8211; Complexit\u00c3\u00a9 du projet<br \/>\n&#8211; Facteurs externes qui jouent sur le moral<\/p>\n<p>Si je devais r\u00c3\u00a9sumer, la plupart des causes viennent de la complexit\u00c3\u00a9 du projet. Donc :<\/p>\n<ul>\n<li>Fa\u00c3\u00aetes court<\/li>\n<li>Fa\u00c3\u00aetes simple<\/li>\n<li>Cr\u00c3\u00a9ez un momentum pour bosser d&rsquo;une traite sur le jeu et qu&rsquo;il n&rsquo;y ait pas de temps morts, surtout si vous \u00c3\u00aates une \u00c3\u00a9quipe<\/li>\n<li>M\u00c3\u00a9fiez vous de l&rsquo;impression d&rsquo;aller super vite au d\u00c3\u00a9but<\/li>\n<li>Une fois fini, recommencez en augmentant l\u00c3\u00a9g\u00c3\u00a8rement la difficult\u00c3\u00a9<\/li>\n<\/ul>\n<p>Et vous, pour quelles raisons votre projet a plant\u00c3\u00a9 apr\u00c3\u00a8s le proto ?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>D&rsquo;apr\u00c3\u00a8s une \u00c3\u00a9tude pas du tout objective (juste une impression en fait&#8230;), il semblerait qu&rsquo;il y ait deux moments critiques dans la vie des projets amateurs, deux moments o\u00c3\u00b9 la plupart des projets se plantent. Le premier moment, c&rsquo;est juste au d\u00c3\u00a9but, quand le projet est vraiment foireux et que la bande de coll\u00c3\u00a9giens qui [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,18],"tags":[],"_links":{"self":[{"href":"https:\/\/conquerirlemonde.com\/blog\/wp-json\/wp\/v2\/posts\/234"}],"collection":[{"href":"https:\/\/conquerirlemonde.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/conquerirlemonde.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/conquerirlemonde.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/conquerirlemonde.com\/blog\/wp-json\/wp\/v2\/comments?post=234"}],"version-history":[{"count":49,"href":"https:\/\/conquerirlemonde.com\/blog\/wp-json\/wp\/v2\/posts\/234\/revisions"}],"predecessor-version":[{"id":322,"href":"https:\/\/conquerirlemonde.com\/blog\/wp-json\/wp\/v2\/posts\/234\/revisions\/322"}],"wp:attachment":[{"href":"https:\/\/conquerirlemonde.com\/blog\/wp-json\/wp\/v2\/media?parent=234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/conquerirlemonde.com\/blog\/wp-json\/wp\/v2\/categories?post=234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/conquerirlemonde.com\/blog\/wp-json\/wp\/v2\/tags?post=234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}