JeuWeb - Crée ton jeu par navigateur
Système de channel privé, semi-privé - 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 : Système de channel privé, semi-privé (/showthread.php?tid=6931)

Pages : 1 2


Système de channel privé, semi-privé - Th3conc3pt3ur - 17-09-2013

Bonjour à tous,

Alors voici ma problématique. Je développe actuellement un jeux dans l'univers de w40k ( cf mon post ici pour ceux qui l'aurais pas vu : http://www.jeuweb.org/showthread.php?tid=10035)

Je souhaiterais intégrer à ce jeux un système de "chat" entre joueurs du même chapitres.

Cependant plus j'y pense plus je ne sais pas si c'est une bonne idée.

L'idée originel serais pour un chapitre de pouvoir discuter entre eux de stratégie entraide et pourquoi pas d'Hérésie (cf poste principale).

Ma première idée était d'intégrer un système de chat type IRC avec un channel par chapitre, cependant si un joueur joue un chapitre A et créer un autre compte avec un Chapitre B il pourra donc avoir accès à celui-ci et "espionner" les agissements de ce chapitre.

Pensez-vous déjà que l'idée est viable ? et si oui comment voyez vous un système fiable pour l'implémenter ?

Cordialement Th3conc3pt3ur


RE: Système de channel privé, semi-privé - Sephi-Chan - 17-09-2013

Tu peux utiliser le service Pusher. C'est gratuit tant que tu n'as pas besoin de beaucoup de connexions simultannées (20 maximum avec le pallier gratuit) ni beaucoup de messages (100 000 par jour avec ce même pallier), donc idéal pendant la phase de développement et de bêta test.

L'avantage, c'est que le jour où tu veux t'émanciper en utilisant un serveur dédié, tu peux y installer Slanger, qui est 100% compatible avec l'API de Pusher, donc pas besoin de changer ton code, ni côté client, ni côté serveur.

Et ça supporte les canaux privés par un système très simple mais très efficace : quand un navigateur ouvre une connexion sur un canal privé, le serveur Pusher appelle une page de ton site en indiquant quel utilisateur tente d'ouvrir une connexion sur quel canal, et la page retourne sa réponse.

C'est vraiment super. Smile


RE: Système de channel privé, semi-privé - Th3conc3pt3ur - 17-09-2013

Aaaaaaa Sephi je t'aime !! (oups je m'emporte un peu xD ) en tout cas je vais de se pas voir ce service que je ne connaissais pas du tout ! Encore merci à toi ! Smile

Par contre que penses-tu de l'histoire des espions, même avec ce système un joueur pourrais rejoindre 2 channels de 2 chapitres différents :/


RE: Système de channel privé, semi-privé - Ter Rowan - 17-09-2013

(17-09-2013, 04:42 PM)Th3conc3pt3ur a écrit : Par contre que penses-tu de l'histoire des espions, même avec ce système un joueur pourrais rejoindre 2 channels de 2 chapitres différents :/

rien n'empêchera l'espionnage

c est le même problème que le multi mais en pire, y a pas de transaction entre perso, donc plus dur à détecter encore


RE: Système de channel privé, semi-privé - Th3conc3pt3ur - 17-09-2013

Après je pense qu'avec le système de Sephi il sera possible de comparer les adresses ip et si un ip se connecter à 2 chan différents. Cependant si 2 joueurs joue dans la même maison c'est possible sans forcément qu'il y ai de l'espionnage :/ Compliqué à gérer ...


RE: Système de channel privé, semi-privé - Sephi-Chan - 17-09-2013

Le joueur ne peut se connecter qu'aux canaux que tu lui autorises.

Quand la demande de connexion arrive, tu peux utiliser les informations de session du joueur pour l'identifier, tu peux donc savoir à quelle équipe il appartient. Tu reçois également le nom du canal qu'il tente de rejoindre, tu peux donc avoir un peu de logique qui te permettra de déterminer la réponse à donner.

Par exemple :


# session[:player_id] est l'identifiant du joueur stocké en session.
player = Player.find(session[:player_id])

# Les noms de canaux sont de la forme "team:dark-angels".
# params[:channel] est le nom du canal sur lequel le type veut se connecter.
# team_slug vaudra "dark-angels" (ou "salamanders", "alpha-legion", etc.).
regexp = /^teamSad[\w-]+)$/
matches = regexp.match(params[:channel])
team_slug = matches[1]

if team_slug
if player.team.slug == team_slug
Rails.logger.info "Player #{player.name} joined the channel of #{player.team.slug}."
render(json: true)
else
Rails.logger.cheat "Player #{player.name} tried to join the channel of #{team_slug} despite he is member of #{player.team.slug}!"
render(json: false)
end
else
Rails.logger.info "Player #{player.name} tried to join the invalid channel #{params[:channel]}."
end


Le problème du multi est un autre problème, plus complexe et qui va te coûter un paquet d'énergie pour rien (puisque tu n'arriveras pas à l'empêcher de manière sûre) : mieux vaut investir cette énergie dans la création du jeu en te disant qu'au pire, l'espionnage fonctionne dans les deux sens.


RE: Système de channel privé, semi-privé - Th3conc3pt3ur - 17-09-2013

Oui remarque c'est pas faux, je vais donc regarder la doc de Pusher avec attention Smile


RE: Système de channel privé, semi-privé - Ter Rowan - 17-09-2013

(17-09-2013, 05:30 PM)Th3conc3pt3ur a écrit : Après je pense qu'avec le système de Sephi il sera possible de comparer les adresses ip et si un ip se connecter à 2 chan différents. Cependant si 2 joueurs joue dans la même maison c'est possible sans forcément qu'il y ai de l'espionnage :/ Compliqué à gérer ...

tu considères qu'un joueur ne peut avoir qu'une ip, quid si le joueur joue via une box et via une connexion 3G ?

bref laisse tomber le sujet d'espionnage


un exemple plus parlant. Sur wow, a mon époque, il était impossible d'avoir sur un compte donné (donc payant) des personnages des deux clans sur le même serveur (pour éviter d'espionner justement lors des raid)
conclusion : un certain nombre de joueurs avaient deux comptes, quitte a payer plus...

donc laisse tomber l espionnage. Au pire si une équipe veut vraiment se protéger, ils se créeront leur propre channel/skype/teamspeak


RE: Système de channel privé, semi-privé - Th3conc3pt3ur - 20-09-2013

Quelqu'un à des retours de Pusher avec Symfony2 j'arrive pas à faire marcher les canaux privé et présence... Les normaux c'est bon mais dès que je dois passer par l'auth c'est la misère...


RE: Système de channel privé, semi-privé - niahoo - 20-09-2013

Fais voir ce que tu as pour le moment