Vendredi, 18h00 : l'animation se met en route. Mr Helmut, l'organisateur de l'événement, introduit avec Thomas Willaume, le président de l'asso "Aux frontières du Pixel" le global game jam. Après un petit speech, on a droit à une série de vidéos de développeurs de jeu "célèbres" (on n'en connait pas la moitié ! ok pour l'inventeur de Sim City et un des devs de Quake, mais les autres ??) qui essaient de nous donner des conseils de base : ne pas être trop ambitieux, se débrouiller pour collaborer, comment trouver l'inspiration, etc.

Vendredi, 19h00 : On a enfin le thème ! On est vraiment surpris et limite déstabilisés ! les anciens thèmes étaient des mots assez génériques, comme "tromperie" en 2010 ou "extinction" en 2011 qui permettaient pas mal de choses, mais là ! Voici le thème :

Ouroboros

Vendredi, 19h30 : Passé la surprise du thème, on passe en revue les diversifieurs, qui sont des sortes d'objectifs secondaires et facultatifs qui s'ajoutent au thème. On commence alors à réfléchir à notre "plan de domination du monde" autour d'une grande feuille de papier au format "raisin".

plan de domination du monde n°1 plan de domination du monde n°2
(vous pouvez cliquer sur les images pour les voir en plus grand)

Butch nous rejoint après une petite demi-heure, après être sorti du boulot et avoir bravé les bouchons sur l'autoroute.
On va réfléchir pendant une petite heure à notre concept de jeu. Deux idées sortent du lot et collent avec notre volonté de sortir un jeu sur iPad :

  • Un jeu de hula-hoop sur iPad, utilisant le gyroscope pour contrôler les mouvements.
  • Un jeu de plateforme, dans lequel un petit personnage essaye de s'échapper de l'estomac d'un serpent géant sans réellement y parvenir (le serpent se mord la queue).

On est finalement partis sur la 2e option, même si initialement il y avait autant de variantes de ce jeu que de personnes dans l'équipe. Certains envisageaient par exemple que le personnage soit lui-même un serpent qui se mord la queue et qui roule à l'intérieur de l'estomac d'un serpent qui se mord la queue. Une sorte de mise en abîme ou de "snake-ception" que nous avons finalement choisi d'écarter. Une fois l'idée un peu raffinée, on a listé les fonctionnalités à la louche (cf image de droite ci-dessus) puis on a sélectionné parmi celles-ci ce qui était le strict minimum à implémenter. On peut voir qu'on hésite encore entre 2 types de personnages : un éléphant et une souris (on avait aussi pensé à un pingouin et un poussin).
On a aussi trouvé un nom pour le jeu : "Jump & Puke"

logo jump and puke

Vendredi, 21h : Chacun se met à bosser sur l'idée. Les développeurs essaient d'initialiser un projet sur github pour pouvoir partager les sources, mais le réseau est trop lent. Il leur faudra encore une petite demi-heure pour mettre en place un serveur en local. Je bosse avec Butch sur l'ambiance du jeu. Pas simple de se projeter comme cela dans l'inconnu. Est-ce qu'on va réellement réussir à sortir quelque chose de tout ça ?

Vendredi, 22h : j'ai fait quelques croquis de personnages et d'ambiances et je les propose à la team. Ils ont l'air emballés et on décide de choisir le personnage de l'éléphant (en référence au Petit Prince), probablement le choix de la logique, vu que l'éléphant est le seul animal sur terre qui ne peux pas sauter. La ligne directrice coté graphique est fixée, je peux continuer.
Biou sympathise avec notre voisin "Megaman", qui développe seul un jeu ! Ok c'est un professionnel mais quand même ! Il nous conseille de développer le jeu en flash, car une bonne librairie nous simplifierait bien la vie. Mais nous voulons faire un jeu sur iPad, alors nous restons sur notre lancée. Plus tard il surnommera notre équipe "l'Agence Tous Risques", car nous n'avons jamais développé de jeu auparavant et nous utilisons selon lui la plateforme la plus chiante au monde, dans un langage qu'aucun de nous ne connait (on a regardé un peu quelques tutos une semaine avant) ;)

Samedi, 00h00 : je décide de tenter des couleurs et des ombres sur mes dessins, mais ça ne me plaît pas et je me dis que je m'occuperai des couleurs plus tard, si j'ai le temps : le but est quand même d'avoir quelque chose de fonctionnel rapidement, alors je m'occupe des dessins des bonus, des ennemis, d'un logo... j'ai encore plein de trucs à faire !

Samedi, 3h00 : avec Biou on rentre se coucher. Ça fait un bout de temps qu'on a plus 18 ans et on sait bien qu'on ne tiendra jamais une nuit blanche en enchainant une journée de travail derrière. La nuit va aussi être très chaude, car le chauffage est resté coincé sur pyrolyse ! Noliv et Vincent ont migré pendant la nuit au RDC où l'ambiance était plus fraiche.

Samedi, 7h00 : le réveil sonne et après un passage éclair à la salle de bain, on retourne au GGJ rejoindre Noliv et Vincent qui ont fait une nuit blanche et qui tournent au café. On apprend qu'un problème majeur s'est produit pendant la nuit et qu'ils sont plus ou moins repartis de zéro pour mieux recommencer. En gros nous avons atteint une limite du framework que nous utilisions (cocos2d-iphone) et nous sommes partis sur la version instable de ce framework. En cherchant un peu sur le net autour de notre problème, nous avons vu que quelqu'un avait rencontré le même problème que nous. La correction datait du même jour à 3h du mat. Après quelques tests, cette version réglait effectivement nos problèmes. Vu la date, il est possible que cette correction de bug soit intervenue dans le cadre du global game jam par une autre équipe quelque part dans le monde. Le seul risque, que cette version soit trop instable pour produire un jeu fonctionnel...
Juste avant de trouver la solution à ce problème, je pense que l'équipe a eu un gros doute et on a failli abandonner. Finalement on a bien fait d'insister.

Samedi, 10h00 : ma maman arrive en support logistique avec une thermos de café maison, du pain et de la charcuterie. Yay !
Ceux qui n'ont pas dormi de la nuit commencent à en sentir les effets, coups de barre, etc.. mais la motivation est toujours au rendez-vous !

Samedi, 12h10 : Biou est allé chasser quelques courses et nous a ramené de la nourriture de champions pour le repas de midi : pain, chips, knacki ball, chocorems, mandarines et compotes. Les nuit-blancheurs n'ont pas trop faim et préfèrent se doper au café. Avec Noliv on commence à bosser sur la map du niveau.
Les développeurs souffrent à chaque merge sur git. L'intégration avec xcode est assez mauvaise, ou alors nous avons mal paramétré notre projet, mais quasi à chaque push sur le serveur, nous sommes obligés de merger le fichier de projet xcode...

Samedi, 15h50 : quoi? mais il était 12h10 y'a 5 minutes ! Happés par une faille spatio-temporelle, nous n'avons apparemment pas produit grand'chose depuis midi.

Samedi; 16h00 : Noliv enregistre des sons de vomi et les passe au ralenti avec des effets de réverbération. Je crois qu'on est restés coincés dessus une bonne demi-heure. Ce genre de bruitages va déclencher de bons fous rires dans l'équipe.

Samedi; 16h30 : Je commence un dessin de l'équipe pour la page de crédits, mais aussi pour en garder un souvenir. Après encrage et un petit coup de scanner, ça donne ça :

la team, dessinée

Samedi, 17h23 : quoi? mais il était 12h10 y'a 10 minutes !

Samedi, 18h30 : il commence a faire froid au rez-de-chaussée et on organise une migration à l'étage du dessus, ou la température est devenue plus supportable que la veille

Samedi, 19h00 : les pizzas arrivent et c'est l'occasion de faire une pause. La fatigue se fait ressentir mais j'ai encore pas mal de trucs à dessiner.

Samedi, 21h48 : quoi? mais il était 12h10 y'a 25 minutes !

Dimanche, 0h00 : Mr Helmut, l'organisateur du GGJ, a craqué, et a développé un jeu sur kinect en à peu près 2 heures. Il me demande un coup de main pour les graphismes de son jeu, alors hop, je lui prépare ça rapidement, mais avec la fatigue, le "rapidement" prend un peu de temps.

Dimanche, 1h00 : ça commence à craquer sévèrement du coté des développeurs : entre les "c'est toi le ... " et les "ta mère ..." difficile de garder son sérieux. La synthèse vocale qui lit du code source en français aura raison de nous et quelques failles spatio-temporelles nous aident à passer le temps. Le code source s'en souvient encore via les commentaires débiles et les noms de variables à rallonge.

Dimanche, 2h00 : Butch me fait écouter ses boucles de musique et ses sons pour voir si ça colle bien à l'univers du jeu et c'est une réussite. On ressent bien la "lourdeur" de l'éléphant qui avance et les sonorités du serpent. C'est incroyable de se dire qu'en si peu de temps il a réussi à créer tout un univers sonore qui ne devient pas insupportable au bout de 10 minutes : probablement grâce aux variations de ses boucles, je vous laisse écouter :

Dimanche, 2h45 : après avoir déplacé son curseur dans son code en mode ↑ ↓ ↑ ↓ ↑ ↓ pendant 10 minutes, Vincent décide de s'allonger un peu à coté du chauffage pour dormir un peu.

Dimanche, 3h00 : je suis claquée, Biou me ramène à la maison pour que je puisse dormir "un peu" et il retourne bosser.

Dimanche, 3h30 : Noliv et Butch partent s'isoler quelques minutes pour enregistrer les bruitages du jeu : collisions, vomi, saut : tout est bruité à a bouche !

Dimanche, 4h00 : Noliv pète encore la forme et continue à coder, quand soudain il se lève de sa chaise, s'allonge sur le sol et s'endort.

Dimanche, 5h00 : Butch a failli devenir fou en écoutant en boucle des sons de vomi pour les adapter à la musique du jeu ! Il vient de terminer le plus gros du travail sonore et rentre se coucher.

Dimanche, 8h00 : le soleil se lève sur le global game jam. C'est la dernière ligne droite et le jeu est quasi fini. Biou implémente un système de scores basique pendant que Noliv et Vincent se réveillent et raccrochent les wagons.

Dimanche, 10h15 : je me réveille grâce à un sms, les mecs ont bossé toute la nuit et certains ont dormi quelques heures à même le sol.

Dimanche, 11h00 : je retrouve l'équipe qui a super bien avancé, ils ont géré les collisions, les bonus et les ennemis pendant la nuit, c'est super épatant de voir le jeu tourner. Vincent se sent motivé pour gérer du parallaxe, je dessine donc quelques formes pour mettre dans le fond.
Finalement on trouve que le coté noir & blanc + rouge rend vraiment pas mal. On décide donc de rester sur ce style. Les couleurs et les ombres, ça ne sera pas pour ce jeu.

Dimanche, 12h00 : on fait un dernier point avec Butch au niveau de l'ambiance sonore histoire d'ajuster les sons des bonus et ça rend vraiment bien.

Dimanche, 13h00 : les tests s'enchainent, les réglages se précisent, j'attaque une page d'aide et on se fait interviewer rapidement par des web-journalistes. Biou s'est éclipsé pour prendre une douche après sa nuit blanche, pour revenir pour la dernière ligne droite.

c'est bientôt la fin

Dimanche, 14h30 : on uploade une première version du jeu sur le site du global game Jam. Le jeu fonctionne, la musique s'enchaine, les graphismes sont terminés. On tient notre version 1.0, dispo sur le site du global game jam.

Dimanche, 14h45 : On a un dernier petit coup de speed pour intégrer quelques modifications de dernière minute. Je ne sais pas si on a finalement pu uploader notre dernière version sur le site du GGJ à cause des problèmes de réseau et du site qui était submergé. Il est temps de prendre une petite photo de l'équipe pour immortaliser le moment :)

la team, en vrai

Dimanche, 15h00 : ça y est, c'est fini, il est temps de rendre notre copie et de ranger notre bordel nos affaires. Les équipes se rassemblent au rez-de-chaussée et les visiteurs commencent à arriver. Le café coule toujours à flot et on va devoir présenter notre jeu devant tout le monde. On redoute pas mal l'effet Bonaldi, mais vu le nombre de tests effectués, on se dit que ça devrait rouler :)

yay ça marche

Dimanche, 16h00 : la team mario (c'est nous !) est la première à présenter son jeu, et heureusement, parce que du coup on a pas trop la pression d'avoir vu les autres jeux avant. Noliv présente le jeu avec brio et arrive même à jouer tout un niveau en expliquant au public comment fonctionne le jeu. Le public a l'air d'apprécier, tout comme nous. Les autres teams passent après nous et présentent des jeux tous différents et très chouettes, avec des univers très originaux.

Voici une petite vidéo à l'arrache du jeu :

Dimanche, 16h30 : le public vote pour son jeu préféré et notre team arrive 2ème ex-æquo avec 8 votes (12 pour l'équipe gagnante). On se dit que finalement on s'en est plutôt bien sortis, pour des débutants. L'objectif du week-end est donc complètement rempli : beaucoup de fun, un très bon moment, un jeu qui fonctionne et une très belle expérience !

Dimanche, 19h00 : comme un bonheur n'arrive jamais seul, nous sommes aussi passés rapidement (3 secondes?) sur France 3 Lorraine pendant le 19/20:

on est même passés sur france 3

Lundi, 13h00 : Biou met les sources sur github dans le repository du projet et on a bien l'intention de tenter de l'uploader sur le store quand on aura réglé quelques points de détails.

Update : Le jeu est maintenant disponible gratuitement sur l'App Store : Jump&Puke