Bonjour,
J'en suis actuellement dans la phase de conception théorique de mon jeu, -ô originalité - un MMO. J'ai une expérience assez solide du C++ et donc de la programmation OO ,et des bases de php/mySQL, mises à l'érpeuves il y a quelques années de cela et que je vais rafraichir et renforcer pour l'occasion. Je pense avoir des idées assez claires sur la manière d'employer des BDD, mais je connais mal les limites du langage, et les problèmes de performances. Comme il s'agit de ne pas se faire suprendre au moment de concevoir les mécanismes clefs de mon jeu, je suis venu demander humblement quelques conseils ^^ afin d'organiser tout ça au mieux avant d'attaquer la phase programmation.
Donc une questions que je me pose est la suivante : Quelle genre de répartition des infos faut-il privilégier, dans les examples suivants ?
J'ai un abre de compétences. Une compétence n'est accessible qu'à condition d'en réunir plusieurs autres. Vaut-il mieux alor avoir une table comp_relations avec pour champ, une compétence, celle dont elle dépend, et le dégré de cette dernière? Ce qui donnerait du coup
comp_relations
{
Snipe , Tir, 3
Snipe, Observation, 2
}
pour définir que la compétence 'Snipe' nécessite Tir au lvl 3 et Observation au lvl 2
ou générer une table de dépendences pour chaque compétences, par exemple :
snipe_relations
{
Tir , 3
Observation 2
}
En bref vaut-il mieux insérer autant de liens que l'on veut dans une table unique, ou éclater des informations en plusieurs tables ? Ou plutôt à partir de quelle quantité (genre si une compétence en nécessite une dizaine d'autres, ou si j'ai une 60aine de compétences...)
Dans ce cas ce n'est pas trop critique. Mais imaginons le cas d'une map divisées en zones, appartenant à différentes régions. Vaudra-t-il mieux dans le cas de nombreuses zones(imaginons un monde de 1000 * 1000) et quelques régions (20-25..) :
Avoir une table de zones avec un champ région ?
Avoir 20-25 tables de régions avec leurs zones respectives ? Si je choisis ce dernier cas, il vaut mieux que toutes les informations relatives à une zone soient stockés par les éléments qui s'y trouvent, joueurs, ennemis, structures... Retrouver le type d'une zone devient plus complexe (il faut parcourir l'ensemble des tables de régions jusqu'à dénicher le champ). Est-ce que cela vaut la peine pour éviter une table à 1000 000 d'entrées ? :heuuu:
Merci d'avance. Je pense que j'aurais d'autres question d'organisation pour une prochaine fois :bounce:
J'en suis actuellement dans la phase de conception théorique de mon jeu, -ô originalité - un MMO. J'ai une expérience assez solide du C++ et donc de la programmation OO ,et des bases de php/mySQL, mises à l'érpeuves il y a quelques années de cela et que je vais rafraichir et renforcer pour l'occasion. Je pense avoir des idées assez claires sur la manière d'employer des BDD, mais je connais mal les limites du langage, et les problèmes de performances. Comme il s'agit de ne pas se faire suprendre au moment de concevoir les mécanismes clefs de mon jeu, je suis venu demander humblement quelques conseils ^^ afin d'organiser tout ça au mieux avant d'attaquer la phase programmation.
Donc une questions que je me pose est la suivante : Quelle genre de répartition des infos faut-il privilégier, dans les examples suivants ?
J'ai un abre de compétences. Une compétence n'est accessible qu'à condition d'en réunir plusieurs autres. Vaut-il mieux alor avoir une table comp_relations avec pour champ, une compétence, celle dont elle dépend, et le dégré de cette dernière? Ce qui donnerait du coup
comp_relations
{
Snipe , Tir, 3
Snipe, Observation, 2
}
pour définir que la compétence 'Snipe' nécessite Tir au lvl 3 et Observation au lvl 2
ou générer une table de dépendences pour chaque compétences, par exemple :
snipe_relations
{
Tir , 3
Observation 2
}
En bref vaut-il mieux insérer autant de liens que l'on veut dans une table unique, ou éclater des informations en plusieurs tables ? Ou plutôt à partir de quelle quantité (genre si une compétence en nécessite une dizaine d'autres, ou si j'ai une 60aine de compétences...)
Dans ce cas ce n'est pas trop critique. Mais imaginons le cas d'une map divisées en zones, appartenant à différentes régions. Vaudra-t-il mieux dans le cas de nombreuses zones(imaginons un monde de 1000 * 1000) et quelques régions (20-25..) :
Avoir une table de zones avec un champ région ?
Avoir 20-25 tables de régions avec leurs zones respectives ? Si je choisis ce dernier cas, il vaut mieux que toutes les informations relatives à une zone soient stockés par les éléments qui s'y trouvent, joueurs, ennemis, structures... Retrouver le type d'une zone devient plus complexe (il faut parcourir l'ensemble des tables de régions jusqu'à dénicher le champ). Est-ce que cela vaut la peine pour éviter une table à 1000 000 d'entrées ? :heuuu:
Merci d'avance. Je pense que j'aurais d'autres question d'organisation pour une prochaine fois :bounce: