JeuWeb - Crée ton jeu par navigateur
Messageries in-game - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Communauté, communication, marketing (https://jeuweb.org/forumdisplay.php?fid=49)
+--- Sujet : Messageries in-game (/showthread.php?tid=8056)



Messageries in-game - Xenos - 05-03-2020

Salutations,

question générale et vague: comment gérez-vous ou gèreriez-vous la messagerie au sein d'un jeu web?

Pour variispace par exemple, je suis parti sur le principe qu'un joueur peut écrire à un seul autre joueur (messages 1-1 uniquement) sans plus de restriction. Mais je me demande si certains ne vont pas aller spammer les autres de messages, ou s'il est nécessaire d'ajouter un système de contact, de blocage, une limite de messages par minute ou heure, etc...

J'ai moyennement envie de complexifier la chose (j'aurai même bien dit "je n'ai qu'à pas gérer les messages et je délègue tout à Discord") mais je ne sais pas si c'est la meilleure approche pour forger une communauté? D'un côté, ça évite les problématique de messagerie (et ça évite de faire un mauvais système de message), mais de l'autre, cela exclurait tous ceux n'ayant pas Discord... Mais je peux toujours rajouter d'autres moyens de contacts (mail par exemple?)


RE: Messageries in-game - niahoo - 06-03-2020

Perso j'utiliserais les Channels du framework Phoenix. Dans ton cas ça demanderait d'héberger ça à part, donc autant partir sur du XMPP genre ejabberd – mais il existe probablement des implémentations PHP, forcément moins puissantes, mais avec un nombre limité de joueurs ça n'est pas gênant.

Sinon niveau interface il y a deux types principaux de façons de faire : WoW et Eve Online.

Dans WoW chaque onglet du chat permet d'afficher les messages de N channels, et une commande permet de controller le channel sur lequel on parle. Par exemple /gr Hello pour parler en groupe, /w Michel Salut pour "chuchoter", /2 Vends super armure pour parler sur le global commerce, ou encore /join monchannel pour rejoindre / créer un canal.

Les mêmes fenêtres sont utilisée pour afficher les logs (drops des mobs, XP, gains d'or, points de compétence, messages système, …).

Dans Eve, tu as une fenêtre/onglet par channel ou conversation privée, tu peux afficher les avatars des gens, formater les dates, et surtout afficher la liste des gens présents sur le channel (en mode direct ou delayed, c'est à dire n'affichant que les gens ayant parlé les N dernières minutes). Les logs ont donc leur fenêtre spécifique, et les loots, gains, etc, ne sont pas affichés durablement.

N'étant pas très bavard je préfère la solution Wow qui permet simplement d'avoir un onglet ou t'as tout le chat qui défile et un autre onglet dans lequel tu as les conversations locales et de groupe/raid pour rester focus dessus et ne pas être enbêté par le reste.

Ensuite il y a un avantage dans Eve, c'est le canal "Local", qui liste tous les joueurs présents dans le système solaire, donc des cibles/menaces potentielles, avec des icones indiquant s'ils sont hostiles, dangereux, "amis", etc. Ce canal étant extêmement important dans le jeux et affiché d'office pour tous les joueurs, tu peux être sûr à 99% qu'un joueur présent dessus lira ton message. Mais forcément c'est lié au gameplay spécifique d'Eve.

J'ajoute aussi que dans Eve tu peux parler à n'importe qui, ami comme ennemi, alors qu'un jeu comme WoW en serveur PvP empêche la communication entre les deux factions ennemies, du coup tu te retrouves à parler avec l'ennemi sur Discord (c'est d'ailleurs interdit par les conditions générales de WoW il me semble). Mais ça sert bien l'immersion de wow, et communiquer avec un ennemi via des emotes pour coopérer temporairement, c'est toujours fun. D'autant plus qu'ayant une communication très limitée tu ne peux jamais vraiment sympathiser, donc tu resters toujours sur tes gardes pour prévenir une trahison soudaine Smile

Concernant le spam, tu dois offrir la possibilité d'ignorer les messages d'un autre joueur. Ensuite c'est toujours chiant (edit: viewer) de ne pas savoir qu'un joueur que tu ignores est en train de parler, mais d'un autre côté si tu as moyen de le savoir, la personne que tu ignores comptera sur ta curiosité pour afficher le message ou le désignorer temporairement et donc continuera de te saouler.

Enfin, la limite de messages par minutes est nécessaire aussi, ça évite pas mal de relous. Ça comme une liste d'ignorés est facile à implémenter, ça n'alourdit pas vraiment le bouzin.

Concernant la sécurité, hormis l'évident blocage des scripts je suppose que la législation impose de logger toutes les conversations en cas d'abus (genre un pédocriminel ou vendeur d'héroïne qui vient parler à des joueurs potentiellement mineurs). Soit tu log sur ton serveur et dans ce cas ça doit clairement apparaître dans les conditions d'utilisations, soit tu log sur le poste client (Le client Eve Online log les conversations sur le client par exemple), avec un hash fourni par le serveur pour assurer la conformité de chaque chunk de logs. Dans le cadre d'un jeu par navigateur c'est blocant car tu ne peux pas faire ça. Mais tu peux chiffrer les logs de chaque personne et les stocker sur ton serveur, et le mot de passe d'un joueur permet de déchiffrer, mais ça devient vite chiant à gérer.


RE: Messageries in-game - Xenos - 06-03-2020

Merci pour la réponse complète Smile Ca me donne de bonnes pistes (pour Dracca plutôt je trouve, car je ne pense pas pousser aussi loin la messagerie entre joueurs côté Variispace?! en tous cas, pas sur une première release)

Pour le log des conversations, j'ai un gros gros doute sur le caractère légalement "obligatoire". C'est même le contraire à mon sens, pour cause de RGPD (on ne garde pas les logs des conversations "plus longtemps que nécessaire" et je pense que ça se limite à quelques jours tout au plus). Bref, je verrai pour ça après (au sens où la RGPD permet aussi de dire "je garde tout, et si le joueur veut virer ses données, il se désinscrit et c'est bouclé ou il demande au "staff")