[FR]Postmortem : Side-Tricks – GGJ2017

(english readers, please go here 😉 : Click on me!)

icon512

[version FR]

images

Pavé incoming…

Bien le bonjour, cher lecteur ! Ravi de vous (re)voir ici ! Si c’est la première fois que vous arrivez sur ce blog, laissez-moi me présenter :

giphy

Je suis Batora07, un Game Dev débutant et spécialisé dans la programmation.

Dans cet article, la conclusion d’un dossier de haute volée (ou pas) de plus de 4 articles décrivant mon aventure dans ma première Game Jam, je vais vous exposer les bons et mauvais points de notre jeu.

Un jeu créée pour la Global Game Jam 2017  de cette  année : Side Tricks – Pedal Your Train.

Si vous souhaitez en savoir plus sur mon expérience dans cette Global Game Jam 2017, je vous invite à lire ces articles :

GGJ 2017 – Jour 1

GGJ 2017 – Jour 2

GGJ 2017 – Jour 3 – Fin

v2iwlh
Un screenshot de Side Tricks

Tout d’abord, qu’est-ce que Side Tricks ?

Notre jeu est un jeu mobile de type runner très classique, développé avec Unity 5.3 et inspiré par le jeu mobile Alto’s Adventure , il est sorti gratuitement le mois dernier et à été réalisé en tant que hobby par une équipe de développeur, dont votre serviteur ;). Il tourne sous mobile android et il existe une version exécutable Windows.

Vous jouez un surfeur sur des câbles électriques, votre objectif est de surfer sur des « vagues » formées par les câbles électriques pour motiver des voyageurs à pédaler leur train le plus loin possible.

Vous vous êtes probablement déjà ennuyé suffisamment lors d’un trajet en voiture/train lorsque vous étiez enfant (ou même après :p ) pour vous imaginer les lignes électriques comme des vagues et faire semblant de surfer dessus avec vos doigts (sinon Séguéla/20 t’as raté ta vie, frère).

Le thème de cet année de la GGJ2017 étant « Waves », nous avons décidé de l’interpréter en tant que ces « vagues » formées par les lignes électriques.

Bien, maintenant que j’ai pu faire la présentation succincte de Side Tricks, c’est parti pour le Postmortem de notre jeu : Les bons et mauvais points de notre jeu ! :

Les Bons Points :

screenshot_2017-01-22-14-27-591

1- L’Art

Si vous êtes nouveau au concept des Global Game Jam, il y a une sorte de système de succès pour les développeurs si l’on arrive à insérer certaines features dans notre jeu, ce système s’appelle les « diversifiers ». Cette année, l’un de ces « succès »/ »diversifiers » s’appelait « Old Master ». Bon, par contre il n’y a rien à gagner à rajouter ces diversifiers c’est vraiment juste pour le fun ;).

Julie, notre artiste a été inspirée dans la création de ses assets graphiques par les travaux du « Old Master » Norman Wilkinson (et non je ne parle pas du vendeur de rasoirs 😉 ).

Voici l’un de ses artworks qui a inspiré Julie:

the-coronation-scot-shap-fell-cumbria-vintage-lms-travel-poster-by-norman-wilkinson-1937-472-p

Je pense que les assets graphiques sont l’un des meilleurs points de notre jeu. Ils sont rafraîchissants et mignons et Julie à réussi à tous nous les produire en seulement 2 jours, du coup félicitations à elle, vraiment chapeau :O !

Voilà une petite sélection de mes assets préférés qu’elle a fait pour notre jeu:

extraitassets

2- L’effet de défilement (scrolling) Parallaxe

Ma première tâche pour ce projet était de m’occuper de l’effet de défilement (scrolling) parallaxe pour notre gameplay de type « runner ». J’ai crée le background (le game object, pas l’asset hein 😉 ) et les différents plans qui auraient besoin d’utiliser cet effet en tant qu’un « quad » game object, c’est à dire un mesh quadrilatéral. Le shader associé avec ce game object a été passé sous mode alpha blended (Shader -> Mobile -> Particles -> Alpha Blended), puis j’ai attaché l’asset graphique du background à ce quad mesh. Cela permet au background de faire une révolution à l’infini grâce au script associé, à la manière d’une sphère qui tournerait sur elle même (sauf que le quad mesh est évidemment un quadrilatère, c’était un exemple pour vous aider à visualiser 😉 ).

Pour en savoir plus sur le code derrière l’effet de scrolling, je vous invite à jeter un œil à notre repo sur github, et plus particulièrement les scripts dans le répertoire Decors : github repo  : cliquez ici.

Je pense que l’effet parallaxe a été plutôt bien implémenté (oui je me jette des fleurs) et que l’on perçoit bien une sensation de mouvement venant du train (alors qu’en réalité il est fixe).

3- Un bon sens de camaraderie

img_0910

Cette GGJ était ma toute première expérience d’une Game Jam. Et ce fut une superbe expérience que j’ai vraiment appréciée sur tout le week-end. Et si je l’ai autant appréciée c’est parce qu’il y avait une très bonne alchimie dans notre groupe.

4-Effets sonores et musique

Moi : « Oups, j’ai complètement raté mon trick et maintenant je me ramasse la tête la première sur la ligne électrique :/ … »

Voyageurs : « BOUUUHOUUUH ! » « Pfft ! »

ou bien:

Moi : »Ouais, j’ai réussi à sortir 2 tricks d’affilées ! »

Voyageurs : « Yeah ! » « Youhouuuuh ! » « Wow ! »

Marie, notre sound designer à vraiment réussie à faire des sons super drôles que l’on réussisse ses tricks ou pas. Et je pouffe comme un crétin à chaque fois que je les entends xD.

5-Les Animations et la mécanique des wagons

Lorsque vous échouez deux fois un trick, l’un des wagons se détache du train. Mais avant que ça se produise, l’animation des voyageurs change, et s’ils ne sont pas suffisamment motivés ils s’ennuient et arrêtent de pédaler.

La mécanique de notre game over est assez étrange et amusante (t’as plus de wagons, t’as pas de chocolat !) et je pense que Thibault et Loriane ont vraiment gérés sur les animations de l’ennui des voyageurs et du détachement des wagons.

Je sais pas pourquoi, mais à chaque fois que je vois un voyageur qui en a ras-le-bol et qui se met à me huer ça me fait rire… même si ça signifie que je suis nul à mon propre jeu… ouais je suis un « peu » bizarre :/ .

 Les Mauvais Points :

Cadeau, une petite vidéo de quand notre jeu était buggé… bon okay, il l’est encore mais on avait que 2 jours é__è

1- Le resize de la MOOOOORT !

Bon les gars, sérieusement la prochaine fois on devrait VRAIMENT tous travailler avec la même résolution d’écran en preview sur Unity, surtout pour le développement d’un jeu mobile…  ça nous éviterait des … problèmes inexplicables <__< (cf vidéo plus haut).

2- Utiliser Git avec des personnes peu versée dedans (dont moi) en seulement deux jours de dev… et oui, on l’a fait crasher deux fois…

Au début du projet j’ai suggéré que l’on travaille tous sur sa propre branche de fonctionnalité git pour pas péter la branche master… Et bien, c’était pas une idée très folichonne en fait :/.

Ne le prenez pas mal, j’adore Git et tout, mais c’est clairement pas la première fois que j’ai des problèmes avec les systèmes de versionnages en ligne en crunch mode avec d’autres devs qui sont pas très à l’aise avec l’environnement.

A un certain moment du dév, environ après 18h de code non stop en crunch mode, on a COMPLÉTEMENT PÉTÉ le dépôt…

Et on l’a pété 2 fois en plus…

Mais que s’est-il passé ?

A vrai dire, je n’en suis pas très sûr moi-même x) Mais de ce que j’ai compris :

-Victor a essayé de merge sa branche avec la branche master…

-pendant que je faisais exactement la même chose avec ma branche…

-et que Thibault essayait de pull exactement au même moment… le bon timing du caca…x)

On a décidé de refaire un nouveau dépôt tout propre après avoir perdu 45 précieuses minutes à essayer de résoudre le problème, sans succès…

Le second crash s’est produit à peine quelques heures plus tard, mais à ce moment là j’étais perdu …  et un peu en mode « so be it » (pour ma défense ça faisait pile un jour que j’avais pas dormi x) )…

3- L’attaque sournoise des poteaux électriques

Bon, je vais enfin vous parler du pourquoi, et du comment les poteaux en ont fait qu’à leur tête avec les câbles qui partaient en live dans le vidéo plus haut.

Pour cela, je vais devoir vous expliquer comment on a implémenté la génération pseudo-procédurale des poteaux. Ca va prendre un petit moment d’explications, donc si vous n’en avez absolument rien à faire de la programmation je vous invite à passer au point suivant 😉

On a créée une liste de poteaux fixes, avec un nombre constant de 7 poteaux dans la liste.

Au début, lorsque le joueur arrive dans la scène, il verra toujours les mêmes 7 poteaux fixés exactement aux mêmes endroits sur un plan en défilement.

Chaque fois que le « second » poteaux (poteau 2), celui qui tient la ligne électrique depuis sa gauche, est en collision avec le côté gauche de l’écran (sous-entendu, le côté gauche de la caméra, à laquelle on a attachée une box collider), le « premier » poteau (poteau 1, celui qui tient la ligne électrique depuis sa droite) disparait complètement, et l’on supprime aussi le câble reliant le poteau 1 au poteau 2. (en fait on a conservé le poteau 1 dans une variable temporaire).

Puis on met à jour la liste des poteaux, le poteau 2 devient le nouveau poteau 1, le poteau 3 devient le poteau 2, etc…

Le poteau 1 est mis en bout de la liste, et devient le poteau de fin (poteau 7) avec une nouvelle taille générée aléatoirement et un espacement avec le poteau 6 (un X) également généré aléatoirement.

On connecte ensuite une nouvelle ligne électrique entre le poteau 6 et le poteau 7. Le poteau 6 est donc relié à sa gauche avec le poteau 5 et à sa droite avec le poteau 7 (anciennement le poteau 1, vous suivez ? x) )

Et c’est tout, on boucle là-dessus !

Et voilà comment on trompe le joueur avec une boucle infinie et seulement 7 poteaux pour lui faire croire à un voyage infini en train …

Mais !

Comment est-ce qu’on a réussi à avoir ce bug chelou avec les lignes qui font n’importe quoi ?

Et bien, c’est un problème assez simple qui ne m’a pris que 4 minutes à résoudre après être tombé dessus comme présenté dans la vidéo…

Le bug est apparu pour la première fois après que j’ai changé l’asset du prefab du poteau . mais qu’est-ce qui a bien pu faire crasher le jeu comme ça ?

En fait le lien du premier poteau (celui sur lequel j’avais appliqué l’asset et modifié le prefab) avait été cassé dans la liste des poteaux depuis le panneau Inspector. J’ai donc simplement remplacé le lien cassé par la nouvelle instance du prefab, et tout de suite après cela à bien mieux fonctionné.

Mais après quelques autres tests, un nouveau problème est survenu (oui, encore). Même avec le nouveau prefab, parfois on obtenait le même comportement aberrant de la vidéo.

Encore une fois, la solution au problème était facile à trouver, même si un peu tricky et surtout après une journée complète sans dormir et le nez devant le pc : c’était parce que l’on avait placé le premier poteau en dehors de la caméra dans la scène… et GG ça à complètement pété le jeu…

Une fois ce problème résolu, le jeu fonctionnait alors (presque) bien… jusqu’à ce qu’un bug infernal face son apparition… :/

4- Bonjour ! Je suis un surfeur de lignes électriques et je suis DéfOncéééééé !!!!~

 Bon, pour tout vous dire je n’ai toujours pas compris pourquoi on a ce bug, celui-ci provenant d’un script que je n’ai jamais touché, le script du Surfer. Apparemment, parfois le rigidbody 2D du surfeur part en live avec les rigidbody des câbles et ça lui permet de passer à travers le câble et de tomber jusque sur les rails du train … ;__;… Ce qui est problématique c’est que je n’ai absolument aucune idée de comment le script du Surfer fonctionne pour pouvoir corriger le problème (parce qu’on a eu que 2 jours pour dév le jeu et qu’on a codé en quick and dirty comme des gros sales sans mettre aucun commentaire x) ).

Mais, juste avant notre présentation à nos camarades développeurs de la GGJ2017, Thibault à fait un fix de son script qui a super bien marché et on a eu aucun problème lors de la présentation de notre jeu sur l’ordi de Victor… Cependant,…

5- Notre jeu n’est pas fini… et il ne le sera probablement jamais… ah et oui, il est complètement buggé :O

Ouais, le truc c’est que Thibault avait corrigé le bug du Surfer qui tombait sous les lignes… mais il l’a corrigé sur le pc de Victor. Et malgré les quelques conversations sur discord que j’ai pu avoir avec lui pour lui demander de m’envoyer le fix j’ai reçu aucune réponse depuis… aucune idée de pourquoi… (oui, ça craint d’autant plus qu’on avait passé un bon week-end donc je pensais pas que ça allait se finir comme ça en silence radio) et malheureusement la version mise sur le site de la GGJ  est celle d’avant le fix du bug… Je suis un peu triste de vous présenter le jeu tel quel mais bon, telle est la loi de la Deadline. Et si je rédige actuellement ce postmortem, c’est aussi pour pouvoir passer à autre chose, et revenir sur mes projets personnels.

Donc, si vous êtes encore intéressés après tout mon laïus, même après vous avoir prévenu des terribles bugs qui vous attendent, je vous invite à vous rendre sur ces pages pour essayer la version que vous pourriez apprécier le plus :

icon512

CLIQUEZ SUR MOI POUR ACCÉDER A L’HABITUELLE VERSION DAY ONE BUGGE AS FUCK DE SIDE TRICKS (GGJ2017)

CLIQUEZ SUR MOI POUR ACCÉDER A UNE VERSION TOUTE AUSSI BUGGE MAIS UN PEU AMELIOREE 

( ͡° ͜ʖ ͡°) (Itch.io)

Conclusion : Terminer un prototype le plus vite possible. Sérieusement, finissez le (plus) vite (que nous) ! ( ͡° ͜ʖ ͡°)

Pour conclure ce postmortem, je dirais que si vous souhaitez créer un jeu dans un intervalle de temps aussi court (2 jours), vous devez vraiment essayer de sortir un prototype jouable le plus rapidement possible. Ca vous aidera vraiment à gagner du temps pour plus tard, et plus particulièrement le dernier jour.

Je pense que l’on a pas mal raté cette étape importante dans notre projet, mais je suis quand même content du résultat qu’on a eu en si peu de temps, et j’ai adoré cette expérience, je vais précieusement conserver ces souvenirs de ma première expérience de « fun crunch time game dev » (et qui n’est, j’en suis sûr, pas ma dernière), j’ai rencontré des gens super intéressants là-bas et j’espère vraiment pouvoir participer très bientôt à une autre Game Jam ! 🙂

Merci beaucoup, cher lecteur, pour avoir eu le courage de lire mon pavé jusqu’à maintenant, et je vous laisse sur cette vidéo des vidéastes d’Extra Credits (vidéo en anglais) à propos de la joie de faire des jeux sans les contraintes de game devs professionnels:

A la prochaine ! Tchou tchou ! Mata Ne, またね !

qsbrprni_400x400


Une réflexion sur “[FR]Postmortem : Side-Tricks – GGJ2017

  1. En tout cas, bravo pour ce jeu mobile ! Il semble intéressant et ça me plairait bien de le découvrir. En effet, je m’ennuie beaucoup quand je suis dans le métro et du coup, je joue sur mon smartphone. D’ailleurs, j’ai déniché une application gratuite en regardant ce clip : https://www.youtube.com/watch?v=DS_ZFxBSpiA ! Cette appli comprend plusieurs jeux et de plus, elle est disponible sur les appareils iOS et Android. Actuellement, je m’amuse avec Jelly Beach et dès que j’aurais terminé j’irai à la découverte de Side Tricks. 🙂

    J'aime

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s