Squared

a marqué ce sujet comme résolu.

Bonjour à tous,

Je vous présente aujourd'hui un projet commencé depuis 2009 mais que je retouche très souvent, quand j'en ai le temps et la motivation. Le jeu est de base repris d'un jeu assez connu sur internet qui est le jeu du carré rouge. Le but est simple : bouger un carré rouge et éviter les figures bleues en déplacement tout en évitant de sortir des limites du jeu, il faut tenir le plus longtemps possible. J'ai trouvé que ce jeu très simple pouvait devenir addictif quand on a du temps à perdre sur internet mais malheureusement je trouvais le jeu trop simple initialement, dans le sens où il n'y avait aucune option, le jeu se contentait d'afficher notre score dans une fenêtre javascript sans plus. C'est donc comme ça que m'est venue l'idée de modifier le code du jeu pour y ajouter plusieurs choses, cela me faisait passer le temps.

Je vais donc vous présenter le jeu tel qu'il est actuellement.

L'état du projet actuellement

Actuellement il existe un système de niveaux et de grades qui a été implémenté il y a assez longtemps maintenant mais qui ne cesse d'être retravaillé. Vous faites un score et un classement de fin de partie vous situe par rapport aux autres joueurs, vous pouvez gagner ou perdre des niveaux/grades en fonction de votre classement. Je trouve que cela rajoute du défi. Il existe aussi une boutique dans laquelle il est possible d'acheter de nouvelles couleurs pour rendre votre carré vert par exemple. Vous pouvez aussi acheter des bonus de parties pour agrandir la zone de jeu, réduire la taille de votre carré, supprimer une des figures bleues ou encore rendre temporairement votre carré invisible. Tous ces bonus vous permettant bien évidemment de mieux éviter les figures bleues. Vous pouvez gagner des points à chaque fin de partie.

Chaque semaine une mise à jour automatique attribue par ailleurs des titres selon votre activité hebdomadaire. Ces titres sont visibles sur votre profil joueur par vous et les autres joueurs.

Un mode entrainement vous permet de jouer sans que cela affecte votre niveau/grade ou les bonus achetés (valables pour une seule partie si le mode entrainement est désactivé). Un bonus de partie lente (ralentit le mouvement des figures bleues) peut être débloqué en jouant 3 parties consécutives et en étant bien classé (bonus qui ne peut être acheté dans la boutique).

Un t'chat a aussi été implémenté pour discuter en temps réel (ou différé) avec les autres joueurs.

Je vous laisse découvrir le reste. ;)

La suite du projet

Je pense que le projet n'est jamais vraiment terminé, de nouvelles choses peuvent toujours y être ajoutées si on y réfléchit bien. Par exemple le bonus carré invisible est très récent (début juillet). Vous pouvez donc me donner de nouvelles idées pour le jeu, pas obligatoirement pour l'ajout de bonus bien entendu.

Vos critiques et remarques constructives sont donc les bienvenues.

Salut,

Sympathique, mais manque pas mal d'ergonomie.
Je pense que c'est surtout ce qui entoure le jeux que tu devrais améliorer maintenant que celui-ci est bien fonctionnelle dans une première version.

Des remarques en vrac :
- Explication du fonctionnement (souris, clavier ?) au moins avant la première fois . - Actualiser pour recommencer, euh ?
- Explication des grades etc, personnellement, j'ai rien compris hihi. - Utiliser un affichage différent des alert javascript, je le voit plus comme du spam que de l'information, surtout quand mon navigateur me propose de plus les afficher.
- Problème de connexion sur plusieurs sessions simultanées ? J'ai pourtant rentrer les mêmes identifiants que ma première session. Erreur : impossible de vous identifier. Mauvais couple pseudo/mot de passe ou cette session ne vous appartient pas.
- Afficher l'erreur du formulaire d'inscription directement dans celui-ci, évite une étape et la remise à zéro des données.
- Il y a un filtre anti-spam pour des éventuels bot ?
- Tu porte un gros intérêt à la sécurité du mot de passe dans tes CGU, mais les sauvegarder en sha1 sans rien de plus est peut-être un peu léger. Après, il n'y a pas grande données à protéger, mais quand même :p - Classement écris en gris sur fond rayé gris, c'est difficile à lire.
- Je ne parle pas des failles présentes dans le tchat.

C'est bien sympa ce que tu as fait finalement, avec le classement. Projet très sympathique que je vais suivre. Bon courage à toi ;)

Sinon j'ai battu un petit record 52.19 o_O

+2 -0

Salut et merci pour tes retours.

  • Pour l'explication normalement il y a un fichier PDF à télécharger pour les nouveaux (si moins de 5 connexions totales détectées). Tout est expliqué dedans dont la façon de jouer.
  • Concernant le "actualiser pour recommencer" ça fait plusieurs fois que j'ai la remarque, je vais voir ce que je peux faire. Vous préférez un lien cliquable ou autre chose ?
  • Pour l'explication des grades/niveaux etc. pareil c'est expliqué dans le document PDF.
  • Pour les alert javascript tu peux les désactiver dans ton profil (désactiver les notices).
  • La problème de connexion sur plusieurs sessions simultanées c'est fait exprès, j'ai codé ça pour éviter qu'on puisse jouer depuis deux supports différents sur un même compte joueur (par exemple si tu passes ton mot de passe à quelqu'un que tu connais), pour éviter les interférences au niveau du jeu (si la partie se termine en même temps depuis les deux supports ça peut poser des problèmes). C'est expliqué dans les CGU au départ (même si je le conçois elles sont assez longues et tout le monde ne lit pas).
  • Pour l'inscription je vais voir ce que je peux faire.
  • Pour le filtre anti-spam c'est expliqué dans les CGU, y'en a pas vraiment mais tout compte inactif (avec 0 connexion) est supprimé de la BDD directement et tout compte inactif sur 8 semaines consécutives (0 connexion) est aussi supprimé. Ce système peut servir de filtre anti-bot.
  • Pour le mot de passe ok, tu proposes quoi pour mieux sécuriser ?
  • Pour le tableau on peut le mettre en blanc dans les préférences (page de ton profil, comme pour désactiver les notices).
  • J'ai vu pour les failles du t'chat, j'avais oublié de virer le HTML, je vais voir ça.
  • Concernant le 52.19 secondes, c'est un vrai score ou une faille ? :p Si c'est la faille, tu as utilisé le t'chat ou la faille du GET (qui date maintenant mais j'ai du mal à la sécuriser).

Merci à toi.

D'accord je comprends mieux l'ensemble des points maintenant, et ton point de vue.

  • Pour le PDF, je l'ai vu, mais j'aurais plutôt intégrer ça directement dans la page. Dans mon cas actuel, je n'ai tout simplement pas voulu télécharger un fichier sur un ordinateur qui n'est pas le mien.
  • Un simple bouton permettant de recommencer, au pire, un bouton/lien qui actualise la page, ça sera toujours plus simple qu'aller chercher son F5 par exemple.
  • Pour la connexion simultanée, j'avais en faite juste changé de navigateur / changer de session privé.
  • Tant qu'avoir des milliers / millions de comptes n'influe pas sur les performances, ton système "anti-spam" est viable.
  • Utiliser un algorithme plus fort, et surtout utiliser un grain de sel pour les mot de passe.
  • D'accord pour le profil, encore une fois, je pense que c'est mieux si c'est visible / ergonomique sans avoir à changer les préférences.
  • Oui, je soupçonne que le t'chat puisse permettre de voler une session actuellement. Mais je n'ai pas cherché plus loin.
  • Exacte, je ne suis pas encore un super humain, je n'ai pas non plus programmé de bot. J'ai simplement copier les requêtes envoyées en fin de parties et les ais renvoyer en modifiant mon score. J'avoue que pour ça il faut un petit moment de réflexion pour trouver le bon moyen de sécuriser cela.

Avec plaisir.

  • Ok pour le PDF je verrai ça.
  • Pour le bouton c'est fait, normalement ça marche (testé).
  • Pour la connexion simultanée ça ne marche pas depuis deux supports différents ou même depuis deux navigateurs différents sur le même PC. Il faut d'abord se déconnecter du compte avec l'autre navigateur pour pouvoir se reconnecter depuis l'autre navigateur sur le même compte.
  • S'il y a des millions de compte ça ne fera rien sur les performances car ces comptes n'apparaîtront pas dans le classement. Pour apparaître dans le classement il faut jouer au moins une fois et faire plus que 2 secondes. C'est le dernier score effectué qui classe les joueurs. Donc sauf si un bot peut se connecter et lancer le jeu automatiquement normalement c'est bon.
  • Pour le mot de passe en fait j'utilise déjà un grain de sel (notamment pour les cookies).
  • C'est vrai qu'on commence par le tableau qui est le moins lisible (le blanc), faudra que je change ça.
  • Normalement pour le t'chat c'est réglé, j'ai essayé d'écrire en gras sur le t'chat avec la balise HTML et ça n'affiche plus le message en gras. J'ai utilisé strip_tags. Si tu veux tester ça m'aiderait beaucoup à savoir si la faille est vraiment réglée.
  • Ok pour la faille, va falloir que je réfléchisse pour voir comment faire.

Le jeu est plutôt sympa, il faudrait peut etre commencer avec un tutoriel, ça expliquerai le fonctionnement, il faudrait aussi revoir le design, la mise en page et ne pas demander obligatoirement une connexion (je pense que c'est pas necessaire)

Bon courage à toi ;)

Le tutoriel c'est le document PDF que je prévois d'intégrer directement dans la page (lorsqu'il y a moins de 5 connexions totales). Pour éviter le téléchargement du fichier comme me l'a suggéré ShiiFu. Pour le design je n'ai jamais été fort, j'ai fait le minimum. Je ne pourrai pas le faire seul, peut-être que je vais recruter quelqu'un. Enfin pour la connexion je ne vois pas comment faire sans puisque toutes les statistiques sont liées à un compte joueur (donc il faut que je puisse identifier chaque joueur avec un mot de passe).

Merci pour ton avis.

Tu pourrais avoir un accès au jeu sans enregistrer les statistiques en BD, mais en session. Si l'utilisateur en a marre, il s'en va. Si il est intéressé, il s'inscrit et ce qu'il a fait pendant sa session est enregistré.
Tu peux simplifier le système en abandonnant l'idée de garder temporairement ses données en session, juste en ayant un accès anonyme pour faire découvrir le jeu.

J'essaie de me pencher sur les failles que j'avais vu prochainement ;)

Pour le design, essaye une librairie / framework comme bootstrap pour te simplifier la vie. C'est rapide à prendre en main et permet d'avoir un rendu plutôt sympa.

Ok merci, je mets de côté pour le jeu à essayer en invité. Pour le design idem.

Sinon j'ai ajouté une nouvelle fonctionnalité : chaque semaine il y a la mise à jour qui attribue des titres/points joueur en fonction de vos statistiques hebdomadaires. J'ai ajouté une fenêtre modale qui vous renseigne sur ce que la dernière mise à jour a fait sur votre compte, je pense que c'est un plus pour l'information car avant on ne savait pas vraiment ce qu'on gagnait chaque semaine et la mise à jour passait inaperçue.

Cette fenêtre apparaît à la prochaine connexion sauf si la mise à jour n'a rien modifié sur votre compte. La fenêtre s'affiche bien sous Opera mais pas sous ma version d'IE (mais j'ai une vieille version d'IE).

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte