IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Structure d'un code


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Débutant
    Inscrit en
    Août 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Débutant
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2016
    Messages : 5
    Par défaut Structure d'un code
    Bonjour !

    J'ai un petit problème qui me freine dans le développement de mon projet de jeu sur navigateur.
    Je vous explique d'abord ce que je veux faire pour ne pas être flou :

    Je voudrais faire un jeu ou le but est de créer quelque chose , celui ci génère des ressources permanentant de créer d'autre chose ...
    Mais ce qu'il me freine aujourd'hui c'est le faite que je voudrais que toutes les seconde l'objet générant une ressource , bah , en génère une ^^.
    Et la ou je ne sais pas comment faire c'est que comme je veux que cet objet crée toutes les secondes une ressources , alors j'ai décidé d'utilisé Javascript , étant débutant en JS mais ayant des connaissance en PHP SQL , mais le problème pour moi c'est que les variable JS son facilement modifiable et en contradiction avec ce que je veux faire étant donné que je veux faire un marché ou les joueurs pourront échangez leurs ressources.

    Et donc c'est pas top que un joueurs change les valeur des variable et as en cinq minutes de l'or ou autre ressources rare :/

    Ma question est , savez vous comment je pourrais faire pour que mon code s'actualise toutes les secondes pour incrémenter une variable sans que celle ci sois modifiable et puisse être mis dans une base de données que la variable sois trafiquer.

    Je vous serrait infiniment reconnaissant si vous savez comment car je rêve de faire ce jeux et je me rapproche du but , mais je suis freiner par ce problème :/

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    en clair tu veux le beur l'argent du beur et la couscoussière.

    tu veux une variable modifiable mais pas modifiable

    A+JYT

  3. #3
    Membre à l'essai
    Homme Profil pro
    Débutant
    Inscrit en
    Août 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Débutant
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2016
    Messages : 5
    Par défaut
    Humm ok.

    Ce que je voudrais n'est pas le beur ect ... j'ai déjà tout mais je me suis juste confronté a un problème , je ne veux que un conseil / avis sur ce que je pourrais utiliser qui serrait le plus obti.
    Et non je ne veux pas une variable modifiable mais pas modifiable mais plutôt une variable qui n'est pas modifiable , mais il me semble que ce n'est pas possible.
    Je voudrais juste de vos conseil pour savoir quoi utiliser , j'ai déjà tout mais je me suis confronter juste a ce problème qui m’oblige peut être a tout refaire , je ne vous demande pas tout étant donné que j'ai déjà fait quelque code de mon niveau mais juste si vous savez quelle est la meilleur solution afin que le joueurs ne puissent pas éditer la variable.
    J'ai pensé a des pistes qui ne sont pas possible comme a chaque fois faire une requête php mais en faire une toutes les secondes n'est pas une bonne idée , ou utiliser des cookie , mais parait il que ce n'est pas sur car ils peuvent etre changer.

    je ne suis pas la pour vous demander 1000 et une chose , mais plutôt un conseil , donc merci de pas le prendre comme ceci ..

  4. #4
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Je ne connais pas de langage ou un variable n'est ppas modifiable.
    Variable signifie qui peut varier
    Si non c'est un constante.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Débutant
    Inscrit en
    Août 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Débutant
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2016
    Messages : 5
    Par défaut
    Quand je dis pas modifiable c'est par l'utilisateur , comme en PHP ( qui est coté serveur oui je sais ) ou on ne peut pas changer sa valeur en tant que simple client.
    Par non modifiable je parle de variable qui ne peut être modifier par les utilisateur du site mais après qui peut être changer par le code , comme par exemple JS qui demande a cette variable de d’incrémenté.
    Car en JS les variable son modifiable ( la valeur de la variable ) c'est de sa que je ne veux pas , car j'ai en quelque sorte toutes les cartes en main mais j'ai peur que quelqu'un passe sur le site change la valeur de la variable"diamant" ( exemple ) en 100 pour avoir 100 diamants , et après jouer avec les 100 diamant gagné en 2 minutes.
    Pour cela j'ai pensé a utiliser que les valeur de ma base de donné sql et donc de faire en sorte de ne pas utiliser de variable JS pour éviter que cela sois modifiable mais il y aurait trop de requête :/ ou utiliser des cookie qui serrait aussi modifiable :/

  6. #6
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    si ton jeux sur le serveur est en C++ donc compilé dont le code n'est pas modifiable par le client etc avec toute la sécurité que tu veux
    si dans jeu une action de l'utilisateur augmente la variable diamant du serveur
    il y a obligatoirement une transmission du client vers le serveur qui déclenche l'augmentation.
    du coup un petit malin peut recréer cette transmission et augmenter la variable artificiellement.

    si ton jeux est codée en langage Z6k oui un langage que personne connait. qu'il est compilé et que le jeu est installé sur le poste du joueur sans aucun communication
    un petit mail (plus doué) peut démarrer ton jeu sous remote debug, inspecter les conséquences de ses action récréer dans la mémoire la variable diamant et changer sa valeur.

    Bref tu peux imaginer tout ce que tu veux mettre toutes les sécurités que tu veux tu ne sera jamais totalement à l'abris. après c'est une question de moyen du peux dépenser des millions pour sécuriser ton appli cela reste qu'une question de choix.

    Avec javascript dans le navigateur le code est ouvert. tu peux le passer dans certains outils pour le rendre moins lisible mais je debugger est disponible et facile pour tous.
    en imaginant que tu y arrives. ton code javascript communique en http en faisant circuler du simple texte
    il suffit de d'envoyer le même contenu où la valeur est modifié

    la sécurité ça se pense pas après coup mais avant le début du codage.

    qui dis navigateur http et js dis porte ouvertes

    A+JYT

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Citation Envoyé par albisse Voir le message
    Pour cela j'ai pensé a utiliser que les valeur de ma base de donné sql et donc de faire en sorte de ne pas utiliser de variable JS pour éviter que cela sois modifiable mais il y aurait trop de requête :/ ou utiliser des cookie qui serrait aussi modifiable :/
    C'est pourtant la solution puisque tu ne peux vraiment contrôler que les variables côté serveur.

    La première possibilité mais qui n'est pas optimisée est de faire des requêtes ajax. Mais si tu veux pouvoir supporter de nombreux joueurs en simultané il te faudra un serveur assez conséquent car effectivement cela prend pas mal de ressources.

    Dans ce type de jeux qui requièrent des requêtes fréquentes et répétées l'idéal est d'utiliser un serveur qui permet de faire du push, c'est à dire d'envoyer automatiquement des réponses suivant un changement d'état du serveur.

    Avec php il y a les websocket mais ne ne sais pas si ce standard est suffisamment supporté par tous les navigateurs. Le plus en vogue actuellement est d'utiliser javascript côté serveur avec notamment node.js.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Débutant
    Inscrit en
    Août 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Débutant
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2016
    Messages : 5
    Par défaut
    Oui effectivement après j'ai trouvé une autre solution qui est plus extrême , le Python ou Ruby a la place du JS , enfin je vais voir si c'est possible , enfin si les variable son tout bêtement pas modifiable pour l'utilisateur et est dynamique :/

  9. #9
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Tu es obligé de passer par le serveur pour sécuriser les variables (le local ça se bricole)... Avec Python ou Ruby tu seras devant la même problématique qu'avec Php.

    L'important dans ton cas si tu veux quelque chose d'optimisé est d'utiliser une technologie serveur qui permet de faire du push pour éviter les requêtes ajax trop fréquentes. Il faut juste faire attention de choisir une technologie supportée par tous les navigateurs. C'est cette raison qui a fait choisir node.js au début car il fournissait une excellente compatibilité. Ensuite il est aussi très performant donc en passe de devenir un standard pour ce genre de projets.

    Sinon tout comme il existe des lib Php pour faire du push avec les socket, il en existe aussi pour Python et Ruby.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Débutant
    Inscrit en
    Août 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Débutant
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2016
    Messages : 5
    Par défaut
    Oui finalement je vais me penché là dessus.
    Merci a vous.

  11. #11
    Membre chevronné
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Par défaut
    Une requête de type Ajax, faite de manière cyclique et automatique à l'aide de la fonction "setInterval()"?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script>
      function requete() {
        ...
      }
      onload=function(){
        setInterval(requete,1000);
      };
    </script>

  12. #12
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    @eleydet Comme déjà dit c'est une solution mais c'est aussi celle qui prend le plus de ressources serveur... Pour une même puissance serveur un système de push supportera beaucoup plus de joueurs en simultané. C'est viable mais plus limité.

  13. #13
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Salut,

    la meilleure protection contre un cheat côté client, c’est d’avoir un système côté serveur qui vérifie la cohérence des données envoyées par le client. Par exemple si tu sais que le joueur a une mine de diamant niveau 3 qui produit n diamants par heure, et que le serveur n’a pas reçu de commande « améliorer la mine » de la part de ce joueur, ton serveur peut en déduire que la production de diamants est toujours la même. Au bout de deux heures, le joueur est donc censé avoir produit 2n diamants.

    Le secret de la vaste majorité des jeux sur navigateur, se trouve ici : en réalité c’est le serveur qui calcule les vraies valeurs de jeu, le client ne fait que des calculs de « comblement » pour éviter de devoir faire trop souvent des requêtes vers le serveur. Mais c’est le serveur qui a autorité, et le client doit mettre ses propres valeurs à jour quand il reçoit celles envoyées par le serveur.

    Avec ce système, tu n’es obligé de faire une requête vers le serveur que lorsque le joueur fait une action qui consomme des diamants, pour rester dans l’exemple. Si tu joues ou as joué à Ogame, tu as peut-être constaté que tu peux garder une page ouverte pendant des heures sans qu’elle se rafraîchisse, les ressources augmentent toutes les secondes mais aucune requête n’est faite vers le serveur. Quand tu rafraîchis la page, tu peux alors constater un « saut » dans les quantités de ressources, car le client s’est resynchronisé avec les valeurs du serveur, et a corrigé les imprécisions dûes à la façon dont le script client d’Ogame est codé.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. La structure de mon code est elle bonne ?
    Par arklane dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 17/08/2014, 13h47
  2. position d'une structure dans le code
    Par Helices dans le forum C#
    Réponses: 1
    Dernier message: 13/06/2014, 21h23
  3. structure d'image codée
    Par mehdi.crespo dans le forum Langage
    Réponses: 2
    Dernier message: 14/02/2012, 11h42
  4. structure projet scolaire (Code Morse)
    Par marchoun dans le forum Débuter
    Réponses: 5
    Dernier message: 10/12/2008, 11h57
  5. aide sur la structure d'un code
    Par durango dans le forum Langage
    Réponses: 4
    Dernier message: 11/04/2007, 18h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo