![]() |
[En Cours] Moteur de jeux - 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 : [En Cours] Moteur de jeux (/showthread.php?tid=3089) Pages :
1
2
|
[En Cours] Moteur de jeux - lemouix - 23-09-2008 Bonjour, Que conseillez vous pour la gestion des ressources d'un joueur pour un jeux en ligne: 1- Stockage des infos dans la session (ressources, valeur, production par heure,...) avec un affichage basé là dessus 2 - Lecture des infos dans la bdd pour l'affichage (plus lourd pour le serveur). Le but est de faire en sorte que le serveur ne soit pas surchargé de requêtes. Si vous avez déjà travaillé sur des jeux avec une gestion similaire, ça serait sympa de faire un feed-back de vos expériences ici !!! Sinon, pour les algos de combat, existe t-il des bases ou êtes vous partis de 0 ? Merci d'avance, à bientôt ! ----- Développement du moteur de jeux php en cours: Etape: Base de données - définition des contraintes [OK] - modélisation de la base de donnée [En Cours] RE: [En Cours] Moteur de jeux - Amrac - 23-09-2008 En fait cela dépend des interactions qu'il y aura entre tes joueurs. S'il n'y as aucune interaction, tu charge tout dans une session a la connexion et lors d'une modification, tu met à jour la base de données et ta session. Au niveau des performances, c'est le pied. Mais dans la réalité, en général tu as des interactions entre tes joueurs. Le problème (d'après moi), c'est que tu ne peut pas stocker tout les éléments pouvant être modifié par un autre joueur. Par exemple, si un autre joueur peut piller les ressources, a chaque nouvelle page tu doit lire dans la base de données la quantité de ressource qu'a le joueur car elle peut avoir était modifié. Si tu opte pour la premiere option, attention aux abus. Je te conseil de limiter à une session active par joueur maximum, sinon tu peut avoir des abus de ce style. Ouverture d'une session (avec mozilla par exemple): SESSION1: Ressource = 10.000 Ouverture d'une seconde session (avec IE par exemple): SESSION2: Ressource = 10.000 Dans la SESSION1, le joueur construit un batiment de 8.000 => SESSION1: Ressource = 2.000 Dans la SESSION2, le joueur dispose de 10.000 ressources à dépensé, alors qu'il devrait en avoir 2.000. Je sais pas si j'ai était très clair ![]() Pour l'algo de combat, je suis parti de 0 personnellement. RE: [En Cours] Moteur de jeux - lemouix - 23-09-2008 Merci pour ta réponse AMRAC, j'avai pas envisagé ce que tu expliques pour le cheat de ressources ![]() Donc, pour ce qui est fixe pour le joueur comme les batiments, les technos, je peux stocker ça dans la session. En revanche, pour ce qui est des ressources, unités, ... il vaut mieux faire une lecture de base. En fait le moteur nous permettra de créer n'importe quel type de jeux allant d'un ogame avec plus de possibilités jusqu'à un jeux comme ikariam ou autre. RE: [En Cours] Moteur de jeux - Ter Rowan - 23-09-2008 et encore... (je suis peut être parano, et pas expert du tout) à mon sens n'utilise dans les sessions ces info que pour aider à l'affichage, pas pour faire des tests genre si le joueur demande de produire tel unité, vérifie en bdd si le joueur a le bâtiment nécessaire pour les produire, même si tu as cette info en session) RE: [En Cours] Moteur de jeux - Amrac - 23-09-2008 Je confirme que pour tout ce qui est tests (constructions, recherches ...) l'idéal est de passer par la base de données car c'est: -Plus sur, si une couille fait que la valeur dans la session est erroné, tu limite les dégâts. -Pas cher, car cela représente un faible nombre de requête. Pour du simple affichage, s'il y a un problème ce n'est pas trop grave et on s'en rend vite compte (puisque les joueurs se plaindront), et cela permet d'économiser énormément de requêtes. RE: [En Cours] Moteur de jeux - lemouix - 23-09-2008 En fait, tout se passe dans la BDD directement pour tout ce qui concerne la conso du style: Le joueur lance une construction, un trigger vérifie automatiquement les ressources du joueur et s'il a les ressources, lance la construction et déduis de ses ressources les valeurs nécessaires ! RE: [En Cours] Moteur de jeux - lemouix - 21-11-2008 Un peu de nouveau sur notre projet. Nous sommes en cour d'élaboration des diagrammes et surtout la définition des technologies à utiliser. Voici le diagramme que j'ai pu élaborer. Etant novice en UML, pourriez vous me donner vos avis sur le diagramme de classe suivant (je n'ai pas indiqué toutes les méthodes des différentes classes par manque de temps). Je ne sais pas si j'ai modélisé tout ça correctement. ![]() EDIT - 21/11/2008 14:03 : A ajouter: La classe utilisateur qui étend element. Joueur étend utilisateur. Voici les explications: Tous les éléments du moteur possèdent un nom, une description et une image associée. Toutes les classes étendent la classe element. Espace est l'environnement. Exemple: Planète, pouvant contenir pays, ... Les actifs sont ceux qui peuvent produire et/ou consommer (batiments et unités) une ou plusieurs ressources. Une unité pourra se déplacer et attaquer (à ajouter: transporter). Le but du moteur, pour le rappeler, est d'utiliser des termes génériques afin de pouvoir utiliser le moteur pour n'importe quel jeux. Un joueur possède plusieurs espaces et chaque espace contient plusieurs éléments: Une planète contiendra des batiments, des unités, des ressources, des technologies. Une technologie pourra influencer un actif sur sa défense ou son attaque. Est ce un peu plus précis ? FIN EDIT POST A bientôt ! RE: [En Cours] Moteur de jeux - Plume - 21-11-2008 Il manque un dictionnaire pour aider à comprendre la totalité assez rapidement ![]() RE: [En Cours] Moteur de jeux - lemouix - 21-11-2008 Rien compris Plume.... :p tu peux m'expliquer ce que tu veux dire par là ? RE: [En Cours] Moteur de jeux - Melimelo - 21-11-2008 Tu trouves aussi que c'est compliqué a comprendre ce qu'il raconte plume ![]() Et encore je dois passer des heures par mp ![]() |