Wankil Game

✨ Wankil Game c'est quoi ?
Je suis un énorme Wankil Crazy et j'ai toujours rêvé de créer un jeu autour de l'univers Wankil. C'est maintenant chose faite avec Wankil Game, le principe ? Des courts extraits audio sont joués et les joueurs doivent deviner de quel vidéo ils proviennent parmis 4 propositions, le plus rapide a deviner remporte des points et le joueur avec le plus de points à la fin de la partie remporte la partie.
🚀 Comment jouer ?
Si tu t'en fous des explications et que tu veux juste jouer, tu peux tester le jeu en ligne sur wankil.nathaan.me.
Si tu veux en savoir plus sur le développement du jeu, continue de lire.
🎨 Doonc comment ca marche
Le jeu est développé en python avec le framework Flask pour le backend et du HTML/CSS/JS vanilla pour le frontend.
Le jeu est composé de 3 parties :
-
Le backend :
- Le backend est développé en python avec le framework Flask.
- Le backend gère la logique du jeu, la gestion des parties, des joueurs, des questions, etc.
- Le backend utilise une base de données json pour stocker les données du jeu. (Oui j'ai pas utilisé de base de données SQL, c'était plus simple et rapide pour un petit projet comme celui-ci)
- Le backend utilise des sockets pour communiquer avec le frontend en temps réel.
-
Le frontend :
- Le frontend est développé en HTML/CSS/JS vanilla.
- Le frontend gère l'affichage du jeu, les questions, les réponses, les scores, etc.
- Le frontend utilise des sockets pour communiquer avec le backend en temps réel.
-
Les extraits audio :
- Les extraits audio sont stockés sur un serveur et sont joués en temps réel par le backend.
- Les extraits audio sont joués en boucle et s'arrêtent dès qu'un joueur a trouvé la bonne réponse.
- Les miniatures des vidéos sont affichées sur le frontend en floue pour aider les joueurs à trouver la bonne réponse.
💡 Plus d'info sur le backend
Lors de la création du jeu j'ai essayé de gérer le plus de choses au niveau du serveur pour éviter la triche des joueurs. Par exemple, les réponses sont vérifiées côté serveur pour éviter les triches, les scores sont stockés côté serveur pour éviter les triches, etc.
Pareil au niveau des fichiers audios et des miniatures affichées, tout est géré côté serveur pour éviter les triches, les fichiers sont délivrés en temps réel par le serveur via une URL sécurisée avec un TOKEN unique et supprimés dès que la question est terminée.
💡 Les extraits audio
Les extraits audio sont téléchargés depuis Youtube via ytb-dlp et uniquement 20 secondes de chaque vidéo sont extraits pour éviter les problèmes de droits d'auteurs et de stockage sur le serveur, j'utilise l'api de sponsorblock pour ne pas prendre les intros/outros ou sponsor de la vidéo.
💡 Les miniatures
Les miniatures des vidéos sont téléchargées depuis Youtube via ytb-dlp et ensuite pour un maximum de rapidité stockées sur un cache pickle pour éviter de les télécharger à chaque question.
💡 Le panel admin
Le panel admin permet de gérer les audios (les ecouter et les regenerer si besoin), les jeux associés aux audios. Il permet aussi de voir des statistiquers sur les parties, les joueurs, les questions, etc.