04-03-2012, 03:41 PM
(04-03-2012, 02:36 PM)Talus a écrit : je met ma petite graine ici (désoler du déterrage ^^)
Il existe l'APE, Ajax Push Engine (http://www.ape-project.org/)
qui permet d'avoir du JS coter server, ce framework permet entre autre de faire du Data Streaming, du bon vieux temps réel a l'affichage
il y a la fois du JS cotee client, pr l'affichage et les requête server,mais il y a du JS cotée server pour tout ce gui est gestion des requête
après si tu veux empêcher le joueur de tricher tu a plusieurs petite astuce
par exemple le score tu le stock en plusieurs valeur :
le modulo du score et le reste du modulo
ou bien tu associe le score avec son MD5 comme sa tu vérifie l'integritee des data a la réception serveur
ou bien tu applique un petit algo d'encodage (Xor, Décalage de bit) a tes data pour empêcher le joueur de savoir réellement a quoi correspondent les valeur
je suis en stage dans une boite qui dev des jeux web et ce sont des solution qu'ils utilisent fréquemment
Hélas, il n'y a pas de solution à ces problèmes : dès lors qu'il y a un transfert de données du client vers le serveur, ces données peuvent être falsifiée. Même si tu génères une empreinte pour ces données, le tricheur n'aura qu'à générer l'empreinte des données falsifiées.
Tu peux mettre des bâtons dans les roues de tes tricheurs, mais rien de simple pour empêcher les triches côté client. Ainsi, sans un contrôle draconien côté serveur (qui aurait un coût monstrueux en terme de ressources), tu ne peux pas déceler les triches discrètes.
Imagine que tu fasses un tower defense multijoueurs, il est difficile de mettre en place des contrôles de triches (vérifier pour chaque tir de tourelle si la tourelle avait bien la portée pour toucher tel monstre et si les dégâts correspondent). Le seul moyen fiable est de jouer la partie côté serveur et de produire l'affichage côté client, mais la latence que ça induit peut rendre ça pénible pour le joueur.
Pour ce qui est du serveur de push, je n'ai jamais aimé leur API et encore moins leur documentation : j'utilise donc Juggernaut (et il y en a d'autres très bons). Il est bâti sur NodeJS (en Javascript aussi, donc) et fonctionne avec Redis pour le messaging : deux logiciels libres éprouvés, donc robustes. De plus, Redis sert à bien d'autres choses quand on développe un jeu !