JeuWeb - Crée ton jeu par navigateur
Demande d'avis sur système de caractéristiques d'unités - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Demande d'avis sur système de caractéristiques d'unités (/showthread.php?tid=7542)



Demande d'avis sur système de caractéristiques d'unités - fortz - 22-12-2015

Bonsoir, je suis actuellement en pleine conception d'un jeu par navigateur et je me heurte à un petit problème lors de la conception de la base de données.

Je dispose d'unités et de champions qui ont chacun des caractéristiques qui leur sont propres (ex : attaque, défense, etc...). Chaque joueur dispose des mêmes unités cependant ayant mis en place en système d'arbre d'améliorations permettant d'augmenter par exemple l'attaque d'une unité, je me pose une question :
Pour une unité donnée, les caractéristiques peuvent changer en fonction de l'arbre d'amélioration du joueur, ainsi comment procéder ? deux solutions selon moi :

- Devrais-je stocker ses caractéristiques de base (donc valable pour tous les joueurs du serveur) et ajouter les bonus conférés par l'arbre d'amélioration à cette unité à chaque affrontement ?
Avantages : on ne stocke que les caractéristiques de base de l'unité
Inconvénient : à chaque affrontement, je dois calculer les caractéristiques de chaque unité en récupérant les caractéristiques de base + les améliorations de l'arbre modifiant les caractéristique de chaque unité

- Ou alors stocker les caractéristiques de bases de l'unité et stocker en plus de ça les caractéristiques de l'unité pour chaque joueur en fonction de son arbre d'améliorations ?
Avantages : lors des affrontements je n'ai qu'à aller chercher les caractéristiques de l'unité en question pour chaque joueur sans avoir à faire de calcul savant :p
Inconvénient : j'encombre ma base de données qui va devoir stocker pour chaque unité et pour chaque joueur les caractéristiques de cette dernière (ce qui ferait environ 15-20 lignes par joueur)

Quelle méthode utiliseriez-vous pour implémenter cela en base de données ? n'hésitez pas à proposer vos propres méthodes si les miennes ne vous comblent pas Wink

Cordialement


RE: Demande d'avis sur système de caractéristiques d'unités - Xenos - 22-12-2015

Salut,

pour simplifier les queries SQL, il existe la notion de Vues MySQL (ou équivalent Postgres). Cela dissimule les "calculs et jointures compliqués" aux yeux du code client.
Sinon, je partirai sur la solution la plus normalisée, donc plutôt la 1ere. Quitte au besoin à ajouter plus tard une sur-couche (un genre de table de cache) pour optimiser les calculs (mais seulement une fois que j'ai la preuve que "c'est lent").


RE: Demande d'avis sur système de caractéristiques d'unités - fortz - 22-12-2015

Merci pour ta réponse.
Oui je connais les vues, matérialisée ou non ?
et du coup à chaque changement de l'arbre d'amélioration je modifie uniquement la vue afin qu'elle soit à jour, c'est bien ca ?


RE: Demande d'avis sur système de caractéristiques d'unités - Xenos - 22-12-2015

Tout dépendra de l'impact sur les perfs, il suffit de tester quel Algorithm est le plus adapté.
Dans tous les cas, la vue n'a pas à être mise à jour, et c'est le but: c'est le SGBD (MySQL ou Oracle ou autre) qui se charge de la tenir à jour. Toi, tu ne modifies que les données dans les tables, la vue est juste là pour faire l'aggrégat et éviter une query complexe.


RE: Demande d'avis sur système de caractéristiques d'unités - fortz - 23-12-2015

Je dois confondre avec autre chose que les vues, qui, elle, ne se met pas à jour automatiquement et qui a donc besoin de trigger afin d'"automatiser" la mise à jour des attributs.
D'accord, donc il suffit de créer une vue qui prend chaune des caractéristiques de base et qui ajoute les bonus que le joueur dispose sur la caractéristique et l'unité en question ?

Merci pour ta disponibilité et tes réponses


RE: Demande d'avis sur système de caractéristiques d'unités - Xenos - 23-12-2015

Oui, c'est ainsi que je ferai.


RE: Demande d'avis sur système de caractéristiques d'unités - fortz - 23-12-2015

Très bien je pense que c'est une bonne stratégie je vais l'adopter je pense Wink

Merci pour ton aide !