18-12-2011, 07:28 PM
(Modification du message : 18-12-2011, 10:18 PM par Sephi-Chan.)
Coucou
J'ai eu une idée en réfléchissant à comment traiter les messages que le serveur enverrait au joueur
J'aimerais vous la soumettre, elle est peut être contre productive, mais j'aimerais avoir vos avis avant d'imaginer partir la dessus
Dans le cadre d'un jeu asynchrone, le joueur lance une action et attend une réponse
cette réponse est à mon sens de trois ordres :
1) un message explicatif :
2) la création de nouveaux objets (côté client)
ici il faut afficher le schrubuluck avec les ressources associées (image, et ses infos : quantité, position dans l'inventaire ou ailleurs, etc...)
3) la modification d'objets existants (côté client)
ici l'énergie du personnage qui doit baisser de 15 points
au final les données envoyées pour la suite du gameplay (a savoir 2 et 3) permette de déduire le message 1, à une exception près :
2) et 3) sont des données à destination du navigateur (des chiffres, des liens, etc...), et non du joueur (pas évident de se dire que t_f_2 = 45 veut dire que son énergie est passé de 60, ancienne à valeur, à 45 )
et donc je me suis dit pourquoi surcharger le serveur, la bande passante, et tout le toutim, a envoyer une information dupliquée, une fois pour le navigateur, une fois en langage "naturel" pour le joueur ?
d'où ma proposition:
à la première connexion du joueur, lors de sa création (on prend du temps à la création du compte au moins une minute donc ca devrait être transparent, sinon on communique au joueur comme quoi on charge des éléments pour son confort de jeu), on télécharge un fichier javascript spécialisé dans la traduction dans la langue du joueur des infos à destination du navigateur
genre j'envoie :
et de fait le javascript sait que
action:2 = "vous avez réussi à trouver "
object[3,] = schrubuluck
object[1,] = quantité de 1
action:2+object[3,1] ==> "vous avez réussi à trouver un schrubuluck"
et trait t_f_2 donnera "énergie"
on compare 45 à l'ancienne valeur, et on en déduit qu'il faut afficher
"Votre énergie à baisser de 15 elle vaut désormais 45"
dans le même temps le système interprète l'affichage des différents éléments
de fait on réduit sensiblement la volumétrie des données transférées (en s'appuyant sur le cache navigateur pour le fichier javascript)
qu'en pensez vous ?
J'ai eu une idée en réfléchissant à comment traiter les messages que le serveur enverrait au joueur
J'aimerais vous la soumettre, elle est peut être contre productive, mais j'aimerais avoir vos avis avant d'imaginer partir la dessus
Dans le cadre d'un jeu asynchrone, le joueur lance une action et attend une réponse
cette réponse est à mon sens de trois ordres :
1) un message explicatif :
Citation :Vous avez réussi à trouver un schrubuluck
Votre énergie a baissé de 15 points
2) la création de nouveaux objets (côté client)
ici il faut afficher le schrubuluck avec les ressources associées (image, et ses infos : quantité, position dans l'inventaire ou ailleurs, etc...)
3) la modification d'objets existants (côté client)
ici l'énergie du personnage qui doit baisser de 15 points
au final les données envoyées pour la suite du gameplay (a savoir 2 et 3) permette de déduire le message 1, à une exception près :
2) et 3) sont des données à destination du navigateur (des chiffres, des liens, etc...), et non du joueur (pas évident de se dire que t_f_2 = 45 veut dire que son énergie est passé de 60, ancienne à valeur, à 45 )
et donc je me suis dit pourquoi surcharger le serveur, la bande passante, et tout le toutim, a envoyer une information dupliquée, une fois pour le navigateur, une fois en langage "naturel" pour le joueur ?
d'où ma proposition:
à la première connexion du joueur, lors de sa création (on prend du temps à la création du compte au moins une minute donc ca devrait être transparent, sinon on communique au joueur comme quoi on charge des éléments pour son confort de jeu), on télécharge un fichier javascript spécialisé dans la traduction dans la langue du joueur des infos à destination du navigateur
genre j'envoie :
{"action":2,"object":[3,1,'schru.jpg'],"trait":{"t_f_2":45}}
et de fait le javascript sait que
action:2 = "vous avez réussi à trouver "
object[3,] = schrubuluck
object[1,] = quantité de 1
action:2+object[3,1] ==> "vous avez réussi à trouver un schrubuluck"
et trait t_f_2 donnera "énergie"
on compare 45 à l'ancienne valeur, et on en déduit qu'il faut afficher
"Votre énergie à baisser de 15 elle vaut désormais 45"
dans le même temps le système interprète l'affichage des différents éléments
de fait on réduit sensiblement la volumétrie des données transférées (en s'appuyant sur le cache navigateur pour le fichier javascript)
qu'en pensez vous ?