Table des matières

Yakalfr : Forum Khaganat

Ce yakalfr1) détaille les fonctionnalités utiles pour le forum de Khaganat. C'est un forum assez classique et basique (première partie) avec des specificités propres aux besoins du projet (seconde partie).

Le but du forum de Khaganat est double :

Pour le reste, la plupart de notre activité se déroule par chat, sur les wiki et dans la forge git, donc pas la peine d'être redondant.

Ce yakalfr est bien avancé, mais un forum est une chose complexe. N'hésitez pas à compléter, ainsi qu'à venir discuter de certains choix sur XMPP ou sur le forum.

Il reste entre autre à détailler la partie administration générale (options en tout genre) et profil utilisateur (complexe car probablement géré de façon plus globale pour nous).

Reprendre forummatrix afin de ne pas oublier un truc de base essentiel serait une bonne chose.

  • Ajouter un content warning ; NSFW et interdit aux moins de 18 ans

Vocabulaire

Fonctionnalités basiques et classiques

Sujets, messages

Il y a différents types d'organisation de forum :

Dans le cas de Khaganat, le forum flat me semble mieux. Cela évite les fils complexes, l'ordre chronologique étant le plus important quand il s'agit de raconter des histoires à plusieurs voix (ce qui n'empêche pas des flashback).

Côté chronologie : le sujet commence par le message initial (le plus ancien), suivi par les autres messages dans l'ordre chronologique, bref du classique (et pas de l'antechronologique, comme les blogs…). Pour la présentation de la liste des sujets, voir plus bas dans “Catégories”.

Rédaction

Assistance à la syntaxe (WYSIWYG) et mise en page

Pouvoir mettre les messages en forme est une chouette chose. La possibilité de switcher entre une rédaction WYSIWYG et une rédaction où on voit les balises de code serait pas mal (parce que ça dépend des goûts).

S'appuyer sur une syntaxe existante semble pertinent (markdown, s'il faut choisir).

Voici ce qu'il faut pouvoir faire comme syntaxe :

Des trucs vraiment propres au forum :

Autour de la rédaction

Chaque message doit avoir une longueur maximum (aussi grande que possible mais quand même, faut éviter de saturer la base de donnée en postant 1 millions de caractère en une fois).

Comme les textes RP peuvent être longs, afficher un compteur de caractère peut être bien : “Il reste X caractères”.

Avertissement (dès qu'on clique sur le bouton répondre, donc avant de rédiger) si on tente de répondre à un message qui n'a pas eu de réponse depuis X jours (6 mois soit 180 jours ?), ce qui n'empêche pas de poster mais évite de réanimer des vieux machins par mégarde.

Seul le premier message a besoin d'un titre, pas de possibilité d'en renseigner un en réponse, ça ne sert à rien…

Possibilité de prévisualiser son message avant de l'envoyer. Forcer la prévisualisation comme dans Linuxfr ?

Visualisation des messages/sujets

Pour l'aspect purement graphique, quand on ouvre un sujet :

Le visuel avec avatar à gauche et texte à droite est important pour l'efficacité du forum, du moins pour les personnes qui lisent de gauche à droite. Oui, c'est du style phpbb2, mais ce n'est pas pour rien si ce style de forum est celui qui fonctionne le mieux pour des communautés actives.

Catégories

Il est potentiellement possible d'organiser par “tag” les sujets plutôt que par catégories fixes (façon phpbb). Personnellement je trouve qu'un hiérarchie fixe avec une arborescence claire est plus fonctionnelle, mais c'est à discuter.

Je différencierais 2 type de catégories : avec ou sans forum associé. Exemple sur le forum actuel : “khaganat” et “khanat” sont deux catégories, avec des sous-catégories mais sans forum associé (il n'y a pas un espace où poster des messages juste sous “Khaganat”, mais il y a des sous-forum).

Pouvoir imbriquer sur plusieurs niveaux les catégories est bien utile côté organisation : “Khaganat>Général>Bienvenue” par exemple.

Côté visuel, ce qui me semble marcher le mieux (mais je suis ptet vieux jeu), de gauche à droite :

  1. Icone indiquant s'il y a des nouveaux messages, si la catégorie est suivie
  2. Nom de la catégorie
  3. Dernier message posté (avec titre, auteur, date : permet de savoir si on a déjà répondu à tout :P )

Pour les sous-catégories, on peut se contenter de lister sous la catégorie (comme SMF actuellement), mais personnellement j'aime bien aussi avoir un décalage indiquant la hiérarchie puis les lignes de chaque catégorie (avec l'icône, le nom, le dernier message).

Le nombre de messages et sujets dans une catégorie me semble superflu.

Côté icone :

Aspect design : la façon dont les catégories avec et sans sous-catégories sont affichées, ainsi que la hiérarchisation des catégories a un gros impact sur l'ergonomie, il faudra donc soigner ce détail et bien le concevoir.

Dans une catégorie qui affiche une liste de sujets, la liste de sujet doit s'afficher dans cet ordre :

Pour chaque ligne de sujet :

Recherche

Pouvoir faire une recherche sur le forum uniquement est essentiel. À voir si on se contente de paramétrer Searx. Sinon :

Abonnements sujets et catégories

L'abonnement a deux impacts :

Il faut pouvoir s'abonner à un sujet, même sans participer ; si on répond, on peut décider dans la foulée de s'y abonner ou non (case à cocher/décocher à côté du bouton “envoyer la réponse”). Dans le profil, il faut pouvoir gérer si par défaut on souhaite s'abonner aux messages auxquels on répond ou non (par défaut, oui).

Idem sur les catégories : simplement cocher/décocher les catégories où on souhaite être averti des nouveaux messages (par défaut, rien n'est coché, sauf le forum “Annonces”).

Droit de lecture et écriture

Chaque catégorie du forum peut avoir des droits de lecture et d'écriture différentes. Une catégorie peut être en lecture :

Idem sur l'écriture :

Par défaut les forums sont en lecture ouverte (tout le monde peut lire même sans s'inscrire) et en écriture limité (le groupe “inscrits” peut poster à condition qu'il puisse voir le forum en question).

Groupes d'utilisateurs

Les droits se gèrent pas groupe d'utilisateur. Chaque groupe peut avoir des droits différents sur chaque catégorie et sous-catégorie (par défaut, hérite des droits du parent, mais peut se configurer plus finement).

Groupes de base :

Les administrateurs ont la possibilité de créer des groupes, de sélectionner quels droits ces groupes ont sur les forums à lecture fermée, d'indiquer la liste des pseudos ayant accès à ces groupes.

Note : suivant la gestion des Organisations (sortes de guildes du Khanat, voir plus bas), il faudra peut-être une gestion automatique de certains groupes, et autoriser une granulosité plus faible (que les cheffes d'organisations puissent inscrire/virer des gens de leur groupe).

Niveau de droit des modérateurs

Il y a plusieurs statuts de modération :

Pour démarrer, seule la fonction de Cheffe est utile ; la granulosité devient intéressante avec l'agrandissement de la communauté, mais actuellement et vu notre taille, il n'y a rien à modérer en dehors de quelques bots.

Fonctionnalités de modération

Pour les utilisateurs

Chacun peut éditer ses propres messages, dans la limite de 2 mois après la dernière édition. Ensuite, s'il se rend compte d'une coquille, il doit faire une demande pour rouvrir son droit de modération sur ses propres messages, ou simplement demander à un modo de lui changer un truc.

Cette mesure répond à deux problématiques :

  1. généralement, après 2 mois, il n'y a plus besoin d'éditer un message ; les rares cas où cela arrive, c'est que quelqu'un a envie de foutre le boxon en enlevant tous ses messages, ce qui rend les fils illisibles. Si un utilisateur veut tout effacer je préfère qu'il passe par un modo et qu'une discussion s'engage sur un acte de ce genre, qui a de grosses répercussions sur la communauté.
  2. Pour autant, certains tiennent des postes “mises à jour” (genre “liste des guildes actives”). Même si, à mon avis, les wikis sont plus adaptés à ce genre d'usage, dans ce cas-là ne pas bloquer les mises à jour régulières du post me semble ok. Du coup si le post a été posté/édité il y a moins de 2 mois, on peut l'éditer encore.

Chaque utilisateur peut aussi bloquer des pseudonymes : dans ce cas, il ne verra plus les messages que ces pseudonymes ont posté. Cette fonction de blacklist est importante pour permettre de fuir des comportements qui nous posent soucis et éviter les escalades de gros mots.

Chaque message doit avoir un bouton “signaler”, permettant de reporter un souci auprès des modérateurs. Lors du report d'un message, il faut obligatoirement remplir un champ “raison” (ce qui aide à traiter les soucis). Possibilité complémentaire : pouvoir choisir de quel type de report il s'agit dans une liste déroulante, par exemple :

Pour les modérateurs

Permettre de voir l'historique des modifications sur un sujet, y compris le message originel (gestion des diff ? ). Cela permet de mieux comprendre certains conflits, de voir aussi comment d'autres modo gèrent un problème (pour s'en inspirer ou pour le questionner). L'accès à cet historique doit évidement être réservé aux modérateurs, les utilisateurs de base ne verront que la dernière version.

Actions possibles sur les sujets :

Action possible sur les messages

Actions possibles sur les profils :

Panneau des modérateurs

Les modérateurs doivent pouvoir accéder à une interface résumant les actions de modération (suivant leur niveau aussi…) :

Journal des interventions : log des modérations.

Messages reportés non traités : lorsqu'un utilisateur signale un souci, ça atterit là. Si plusieurs signalements reportent le même message, il n'y a qu'une seule alerte. Chaque ligne de la liste se présente de cette façon :

Après ça fonctionne comme un ticket : un modo prend le report (il se l'attribue, afin que les autres sachent que c'est lui qui gère). Il fait ce qu'il y a à faire, puis il envoie un message à toutes les personnes ayant reporté le message (avec messages pré-remplis suivant les soucis; genre “Merci de votre signalement, nous avons modéré le message en question”, mais évidement personnalisable), envoi qui est évidement avec destinataires cachés, et enfin il clôt l'incident. Le message n'apparait plus dans la liste des messages reportés. Si le modo juge l'affaire trop complexe, il peut ajouter une note au report (expliquant ce qu'il a fait, pourquoi ça le coince) et réattribuer à “personne”, ce qui le rendra de nouveau gérable par un autre modérateur.

Liste des utilisateurs bannis : il doit y avoir une gestion très générique des bannissements, propre à tout le site, quand il s'agit de bannir des ip, des types d'utilisateurs (regexp liée aux spambots) ; ici on parle uniquement des utilisateurs donc de trucs propre au forum. Cela liste les pseudo qui n'ont plus le droit de parler sur le forum. Si un utilisateur est banni, il ne peut pas poster, mais s'il est “muté” il peut poster sauf que personne ne verra ses messages postés sous cet effet en dehors de lui. Si un utilisateur est banni/muté avec tous ses pseudos (voir la logique de l'identité, propre à Khaganat), c'est indiqué. Cette liste n'est visible et accessible que des modos avec un certain grade. Possibilité depuis cette page d'ajouter une sanction à un utilisateur (rentrer son nom, la sanction, appliquer). La liste affiche :

Liste des utilisateurs ayant été modéré : À partir du moment où un utilisateur a un de ses messages modéré (sauf si c'est pour la raison “coquilles et orthographe4) ), il voit son nom apparaitre dans cette liste, ainsi qu'un compteur de karma. Ce karma est propre à la modération et seuls les modérateurs peuvent le voir. Tout message modéré donne un point de karma. Cela permet en un coup d'oeil de voir les trublions… La liste est composée sur chaque ligne de :

Chaque liste d'utilisateur donne aussi un lien vers le profil utilisateur, vu “modération”. Il s'agit du profil publique, avec, en plus :

Accessibilité

Il y a beaucoup à faire et dire sur l'accessibilité… Je note ce qui me passe par la tête.

Thème et switch

Il faut que chaque utilisateur puisse paramétrer le thème utilisé pour le forum (à choisir dans une liste) ; cela permet de proposer des thèmes très contrastés, un thème clair et un thème sombre, des thèmes appropriés à divers types de handicap visuels.

Le thème du forum doit être dans un dossier bien identifié (pas des trucs partout) car l'idée, c'est de permettre aux gens de nous proposer des thèmes facilement (un petit pull request et hop, un nouveau thème accessible ! ou fun), donc il faut que ce soit très logique côté organisation.

Statistiques

Ok, c'est du kikimeter d'admin mais primo, je trouve ça fun, secundo, ça a une utilité dans la gestion de communauté. — Zatalyz 2018/02/21 17:16

Les stats c'est fun même si c'est pas la première fonctionnalité à avoir. Donc, faire une page “statistique” avec pleins de chiffres, de graphiques, etc, c'est important à un moment.

Spécificités Khaganat

Multilinguisme et édition collaborative

Ça, ce n'est pas une obligation parce que c'est un sacré bordel. Et ça demande à être discuté car il y a pas mal d'implications derrière.

Je trouve que le forum de Ryzom est relativement bien fait sur cet aspect.

Lors de la rédaction, pouvoir traduire son texte dans plusieurs langues, et basculer d'une langue à l'autre lors de la lecture, est une fonctionnalité intéressante, malheureusement réduite à cause du peu de monde parlant plusieurs langues (et ça finit par : tout le monde cause anglais).

Édition collaborative

Ce serait intéressant qu'en tant que rédacteur d'un message, on puisse cocher “laisser la traduction ouverte”. Dans ce cas, le message deviens un peu comme sur les wikis… Le message originel est “bloqué”, mais les traductions non remplies (ou indiquées comme modifiables) peuvent être éditées par qui passe et se sent motivé. Dans ce cas, n'importe qui peut éditer la traduction, la faire et/ou la corriger, puis l'envoyer. Là, deux possibilités :

La personne qui a traduit est automatiquement créditée de la traduction (note en fin de message “traduit par Machin”). Si plusieurs personnes interviennent, elles sont toutes créditées (“traduit par Machin, Truc, Bidule”).

Pour une fonctionnalité de ce genre, je verrais bien ceci :

Par défaut ce sera évidement bloqué, parce que c'est quand même la porte ouverte aux dramas… Mais personnellement je serais ravie d'ouvrir cette option sur mes textes RP (y compris la correction de coquilles). Toute personne intervenant dans l'édition du message sera listée, par contre, dans un souci de transparence. Enfin en cas de vandalisme, les modos peuvent remettre les messages dans un état antérieur.

Traduction automatique

Pouvoir faire de la traduction automatique d'un message (via un petit bouton) me semblerait bien fun, mais ça pose des questions de lien avec des grosses boîtes de traductions (vie privée, exploitation des données, tout ça) et il y a généralement un quota qui peut être traduit sur le site. Une possibilité serait peut-être de faire un bouton “traduction automatique” mais qui, au lieu de traduire sur le site, ouvrirait une fenêtre vers le site de traduction et y collerait le texte du message (ça limite un peu les requêtes ?).

J'aurais tendance à privilégier DeepL (qui a en plus une API assez simple : https://www.deepl.com/api-reference.html ), parce que leurs conditions d'utilisations actuelles sont très correctes. Ils utilisent google-analytics mais à part ça, c'est plutôt bien.

Identification

Le système de connexion doit être lié au système général (un login pour les identifier tous et dans le Khanat les lier).

Ce login donne accès à la liste des personnages que le joueur a créé en jeu.

Le joueur peut poster soit avec son identité générale (pseudo à indiquer quelque part dans le système de profil) , soit avec l'identité de l'un de ses personnages.

Voir aussi

Et faire une recherche sur “cognomen” dans le forum.

Affichage en jeu

Lorsque le joueur passe par le webig pour consulter le forum, il est automatiquement connecté avec le pseudo de son personnage.

Il faut que le forum s'affiche dans le webig… Vu les limitations actuelles du webig, il y a deux possibilités :

Guilde - Organisation

Aspect public/privé, voir annuaire, kom… décrit sur wiki/forum

Sur le Khanat, il y a des organisations, pas des guildes, et un même personnage peut appartenir à plusieurs organisations (voir Organisations sur l'UM1.

Cette fonctionnalité est à prévoir dans un second temps car, avant tout, il faut répondre à une question : pourquoi les joueurs utilisent des sites externes pour leurs guildes sur les autres MMORPG ? Suivant les réponses, voir si nous pouvons proposer un outil interne intéressant, ou s'il vaut mieux les laisser gérer. Et pour ça, il faudra sonder.

Voir aussi

Guimauve

Idée originellement développée sur ce message du forum.

Sur chaque message des autres, il y a une petite icone “coeur/guimauve” avec en survol l'infobulle “Remercier l'auteur avec une guimauve”. En cliquant, cela change le visuel (+1 à côté ?). Au survol, cela devient “enlever la guimauve de la bouche de l'auteur” (ce qui remettrais à l'état antérieur).

Sur ses propres messages, l'icone n'est pas cliquable, mais il y a une icone similaire, croquée, avec un chiffre, et au survol “X personnes vous ont donnés de la guimauve pour ces jolis mots”. Ou, si pas de guimauve “Pas encore de guimauves”.

Sur sa page de profil, il y a un compteur de guimauve (visible uniquement par nous-même), indiquant le nombre de guimauves reçues au total sur l'ensemble de ses messages, et le nombre de guimauves données.

Ce “karma” n'est pas publique (on ne sais pas qui a aimé les messages de qui, et si les autres messages sont appréciés ; uniquement les siens).

But de cette fonctionnalité qui a l'air inutile :

Fonctionnalité ici ou ailleurs

Il existe des fonctionnalités généralement liées au forum, mais qui me semblent pouvoir être déportées ailleurs.

Fonctions de sondage/vote

Il y a des logiciels qui permettent de faire des sondages de façon vraiment complètes ; sinon les framadates sont pratiques pour un vote basique non anonyme. Enfin, dans le cadre du collège, comme chacun doit s'exprimer et que nous ne sommes pas des centaines, simplement répondre dans un sujet de forum suffit.

Pour voir l'utilisation de la fonctionnalité de sondage sur la plupart des forums actifs (dont celui de Ryzom), cette fonctionnalité me semble vraiment superflue. Je préfère prendre le temps d'apprendre aux gens à utiliser une vraie solution de sondage, et à les mettre en place pour de bonnes raisons (c'est à dire, quitte à demander l'avis des gens, autant apprendre à poser les bonnes questions).

Messagerie privée

Si la messagerie privée est nécessaire dans le cadre d'un MMORPG, pour moi il s'agit d'une fonctionnalité indépendante du forum (et qu'on peut donc activer ou non suivant son utilisation de django). Un argument en particulier parle en faveur d'un développement séparé de ce genre de module : il existe pleins de protocoles et pleins de façons de gérer les messages et suivant le développement du projet, une solution est plus adaptée qu'une autre. Personnellement j'aimerais me baser sur XMPP côté technique (qui offre plus de possibilité que le mail et inclue toutes les fonctionnalités dont on peut rêver), même si je ne sais pas encore quelle interface permettra de l'utiliser dans le site web. Par ailleurs, la messagerie est actuellement plus une gêne qu'une fonctionnalité, à notre niveau de développement : nous avons des mails où les gens peuvent nous contacter, par contre s'ils laissent un message dans une messagerie interne, nous ne serons probablement pas prévenus à temps (sans parler du fait que la multiplication des canaux, ça finit par peser).

Calendrier

Il est intéressant de pouvoir lier un calendrier à des messages sur le forum mais… là aussi, pour moi, il s'agit d'un module séparé ; la gestion des calendriers dans un MMORPG peut être complexe si on veut que ce soit intéressants :

Comme ce n'est de toute façon pas nécessaire tant que nous n'avons pas une grosse communauté, pleins de joueurs etc, je propose de laisser ça de côté pour le moment, et pour longtemps.

1)
On dit aussi cahier des charges, mais ça ne me semble pas refléter la réalité.
2)
Badges et titres : Ça c'est lié à la gestion de communauté, au profil général et pour le moment : osef
3)
Ouvre les options de modération?
4)
Note : en fait il va surtout falloir voir quels actions de modérations donnent lieu au gain d'un point de karma