Ceci est une ancienne révision du document !


Le FPS

Plongé dans un univers tridimensionnel, les joueurs incarnent un personnage en vue subjective et s'affrontent en réseau.

Le but du jeu

Vous devez, par tout les moyens, assurer votre survie et tuer le plus d'ennemis avant le temps imparti. Une arme à feu est mise à votre disposition afin de tirer sur les autres joueurs. Des munitions sont présentes afin de recharger votre arme, ainsi que des trousses de secours pour vous soigner. Le gagnant est celui qui extermine le plus d'adversaires.

Le cahier des charges

Le joueur

  • Le joueur comporte un niveau de vie allant de 0 à 100%.
  • Le joueur porte une arme.
  • Le joueur peut zoomer via un clique droit de la souris.
  • Le joueur peut se déplacer dans toutes les directions et tourner sur lui même.
  • Le joueur ne peut sauter.
  • Le joueur ne peut se déplacer que si rien n'y fait obstacle.
  • Le joueur peut récupérer des munitions dans la limite du nombre maximum que peut comporter l'arme.
  • Le joueur peut récupérer des trousses de secours pour compléter sa vie dans sous la limite des 100%.
  • Le joueur peut tirer à condition que ses munitions ne se trouve pas à zéro.
  • Durant chaque partie, les joueurs sont munis d'armes identiques.

Les armes

  • Chaque arme comporte un nombre maximal de projectiles.
  • Le nombre de projectiles diminue après chaque tir.
  • L'arme doit être chargée pour tirer.

Le terrain

  • Le terrain sera afficher par une heightmap et comportera des objets 3D.

Les objets

  • Les gros obstacles font barrage au déplacement des joueurs.
  • Les petits obstacles peuvent être franchis par les joueurs.
  • Les munitions permettent de recharger l'arme d'un certain nombre de projectiles.
  • Les trousses de secours permettent de récupérer de la vie.

Les objets spéciaux

  • Les points de résurrection sont les lieux où (ré)apparaissent les joueurs. Ils sont invisibles.
  • La skybox dessine les objets lointains et inatteignables (le ciel, les montagnes…). Elle est centrée sur la caméra.
  • Le support de terrain est l'objet qui dessine le sol. Sa position est fixe contrairement à la skybox.

Les fonctions et les contraintes

FP1 : Permettre aux joueurs de se déplacer

Par l'enfoncement des touches Z, Q, S et D, le joueur peut se déplacer vers l'avant, la gauche, l'arrière et vers la droite. Il peut également tourner sur lui même, regarder vers le haut et vers le bas à l'aide de la souris. Implémenter les touches flécher plus vérifier sur un clavier qwerty. ( Voir demande d'amélioration )

C1 : Ne pas traverser les obstacles

Si le personnage entre en collision avec un obstacle, sa trajectoire est corrigée de telle sorte qu'il glisse le long de l'obstacle. En aucun cas le personnage ne peut être sur le lieu d'un obstacle ou même le traverser, auquel cas il serait sanctionné.

C2 : Modérer la vitesse de déplacement

Pour maintenir l'équité entre les joueurs, la vitesse de déplacement maximale est la même pour tous. En aucun cas le personnage ne peut se déplacer plus vite que cette vitesse, auquel cas il serait sanctionné.

FP2 : Détecter les tricheurs

Détecter les joueurs qui ne respectent pas les règles du jeu ou qui bénéficient d'une aide qui va à l'encontre de l'esprit du jeu.

C1 : Ne pas faire de faux positifs

FP3 : Sanctionner les tricheurs

Les tricheurs peuvent être banni pendant une durée déterminée par le serveur.

FP4 : Tirer

Par l'enfoncement du bouton gauche de la souris, le joueur peut tirer. L'arme possède alors un projectile de moins. Si un personnage est touché, sa vie est diminuée. Seule une arme chargée effectue réellement un tir.

C1 : Les projectiles ne passent pas au travers des objets

Si un objet se situe entre le tireur est le personnage, ce dernier n'est pas touché.

FP5 : Dialoguer entre joueurs

A tout moment, les joueurs peuvent dialoguer par écrit.

C1 : Le dialogue n'empiète pas sur la jouabilité

Pendant la lecture et l'écriture d'un message, la partie continue. La scène reste toujours visible. Le joueur peut reprendre immédiatement la partie.

FP6 : Ramasser une trousse de secours

Le joueur peut ramasser une trousse de secoure. Pour cela, il se rend sur le lieux de celle-ci.

FP7 : Ramasser des munitions

Le joueur peut ramasser des munitions. Pour cela, il se rend sur le lieux de celles-ci.

Historique

  • 16 juillet 2014 : Première version jouable (v0.1).
  • 28 août 2014 : Mise en place du wiki pour la rédaction du cahier des charges de la prochaine version du FPS.

Demandes d'améliorations réclamés sur la version 0.1

  • Faire un menu d'option pour éditer un fichier de configuration pour régler la vitesse de rotation, la vitesse de déplacement, l'angle de vue, fenêtrage…
  • Afficher un coup de feu lors du tir.
  • Basculer du mode plein écran au mode fenêtré par Alt+Entree.
  • Afficher les scores lors de l'enfoncement de la touche TAB.
  • Porter le jeu sous Linux.
  • Gérer les déconnexion en cours de partie.
  • Indiquer les touches à l'utilisateur.
  • Télécharger la map imposée par le serveur.
  • Mettre les personnages en couleur / faire en sorte qu'on sache qui est qui.
  • Zoom lors de l'enfoncement du bouton droit de la souris.
  • Indiquer quelque chose lorsqu'on tue quelqu'un ou que quelqu'un nous tue.
  • Ajouter les flèches en plus de ZQSD.
  • Vérifier avec un clavier QWERTY.
  • Ajouter un joystick.
  • Prendre en charge le presse-papier dans les menus.
  • Lorsqu'on tir au dessus du personnage, celui-ci est quand même touché.
  • Lorsqu'une autre fenêtre est active, la souris ne devrait pas être repositionnée en début de partie.
  • Lorsqu'on est connecté, il ne se passe rien, on est tenté de cliquer sur Quitter plutôt que d'attendre.
  • Faire en sorte qu'on sache clairement si on a touché quelqu'un ou si on a été touché.
  • Ne pas réapparaitre trop près d'un joueur.
  • Ajout d'un mode solo / une IA.
  • Éviter le spawn kill.
  • Ajout d'une distance maximale de tir.
  • Ajout d'un chat, couleur de texte en accord avec la couleur du joueur.
  • Ajout d'un message lorsque la connexion au serveur échoue.
  • Ajouter la prise en charge des caractères spéciaux (accents, cédilles…).
  • Afficher le score du joueur de la même couleur que le joueur.
  • Afficher le pseudo des joueurs au dessus d'eux.
  • Enregistrer les scores sur le serveur.
  • Publier les scores sur une page web.