Tu tires ou tu pointes? La version mobile du jeu Chiche ou Pois Chiche

Tags :
  • PROJET
  • 2023-2024
Auteurs :
  • Duc DANG VU
  • Sarah SEBASTIEN
  • Samy DIAFAT

Sommaire

Contexte et objectifs du projet

Ce projet a pour but de créer une version mobile du jeu de cartes "Chiche ou Pois Chiche". Ce projet provient d’un constat simple : après plusieurs parties du jeu de cartes, on retombe rapidement sur les mêmes questions et le jeu devient vite obsolète pour un joueur une fois qu’il a rencontré toutes les questions et connaît toutes les réponses. Notre idée serait donc de créer une version mobile du jeu pour pouvoir alimenter la base de données et ainsi offrir aux fervents joueurs de “Chiche ou pois Chiche”, de pouvoir y jouer indéfiniment.

Par ailleurs, en terme de plus value apportée au jeu, une application mobile serait un moyen d'accroître sa visibilité, et faciliter son accès. En effet, à l’ère du digital, les jeux mobiles offrent une accessibilité sans précédent, qui permet aux utilisateurs de jouer n'importe où et à tout moment, contrairement aux jeux de cartes papier qui nécessitent d’avoir le jeu à portée de soi pour cela.

Image jeu Image du jeu original

Comparaison avec le jeu papier

Le but est de bien connaître son partenaire de jeu, afin de poser les questions pertinentes auxquelles on pense qu’il aura la réponse et de gagner le plus de points. La partie se termine quand il n’y a plus de cartes dans aucun jeu des joueurs, et l’équipe gagnante est celle qui a le plus de points. Les quelques nuances que nous avons apportées sont répertoriées dans ce tableau.

"Chiche ou Pois Chiche" "Tu tires ou tu pointes"
Pour chaque question le joueur lit l'indice à son partenaire puis lui demande "Chiche ou Pois Chiche ?". Il répond "Chiche" s'il pense pouvoir répondre à la question sans proposition de réponse ou "Pois Chiche" s'il souhaite les 4 propositions. Si la réponse donnée est correcte, l'équipe récupère une "Carte Chiche" (3 points) ou une "Carte Pois Chiche" (1 point) selon l'annonce faite précédemment. Pour chaque question le joueur lit l'indice à son partenaire puis lui demande "Tu tires ou tu pointes". Il répond "Je tire" s'il pense pouvoir répondre à la question sans proposition de réponse ou "Je pointe" s'il souhaite les 4 propositions. Si la réponse donnée est correcte, l'équipe gagne 3 points ou une 1 point selon l'annonce faite précédemment.
Les équipes sont de 2 joueurs minimum, autant que voulu. Les équipes sont de 2 joueurs exactement. Entre 4 et 8 joueurs.
Le jeu possède 8 catégories de questions : "Sport", "Culture G", "Petits écrans", "Grand écran", "Voyage",“Musique", "Bouffe". Le jeu possède 11 catégories de questions pour permettre à tout le monde d’avoir des points forts et des faiblesses :"Sport", "Culture G", "Petits écrans", "Grand écran", "Voyage", “Musique", "Bouffe", “Sciences”, Histoire”, “Divers”.
Quantité limitée de questions : 495 cartes Base de données de questions illimitée et approvisionnable par les joueurs
Dé à lancer pour définir les règles du tour (chiche imposé, vol de points, etc…) Pas de dés

"Tech stack" ou stack technique

Pour réaliser ce projet de jeu mobile, nous avons pris le partie de réaliser l’entièreté du jeu en low code. Nous utilisons les technologies suivantes :

Organisation

Dans le cadre de notre projet, nous avons cherché à mettre en pratique les différentes notions apprises cette année. Tout d'abord, nous avons utilisé les méthodes de l'UX Design pour définir la problématique à laquelle notre projet répondra. Après une phase de recherche et d'analyse, nous avons défini la problématique suivante : "Faire en sorte que les amis, collègues, familles s’amusent avec une interface simple, dynamique et sans limite". Cette problématique nous a permis de mieux cadrer notre projet en identifiant trois personas, correspondant aux futurs utilisateurs de notre application. La création de ces personas nous a permis d'identifier les fonctionnalités importantes pour chaque profil d'utilisateur, afin de répondre au mieux à leurs attentes

Ensuite, nous avons décidé de nous organiser en suivant la méthode Agile, dont nous avons appris les bases en début d'année. Cette méthode encourage l'itération rapide, la prise de décision décentralisée, la livraison plus fréquente d'une plus petite valeur et une réponse plus rapide au changement. Cette méthode est basée sur des cycles de travail réguliers, les sprints, qui sont alimentés par des tâches clairement définies dans notre backlog de projet. Grâce à cette approche, nous avons pu livrer des fonctionnalités opérationnelles à chaque fin de sprint, tout en restant flexibles et en nous adaptant aux changements de priorités.

Nous avons donc tout d'abord établi le backlog de notre projet. Nous avons classé les User Stories suivant plusieurs catégories. Nous avons aussi estimé les complexités de chaque fonctionnalité (échelle de Fibonacci) et associé à chacune une valeur métier (méthode MoSCoW).

backlog

Si l'on fait un bilan des User Stories qui ont été réalisées et celles qui ne l'ont pas été, on obtient le graphique suivant:

Deux fonctionnalités "Must" n'ont pas été développées:

Organisation interne

Étant donné que nous avons développé notre application sur la plateforme web de Bubble, nous n'avons pas besoin d'utiliser Git pour le contrôle de version. Cependant, nous avons eu besoin de communiquer efficacement et de stocker tous nos fichiers dans un dossier commun. Pour ce faire, nous avons créé un Google Drive où se trouvent notre banque d’images, nos comptes rendus de réunions ainsi que nos différents livrables. Pour notre communication, nous avons utilisé Messenger, une solution simple et pratique pour les boomers que nous sommes.

Concernant l’organisation de notre travail, nous n’avons pas eu de rôles précisément définis puisque chacun des membres de notre équipe a travaillé sur toutes les composantes de notre projet. Nous avons décidé de suivre l’emploi du temps standard, à savoir une réunion en présentiel chaque semaine au minimum pour avancer le projet, et ponctuellement des séances en distanciel. En cas de retard, nous avons pu travailler sur notre temps personnel lors des semaines d’alternance et/ou vacances pour rattraper le temps perdu.

Enfin, pour l'organisation dite "externe", afin d’avoir une communication fluide avec notre tuteur, nous avons créé un second groupe messenger, ainsi que d’ouvrir l’accès à notre dossier google Drive pour qu’ils puissent avoir accès à nos comptes rendus.

Tests utilisateurs et améliorations du backlog

Après plusieurs mois de travail, nous avons réussi à avoir une première version fonctionnelle de l’application. C’est alors que nous avons commencé la phase de test. Cette phase a été menée auprès de camarades centraliens. Lors de ces tests, nous avons particulièrement porté notre attention sur la facilité d’utilisation de l’interface, ainsi que de sa clarté. L’application devait être auto-portante, c’est-à-dire que les joueurs devaient savoir ce qu’ils devaient faire sans qu’on ait besoin d’intervenir. Bien évidemment, le jeu doit aussi être amusant pour les joueurs, et les graphiques plaisants. Le premier test a été réalisé lors d’un Bar’bu (partie de 4 joueurs).. Nous avons ensuite fait un deuxième test avec nos camarades de la promo Do-IT (6 joueurs) et lors d’une soirée autour d’une table (6 joueurs). Ces environnements de tests ont été donc plutôt festifs, et donc propice au jeu. Le but était d’étudier le chemin utilisateur et de voir si ce que nous avions mis en place était clair pour quelqu’un de l’extérieur. En fonction des fonctionnalités que nous voulions évaluer, nous leur laissions le téléphone à une certaine page de l’application (page pour paramétrer la partie, page choix du jeu quand nous avons implémenté la possibilité d’ajouter ses questions, ou la page de connexion), avant de leur avoir introduit brièvement les règles du jeu, pour leur donner envie d’y joueur. Durant le déroulement de la partie, nous avons également essayé d’intervenir le moins possible. Voici ce qui est ressorti de ces tests:

Ces tests nous ont beaucoup appris, et ont pointé des défauts dont nous avions pas pensé, étant trop le nez dans le projet. Cette prise de recul a été bénéfique. Nous avons ainsi modifié le backlog de notre application pour mieux pallier aux remarques faites lors des tests. La première modification a été la création d’une fenêtre de confirmation des réponses. Cela a permis d’éviter le problème du joueur qui clique à côté de la réponse qu’il voulait sélectionner. Nous avons également changé le temps de lecture de la carte à 45 secondes au lieu de 30 secondes. Nous avons aussi ajouté un icône d'un voleur sur le bouton de pioche, pour préciser le fait que cette option permet de voler une carte dans le jeu d'un adversaire. Malgré la création de la fenêtre de confirmation de réponse, il y avait toujours un problème sur la confirmation de la bonne réponse. En effet, quelques fois, le joueur confirmait la bonne réponse mais ne gagnait pas de point. Cela est dû au fait que dans notre base de données Airtable, nous avons rentré la bonne réponse dans une colonne "Bonne réponse", et pour vérifier si la réponse choisie est correcte, on compare l'élément dans la colonne "Bonne réponse" et celui dans la colonne de la proposition choisie. Le problème est que cette comparaison compare chaque caractère très rigoureusement. Donc les fautes de frappe posent problème, tout comme la sensibilité à la casse ou même un espace à la fin de la chaîne de caractère. Pour éviter cela, on doit simplement être rigoureux sur le renseignement des données dans la BDD. Nous avons écrit un petit script Python pour vérifier s'il y avait des problèmes dans la base de donnée (heureusement, le script a renvoyé 5 erreurs!). Pour éviter ce problème, nous aurions dû renseigner le numéro de la bonne réponse dans la colonne "Bonne réponse", plutôt que le texte entier de la bonne réponse.

Cliquer pour voir le script Python

import openpyxl

wb = openpyxl.load_workbook('BDD.xlsx')
sheet = wb['Questions-Grid view(1)']

for nb_row in range(2, 235):
    cell_reponse = sheet.cell(row = nb_row, column = 4)
    reponse = cell_reponse.value
    list_proposition = []
    for nb_column in range(5, 9):
        cell_proposition = sheet.cell(row = nb_row, column = nb_column)
        list_proposition.append(cell_proposition.value)
    if reponse not in list_proposition:
        print("ERREUR", nb_row)

print('FINI')

Voici un diagramme de Gantt représentant l'évolution de notre projet sur l'année:

Gannt

Résultats et livrables

Maquette Figma

Comme la réussite de notre jeu résidait en grande partie à la réussite de l'expérience utilisateur de nos joueurs, il nous fallait nous appliquer particulièrement dans le design de notre interface.

Nous avions obtenu une première version à la fin des cours d'UX design, qui ressemblait à ceci :

Mais lors du cours d'UI, plus centré sur le design visuel, il nous a été reproché que notre design ne faisait pas assez jeu. En voulant nous adresser à un public large, plutôt que de choisir un persona, nous n'arrivions pas à nous décider sur des choix visuels précis.

Nous avons alors décidé de refaire toute la démarche, de définir un persona précis qui soit un jeune de notre âge, et de créer un Moodboard. Nous avons choisi de nous inspirer d'un jeu mobile sur le même principe que nous (ie qui se jouait sur un seul téléphone), et s'adressant aux jeunes : l’imposteur.

Nous avons alors analysé ce qu'il manquait à notre maquette essentiellement : des images/icônes, des couleurs, et un logo qui correspondait à l'univers du jeu.

Alors on a tenté de retravailler :

Mais c'était très dur pour nous de nous défaire de notre idée de départ. Alors on s'est finalement dirigé vers une alternative de notre première idée :

Poster

Nous avons également présenté notre application lors de l'après- midi de présentation des projets 3A aux anciens de Do-It ainsi qu’aux élèves intéressés. Voici le poster que nous avons réalisé pour expliquer le concept, la planification et l’avancement du projet :

Application Bubble

Malheureusement l'option de déployer une application avec Bubble est payante. Mais vous trouverez ici une courte vidéo de présentation de l'application :

Et voici le lien vers un preview de notre application ici, avec lequel vous pourrez jouer !

Base de données Airtable

Pour la base de données, comme expliqué plus tôt, nous l'avons gérée avec Airtable. Elle contient donc les informations complémentaires à Bubble, c'est-à-dire l’ensemble des données liées aux questions. Il y 234 questions différentes aujourd'hui dans la table. Au total, 200 proviennent des questions du jeu de cartes initial, et nous en avons ajouté 34 que nous avons créés sur les thèmes Histoire et Sciences.

Apprentissage et retour d'expérience

Ce projet nous a permis d'apprendre plusieurs choses. Tout d'abord, nous avons un retour sur le no-code, résumé dans le tableau ci-dessous:

Avantages Inconvénients
Rapidité de développement (avec utilisation d’interfaces visuelles et des composants prédéfinis) Limitations fonctionnelles (limitations en termes de fonctionnalités et de personnalisation disponibles dans les outils de no-code)
Facilité de l’apprentissage et prise en main (Bubble est assez facile à prendre en main par rapport à un langage de développement mobile à apprendre) Nécessité d’utiliser des plugins pour des actions basiques
Facilité de maintenance (car applications reposent sur des modèles et des composants standardisés) Chargements très longs, pas très adapté à un jeu
Agilité accrue (cycles de développement plus courts et une plus grande flexibilité, qui permettent de développer de nouvelles fonctionnalités plus rapidement)

Difficultés rencontrées

Nous avons rencontré des difficultés sur plusieurs points de notre projet:

Apprentissage

Outre les difficultés rencontrées, nous avons également réussi à faire ressortir quelques apprentissages:

Capitalisation et suite à donner

Pour clôturer ce projet, nous pouvons nous questionner sur son avenir. Une des tâches à faire est d'enrichir la base de donnée Airtable afin de rendre le jeu plus pérenne. Il faut également faire tester le jeu à un public plus large. Une des solutions serait de rendre le jeu accessible en ligne, via une plateforme multijoueur, qui permettrait de jouer sur plusieurs téléphones en même temps. L'implémentation du dé peut aussi être pertinent, car cette règle ajoute de l'aléatoire ce qui rend le jeu plus amusant. Comme nous l'avons mentionné précédemment, il existe plusieurs inconvénients au low-code, qui pourrait entraver un développement futur de l'application. Il pourrait être intéressant de passer sur une méthode de programmation "dure", pour rendre le jeu plus viable pour l'avenir.