A propos du Projet
Explications Complètes de Notre Projet

Tout le concept de notre projet réside dans la création d'une multitude de jeu vidéos aussi différenciés les uns que les autres. Effectivement, nous avons trouvé l'idée de créer une plateforme de mini-jeux. Une idée très simples mais très efficaces.
Ce projet, a été créé et développé avec un petit défi : il est codé avec une structure en Python et SQL.
Il a pour but de nous former au travail d'équipe et de nous apprendre à mieux manipuler ces langages qui, ces dernières années, prennent une part de plus en plus importante dans l'éducation, et le monde informatique (tout en restant évidemment très simple).

Hiérarchie Globale

Ainsi, notre projet se structure et prend forme grâce à trois grandes parties :
- Tout d'abord la Base de Donnée : Ici, choisie sur l'image MySQL (et le moteur InnoDB), la bdd est la base de notre projet. Toutes les informations, les ressources, les versions, les parties, etc.. sont stocké sur la bdd. Elle nous est clairement indispensable, mais est un outil très efficace qui permet de faire découvrir un semblant de programmation serveur (un autre grand domaine de développement). Chaque membre de l'équipe peut y accéder et y ajouter des nouveaux élément quand il en a besoin grâce au serveur phpMyAdmin (Apache24) ;
- Ensuite le Launcher : L'application qui permet de faire le lien avec toutes les autres partitions du projet, que ça soit la bdd comme les autres jeux. C'est lui qui gèrera les fichiers, les mises-à-jours des différents modules, les paramètres des applications et des utilisateurs. En terme, c'est c'est la partie front-end / userfriendly du projet ;
- Et enfin, les Mini-Jeux : Qui eux, sont le but clair et simple de l'application. Lancées depuis le Launcher, ces modules ont pour but d'emporter le joueur et de le confronter à ce qu'il attendait en téléchargeant l'appli : des jeux.

Chacune de ces parties est essentielle et toutes ensemble forme notre projet..
Il est donc important que chacun participe pour palier à la grande quantité de travail que ce projet requière pour un très bon fonctionnement.

Le tout est évidemment mis-à-jour en permanence sur le GitHub et chaque version est téléchargeable sur celui-ci.

Explication Approfondie

Ainsi, le client (le logiciel téléchargé) connecte l'utilisateur, avec une magnifique interface, à une floppée de bases de données qui permettent d'exécuter une grande quantité d'actions avant, pendant, et après les jeux comme :

  • Récupérer la liste des jeux et leurs informations : via simples requêtes SQL ;
  • Pouvoir les exécuter : lancement par os.py avec les sysargs utilisateurs pour lier les comptes ;
  • Gérer les mises à jours : au lancement, on récupère les versions dernière et actuelle des jeux via requêtes SQL et, avec un Object, on compare et si elle est inferieure, on attend une requête SQL de type BLOB (binaire) du jeu et de ses fichiers pour procéder à l'installation ;
  • Récolter et mettre à jour si besoin les informations des joueurs comme leur nom, leur photo de profil, ... : on récupère par requêtes et on redéfini par vérification en 3 étape avant d'utiliser le SQL : 1. On vérifie la version des anciennes infos. 2. On vérifie la validité des nouvelles informations. 3. On vérifie les permission de l'utilisateur qui modifie. Si toutes les étapes sont passées, alors on effectue le changement par requêtes SQL ;
  • Gérer les scores : on gère le système de score par un système bancaire --> l'EXP et les GP sont juste la somme de toutes les actions effectuées sur l'utilisateur : Si il gagne un jeu, le Manager insère une entrée informatisé de l'exemple suivant "Joueur machin à gagné à bidule 320EXP et 26GP".
    Ainsi, ce système limite les possibilités de triches car on sait d'où vient le moindre point d'EXP ou de GP...
  • Gérer les discussions directes par chat : le chat de l'app fonctionne non pas par listener (comme le ferait un chat basique), mais par répétition (due aux bases de données). Ainsi, à chaque seconde, le client (logiciel) envoie une requête SQL dirigée (sous conditions précises) qui englobe tous les chats chargés (sinon, si la base de données contient trop de chats, les requêtes risqueraient de s'éterniser). Ensuite, une comparaison est effectuée : si le contenu du chat est différent de celui affiché à l'écran, alors on le modifie, si le chat à disparu, alors on le supprime des chats chargés, etc... Et pour afficher une couleur, c'est uniquement la partie graphique qui s'en charge à l'aide d'algorithmes à bases de REGEX. De cette façon, on a un chat 100% fonctionnel et presque instantané ! (latence moyenne de 2.15sec, à 87% due à la mauvaise connexion >> test d'une durée de près de 10h réalisé sur une importation virtuelle d'une discussion de 17 000 chats)
Détails Techniques

Cœur Python 3.10 - SQL 3.0
Dev Interface PHP 8.1.2 - Apache 2.4.52 - phpMyAdmin 5.1.1
Site HTML 5 - CSS 3 - JS ES11~13 ECMA-262
APIs W3.CSS 4.15 - SQLConnectorPython - PILOW
Dev IDEs Pycharm Community Edition 2020.2.3 - WebFlow - GitHub

Les Fonctionnalités Importantes De

Notre Projet

Support
Un Support présent à vos côtés 24h/24 et 7j/7 afin de répondre à 100% à vos attentes.
Accessibilité
Une grande accessibilité, sur du multi-platforming, en plusieurs langues, et sans débourser le moindre centime !
Renouvelement
De nouvelles informations et avancées très fréquentes, mises à jour en permanence.
Page de Connexion
Dès votre arrivée sur l'interface, vous devez, pour commencer votre aventure, vous connecter pour récupérer votre avancée durant les parties.
Création de Compte
Il vous est également possible de créer directement un compte dans l'application en appuyant sur le bouton "Créer un compte" !
Hash des Mots de Passes
Pour garantir la sécurité et la confidentialité de vos données personnelles, les mots de passe sont protéger par un system de Hash MD5.
Modification Nom/MDP/PP
Vous pouvez modifier vos informations personnelles grâce au bouton "Profil", et ainsi mettre à jour votre nom, mot de passe, photo de profil, adresse mail, ...
Top 5 + Infos
Sur la gauche de se trouve un Top 5 des joueurs les plus fort (réalisé à partir des EXPs et GPs). Un clic est réalisable pour voit les informations du joueur cliqué.
Boutons de Redirection
Les boutons de redirection vous aident à accéder aux liens faciles par exemple : vers le Serveur Discord, le GitHub, le Site Internet, ainsi que pour se déconnecter.
Experience (EXP)
L'expérience s'acquiert en jouant.
Elle est immutable (ne diminue pas).
Elle représente donc bien votre expérience sur notre app.
Points de Jeu (GP)
Les points de jeu s'acquièrent en jouant, en réalisant de bonnes performance.
Ils peuvent être consommés donc représentent votre niveau / richesse.
Scores
Les scores sont individuels : chaque jeu possède son propre system de score. Chaque score/partie est enregistré donc l'app calcule aussi vos meilleurs scores.
Mini-Jeux
Au centre, vous avez la liste des jeux disponibles, leur nom, leur description et le score susceptible d'être gagné à chaque manche.
Lancement Lié
Si vous appuyez sur "Jouer" sur un jeu, alors le jeu s'ouvrira de manière liée pour que vous y jouiez sans perdre le temps d'y remettre vos identifiants.
Chat direct
Un système de chat direct est implémenté ! Vous pouvez donc converser en temps réel avec la communauté malgré la distance !
Chat Coloré
Vous pouvez utiliser le caractère "§" suivi du caractère indicateur pour ajouter un brin de couleur, le code couleur contient 20 indicateurs disponibles ! (0-9 a-f nol §)
Magasin (Futur ?)
POSSIBLEMENT DANS LE FUTUR
Créer un magasin où dépenser les GPs contre de nouvelles emotes, des bonus de loots ou autre
Création de Jeu (Futur ?)
POSSIBLEMENT DANS LE FUTUR
Les joueurs pourront créer et publier leurs propre jeux !
Une API est déjà dispo sur le GitHub !!!