Giter Site home page Giter Site logo

projet-terminale-nsi's Introduction

projet-terminale-nsi

projet de fin d'année de Terminale de Léandre Meunier-Criquet, Victor Jean, Noah Bréhin, Pier Boennec et Ethan Brehin.

cahier des charges

Crée un jeu de course dans un labyrinthe en multijoueur, en temps réel, généré avec un ordre de salles aléatoires (salles créés à la main, ordre d'apparition aléatoire) au format 4:3. Le jeu au démarage se lance en plein écran. Où le personnage est contrôlé uniquement à la souris. Un tableau de scores mais aussi un classement global entre les différentes parties doit être consultable par les joueurs. Le jeu devra se lancer facilement (à l'aide d'un script bat par exemple). Il y aura une application client et une application serveur : l'app client sert de jeu (avec menu, interface, etc.), l'app serveur sauvegarde les points, le rang, et gère le multijoueur.

règles du jeu

Pour gagner, il faut être le premier à toucher la ligne d'arrivée. Les perdants sont les derniers arrivés. Les points de victoires sont donnés par ordre d'arrivée (le premier gagne le plus de points, et les points diminuent avec le rang de chaque participant). A la fin de toutes les salles (nombre de salles défini par l'hôte de la partie au début de la partie), celui avec le plus de points de victoires remporte la partie.

Durant la partie, il n'y a pas d'intéractions directes entre les joueurs. Une fois qu'un joueur a atteint la ligne d'arrivée, un timer se déclenche et tous les autres joueurs passent automatiquement à la salle suivante à la fin du timer, afin d'éviter un bloquage où un joueur n'arriverait pas à finir la salle. Une collision avec un mur ramène le joueur au départ.

On autorisera 8 joueurs max par partie.

une salle :

Une salle est l'élément principale d'une partie. Chaque partie a un nombre de salles défini par l'un des joueurs. Une salle prend l'écran en format 4:3. Elle est composé d'obstacles et possède une forme de chemin. C'est à la fin de chaque salle que des points de victoires sont attribués.

système de classement

Les points de victoires sont attribués à la fin de chaque salle en fonction de la place du joueur. Des badges sont attribués en fonction de ce qu'il se passe durant la partie et de son classement ELO(ex: meilleur joueur, pire joueur, etc.).

Avec les points de victoires remportés à la fin d'une partie et le classement, un joueur gagne ou perd de l'ELO, cela représente le moyen de le classer : plus on a d'ELO, plus on est bien classé. Un joueur avec beaucoup d'ELO gagnera peu et perdra beaucoup face à un joueur qui en a peu (les pertes et gains sont proportionnelles à l'ELO des joueurs).

Une déconnexion volontaire mets le joueur automatiquement à la dernière place. Cependant s'il se reconnecte la partie reprend pour lui normalement après les salles qu'il a manqué.

Site web

Un site web du jeu devra être réalisé, où pourra être consultée la base de données des joueurs et où sera présent un lien de téléchargement. Des stastitiques "générales" (temps moyen, nombre de murs pris...) et un classement par ELO devront être consultables. L'accueil du site sera une présentation (images, règles...) du jeu.

extension du cahier des charges (idées potentielles)

  • génération de salles procéduralement, avec un paramètre de difficulté applicable à la salle.
  • ajout d'un "méchant/maitre de jeu", qui voit la salle à l'avance et place des obstacles sur la route, si personne ne gagne, il a les points de victoires.
  • systeme de "code de connexion" pour rejoindre une partie.
  • systeme de skin.
  • système de replay.
  • Redémarrer tout seul le serveur en cas de crash

projet-terminale-nsi's People

Contributors

chat-mots avatar ebrehin avatar minemew2 avatar nbrehin avatar ritorizo avatar

Watchers

 avatar  avatar

projet-terminale-nsi's Issues

S'assurer que la table `statistiques` possède les données nécessaires

La bibliothèque python pour les requêtes est presque terminé et le fichier de création de la database aussi. Avant de terminer ça, vérifier que la table statistiques possèdent suffisamment de données intéressantes serait à faire.

@ritorizo @Minemew2 @ebrehin @Nbrehin pourriez vous jeter un oeil et me prévenir si vous souhaitez que plus d'informations soit stockés.
image

De mon point de vue, je ne vois pas quoi rajouter, une opinion extérieur verrait peut-être des choses.

possible rajout d'une donnée

Rajout d'une variable booléene que chaque joueur envoie au serveur avec ses coordonnées, ce serait une variable "mort" contenant True si le joueur est mort, False sinon. Si la variable contient True, elle reprend False après le premier envoi des données. Cette variable permettrait aux autres joueurs de savoir si un joueur est mort, et/ou de compter le nombre de morts de chacun pour les stocker dans la base de données en vue d'un potentiel rendu dans les statistiques de fin de partie.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.