Page 1 sur 2

ASOW : Jeu d'action/stratégie au tour par tour développé en

Posté : 17 avr. 2007, 10:26
par Gray_Fox
Salut à tous,

Je voudrais avoir vos avis d'experts AJAX sur un petit jeu que j'ai commencé à développer modestement depuis quelques mois.

Le principe est de diriger une équipe de soldats dans divers type de missions contre un autre joueur connecté (vous pouvez néanmoins tester le jeu à 2 en utilisant 2 comptes distincts sur 2 navigateurs différents).
Le tout est développé en AJAX/PHP/Mysql.

Il est accessible à cette adresse : http://gameonweb.free.fr/

Merci d'avance pour vos conseils et remarques ;)
GF.

Posté : 17 avr. 2007, 13:56
par sadeq
je viens d'emporter la mission contre moi-même, mais j'ai des petites remarques:
  • 1. L'info-bulle d'aide peut être placée ailleurs que sur le jeu car celà géne et oblige le joueur de cliquer dessus pour la fermer pour jouer ; sa femeture peut aussi être temporisée. Mais elle est trés informative.

    2. Quand un joueur utilise tous ses soldats le tour doit être passé automatiquement à l'adversaire (ce n'est pas toujours le cas actuellement)

    3. Quand un seul soldat reste en jeu il doit être sélectionné par défaut dès que le joueur ait le tour de jouer

    4. Quand on pointe des soldats adverses visibles, peut-on savoir leurs états de santé pour décider d'une attaque éventuelle?

    5. Un soldat peut-il récupérer les armes ou munitions des soldats tués?

    6. Pour augmenter la vitesse du jeu, le changement de coloration des zones pour le déplacement (vert) et le tir (rouge) ne doit pas impliquer le redessin des cases. Je ne sait pas comment c'est fait le coloriage des zones mais j'ai l'impression qu'il est vectoriel (pixel/pixel) et trop lent.

Posté : 17 avr. 2007, 14:29
par Gray_Fox
Merci beaucoup pour ces premières impressions.
Voici mes réponses :
1. L'info-bulle d'aide peut être placée ailleurs que sur le jeu car celà géne et oblige le joueur de cliquer dessus pour la fermer pour jouer ; sa femeture peut aussi être temporisée. Mais elle est trés informative.
En fait elle peut être facilement déplacée en cliquant sur le titre du cadre.
C'est du drag&drop.
2. Quand un joueur utilise tous ses soldats le tour doit être passé automatiquement à l'adversaire (ce n'est pas toujours le cas actuellement)
C'est le cas.
En fait un soldat n'est considéré comme utilisé que lorsqu'il a utilisé une de ses armes.
Si tu l'as juste déplacé, tu peux encore l'utiliser.
3. Quand un seul soldat reste en jeu il doit être sélectionné par défaut dès que le joueur ait le tour de jouer
Bonne idée, je vais l'incorporer.
4. Quand on pointe des soldats adverses visibles, peut-on savoir leurs états de santé pour décider d'une attaque éventuelle?
Il y a une barre de vie (verte) à droite de chaque soldat sur la carte qui indique son état de santé.
5. Un soldat peut-il récupérer les armes ou munitions des soldats tués?
Ce n'est pas encore géré mais c'est également une très bonne idée.
6. Pour augmenter la vitesse du jeu, le changement de coloration des zones pour le déplacement (vert) et le tir (rouge) ne doit pas impliquer le redessin des cases. Je ne sait pas comment c'est fait le coloriage des zones mais j'ai l'impression qu'il est vectoriel (pixel/pixel) et trop lent.
La colorisation des cases se fait juste en changeant l'image du fond des cases concernées (leur classe CSS en fait).
Je ne pense pas que ce soit faisable plus rapidement (j'ai pas de meilleure idée pour l'instant).
Ca faisait lager l'affichage?

Merci encore pour cette participation ;)
GF.

Posté : 19 avr. 2007, 13:44
par Gray_Fox
Quelq'un d'autre a pu essayer le jeu?

Posté : 20 avr. 2007, 09:43
par rgz
J'ai vu l'interface, mais j'ai pas encore joué. Ca a l'air trés bien fait, bravo !
Par contre chez free ça doit ramer un peu au niveau de la base de données.

En tout cas, bravo pour l'idée et le travail accompli. Je dirais juste qu'il manque un petit favico :wink:

Posté : 20 avr. 2007, 10:31
par Gray_Fox
J'ai vu l'interface, mais j'ai pas encore joué. Ca a l'air trés bien fait, bravo !
Par contre chez free ça doit ramer un peu au niveau de la base de données.

En tout cas, bravo pour l'idée et le travail accompli. Je dirais juste qu'il manque un petit favico :wink:
Merci :oops:
C'est vrai que le mysql de free est pas très stable mais je vais bientôt passé sur une dedibox (hébergement payant de free) et ça devrait aller beaucoup mieux ;)

Posté : 20 avr. 2007, 12:14
par sadeq
La colorisation des cases se fait juste en changeant l'image du fond des cases concernées (leur classe CSS en fait).
Je ne pense pas que ce soit faisable plus rapidement (j'ai pas de meilleure idée pour l'instant).
Ca faisait lager l'affichage?
Et pourquoi une image de fond? pourquoi pas une simple couleur de fond.
Moi j'aurais utiliser des images de fond pour les parties stables (toute la grille du jeu, les obstacles et les joueurs ou autres) et une simple couleur de fond qui change (par javascript) pour les cases à sélectionner.

Posté : 20 avr. 2007, 12:17
par Gray_Fox
Et pourquoi une image de fond? pourquoi pas une simple couleur de fond.
Moi j'aurais utiliser une image de fond pour les parties stables (toute la grille du jeu, les obstacles et les joueurs ou autres) et une simple couleur de fond qui change (par javascript) pour les cases à sélectionner.
J'ai utilisé des images pour avoir un effet de transparence avec le fond (herbe, pavés, etc).

Posté : 23 avr. 2007, 09:53
par Gray_Fox
Salut tout le monde,

Je me permets de relancer un peu le topic pour ceux qui ne sont pas encore passé sur ASOW.
En effet, la majorité des bugs qui avaient été détectés sont corrigés et plusieurs améliorations ont été mises en place depuis mon premier message.

Merci d'avance!
GF.

Posté : 23 avr. 2007, 12:04
par thehawk
Salut a toi je viens de m'inscrire eh ben je te tire mon chapeau , le seul truc a redire est que c'est lent ...

Posté : 23 avr. 2007, 12:14
par Gray_Fox
Salut a toi je viens de m'inscrire eh ben je te tire mon chapeau , le seul truc a redire est que c'est lent ...
C'est clair que c'est le gros défaut du site en ce moment.
Mais tout ça va bientôt passer sur un serveur dédié (ciao le serveur free tout pourri) et là ça sera bien plus rapide et stable ;)

Posté : 23 avr. 2007, 12:50
par sadeq
Et comment expliques-tu cette lenteur?

Posté : 23 avr. 2007, 12:59
par Gray_Fox
Et comment expliques-tu cette lenteur?
Ben l'exécution php coté serveur n'est pas hyper rapide sur les serveurs free.fr, la base mysql saute à peu près toutes les heures et la distribution des ressources statiques (images en particulier) n'est pas très rapide non plus.

Il faut également savoir que tous les contrôles du jeu sont fait coté serveur, le javascript/ajax n'est là que pour communiquer les actions du joueur et mettre à jour l'affichage (pour des raisons de sécurité et pour éviter les tricheries).

Posté : 23 avr. 2007, 13:09
par sadeq
Ben l'exécution php coté serveur n'est pas hyper rapide sur les serveurs free.fr, la base mysql saute à peu près toutes les heures
tu dois optimiser l'accès à la base : Pour cela quels sont les accès dans la base pour un jeu donné entre 2 joueurs en ligne?
et la distribution des ressources statiques (images en particulier) n'est pas très rapide non plus.
tu peux distribuer les images par ajax aussi tandis que les images qui ne bougent pas ne doivent pas se recharger
Il faut également savoir que tous les contrôles du jeu sont fait coté serveur, le javascript/ajax n'est là que pour communiquer les actions du joueur et mettre à jour l'affichage (pour des raisons de sécurité et pour éviter les tricheries).
Ajax est en mesure de faire tous ça, c'est ton algorithme qui doit implémenter les règles.

Posté : 23 avr. 2007, 13:28
par Gray_Fox
tu dois optimiser l'accès à la base : Pour cela quels sont les accès dans la base pour un jeu donné entre 2 joueurs en ligne?
J'ai pas bien compris la question... :oops:
tu peux distribuer les images par ajax aussi tandis que les images qui ne bougent pas ne doivent pas se recharger
Tu veux dire récupérer le contenu de l'image et l'injecter dans un élément HTML?
Quel est l'intérêt de distribuer les images par ajax?
Ajax est en mesure de faire tous ça, c'est ton algorithme qui doit implémenter les règles.
C'est un choix justement d'avoir laissé les objets et les contrôles coté serveur, pour éviter toute éxécution de code javascript qui permettrait de tricher.
De plus, ça me permet d'éviter les problèmes de synchronisation entre la partie client et la partie serveur.