Aller au menu du forum Aller au contenu du forum Aller à la recherche dans le forum
Logo Khaganat
Menu principal
Menu

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.

Voir les contributions Menu

Messages - pep

Cliquez pour afficher le message
Citation de: YannK le 06 Juin 2020 à 11:22:11
Juste pour info, le service OpenNeL qui gère le chat s'appelle Input Output Service (IOS) et il s'occupe également de la concaténation des messages et de leur traduction : https://khaganat.net/wikhan/fr:serveur_tour

Note pour le dev: comprendre comment ryzom_ios_service marche, comment intéragir avec d'autres services, et voir si y'a pas moyen d'intégrer un autre service à coté.
Cliquez pour afficher le message
Citation de: Zatalyz le 05 Juin 2020 à 23:08:06
Alentours
Alentours est vraiment un truc particulier. Le serveur de jeu reçoit et renvoie régulièrement la présence des diverses personnes connectées, il sait où chaque personnage se situe sur la carte du monde. À mon avis, c'est lui qui envoie l'info "tu peux entendre tels personnes, elles sont dans ton périmètre". Il y a deux modes en alentours : quand on parle, on est entendu à 25m, et si on crie, cela s'entend jusqu'à 50m (de mémoire, on préfixe son message par /sh pour shout ?). Il n'y a pas de doute que le serveur envoie les infos, la difficulté sera d'arriver à les trouver et ensuite d'en faire quelque chose avec XMPP. Là où ça devient compliqué, c'est avec plusieurs personnes dont le périmètre des 25m se chevauchent. [..]

Ici, on a A et B qui papotent ensemble, ainsi que D, E, G,F. A et B n'entendent pas  D, E, G,F et vice versa (tant que personne ne crie), ils sont trop loin les uns des autres. Par contre, C, qui est au milieu, entend à la fois A et B, mais aussi D (il aura donc un bout tronqué de la conversation que tient D avec E, G et F.

Yep c'est exactement ce que j'avais en tête !

D'après les précisions données sur le chat, il semblerait qu'il y ait différentes zones (« pays ») séparées par des temps de chargement, et donc il n'y a peut-être pas beaucoup de sens d'avoir un seul MUC pour tout le monde ici, mis à part peut-être pour des raisons techniques que je ne vois pas encore. Une joueuse ne pourra pas parler à une autre dans un pays différent (même voisin) via ce canal « alentours ».

Citation de: Zatalyz le 05 Juin 2020 à 23:08:06
Alors, oui, dans l'absolu, le changement de nom est possible. Mais nous aimerions aussi implémenter en jeu un truc appelé cognomen [..]

Je note aussi que la notion de contact ("amis") reste présente dans notre conception du jeu. C'est sympa d'avoir des gens avec qui causer en direct :). Seulement, sur Xmpp pour être en contact avec quelqu'un il faut forcément le JID, non ? Dans ce cas, chaque perso doit avoir son propre JID, car être ami avec Jiro ne veut pas dire qu'on sera ami avec Junon, même si ce sont deux persos joués par Janus.

D'accord, donc il faut un identifiant unique par personnage (potentiellement un Jid). Il y a aussi des personnages partagés entre joueuses et donc le mieux seraient que ces personnages gardent les mêmes identifiants je pense.
On a aussi parlé d'identité temporaire et de Burner Jid, je sais pas si ça peut être utile.

Citation de: Zatalyz le 05 Juin 2020 à 23:08:06
CitationEst-il question d'autoriser les joueuses à avoir des conversations privées, une à une ?
Oui :) même entre personne qui ne se connaissent pas. Mais il faut aussi des outils de gestion des contacts : pouvoir ajouter cette inconnu à sa liste de contact, et pouvoir aussi blacklister une personne afin de ne plus l'entendre.

Il faudra toujours avoir accès à l'identifiant du joueur. J'imagine qu'il pourra y avoir une fonctionnalité de mapping pseudo -> identifiant xmpp pour accéder à ça.

Citation de: Zatalyz le 05 Juin 2020 à 23:08:06
CitationQuid des archives de chat (en jeu) ? Y en a-t-il ? Doit-on penser à faire que le serveur les diffuse quand un client se connecte ? Sont-elles gardées en local ?
[..]

Le but n'est pas d'avoir les derniers messages quand on se connecte, aussi. C'est du temps réel : si tu n'étais pas là, trouve quelqu'un qui te raconte l'histoire (ou te partage ses logs) ;)

Ok ! Vu d'ici, ne pas stocker de logs ça me facilite la tâche.

Citation de: Zatalyz le 05 Juin 2020 à 23:08:06
- "Maintenance" est un peu à part, c'est vraiment un canal système, il n'y a pas de raison de pouvoir écrire dessus.
- "Monde" réunit toutes les personnes connectées au MMORPG (avec pseudos des personnages), mais on pourra aussi s'y connecter avec un client "sans jeu" pour papoter avec les gens.

Il va falloir penser donc à accueillir des gens qui se connecteraient avec des clients normaux et ce que ça implique niveau fonctionnalités (et sécurité).

Citation de: Zatalyz le 05 Juin 2020 à 23:08:06
- Support, rien à dire, un MUC absolument classique, si ce n'est qu'il faut s'y co avec son pseudo-joueur et non son pseudo-personnage... mais ça se discute ;)

Niveau modération, serait-il plus facile si il était possible d'associer un personnage à un compte ?
Je ne sais pas si Janus, Jiro et Orij devraient tous avoir leur propre Jid avec peut-être un outil reservé aux modos pour permettre d'associer ces Jid à un compte. Ou alors un compte, des identifiants de connexion (login/passwd), et .. je vais réfléchir.

Citation de: Zatalyz le 05 Juin 2020 à 23:08:06
[..]
- Equipe : ce sont des MUC temporaires, qui disparaissent quand la dernière personne dessus se déconnecte. Pas de reconnexion automatique et on ne peux les rejoindre qu'en étant invité par un autre membre de l'équipe. À noter qu'au niveau jeu, être en "équipe" avait un impact gameplay, puisque l'xp était calculée en fonction des membres du groupe. Mais on vire l'xp dans Khaganat, donc ça sera pas un souci. Il y a aussi la possibilité de valider des quêtes à plusieurs, à condition de les avoir pris individuellement... faudra voir comment on lie ça, ou même si on le garde comme ça, ça peut vraiment évoluer.

[..]

Par contre, en effet, si on se fait virer ou qu'on quitte une Organisation, on doit automatiquement perdre l'accès aux salons privés de cette organisation.

Yep, Il faut une interface entre serveur XMPP et serveur de jeu. Chacun va avoir besoin de demander des infos (présence, position, etc.) / faire des actions (faire perdre l'accès à une organisation) avec l'aide de l'un ou l'autre.
Cliquez pour afficher le message
Citation de: deed le 05 Juin 2020 à 17:45:41
  - il faut des salons quand lier à une guilde, alliance, fame  .... qui doit changer si on change de guilde, alliance, fame ....
  - il faut des salons temporaires lier à la formation d'une équipe, regroupement de d'équipes ......

Pour ces types de salons on peut utiliser du MUC probablement sans modification.

Le plus intéressant va en effet être cette notion d'« alentours ».
Cliquez pour afficher le message
Petite ébauche de réponse. J'imagine que Link Mauve a déjà fournit pas mal d'éléments mais ça permettra d'avoir ça posé quelque part.
Je traîne en permanence dans des cercles techniques, donc n'hésitez pas à demander des précisions si nécessaire.
Il y a certainement encore pleins de trous à combler ! Les questions sont les bienvenues !

# Autoriser ou non la communication avec l'extérieur (non khanat)

La plupart des serveurs incluent une façon de gérer la communication « s2s » (server-to-server), et il est généralement facilement possible de l'activer ou la désactiver.

Il est aussi possible de configurer le serveur de façon à ce que juste une partie du monde extérieur puisse contacter le khanat.


# Plusieurs « identités » (personnages)

Dans XMPP, un client est généralement décrit comme « ressource », qui équivaut plus ou moins à une connexion au serveur. Il est possible de connecter plusieurs ressources à la fois avec les mêmes identifiants (le même compte).

Il est possible pour un compte de connecter plusieurs ressources à un MUC (« Multi-User-Chat », un salon) sous différents pseudonymes. Il est aussi possible pour un compte de connecter plusieurs ressources sous le même pseudonyme. Ici le premier cas nous intéresse.

Est-il question d'autoriser les joueuses à avoir des conversations privées, une à une ?

Si oui je pense que les MUC-PMs devraient être suffisant.

Veut-on s'assurer coté client que les joueuses soient les mêmes après avoir changé de pseudonymes ? Est-ce possible en jeu de renommer un personnage ? Par exemple Georgette fait « le nécessaire administratif » pour s'appeler Marie, veut-on s'assurer que les nouvelles discussions avec Marie auront lieues à la suite de celles avec Georgette ? Ou alors doivent-elles être dissociées ?

Si c'est le cas alors il nous faudra associer un identifiant unique par personnage à diffuser dans la présence et dans les messages (?). Peut-être aussi utile pour d'autres choses ?


# Canal « Alentours »

(J'avais préparé un pad avant de répondre ici et quelqu'un sans pseudo a déjà laissé une question !)

Citationest-ce que l'"alentours" fonctionne vraiment avec une distance, ou bien est-ce que un découpage de l'univers en "zones" (avec éventuellement envoi de messages vers plusieurs zones voisines) serait suffisant?

Quid des archives de chat (en jeu) ? Y en a-t-il ? Doit-on penser à faire que le serveur les diffuse quand un client se connecte ? Sont-elles gardées en local ?

## Idée d'implémentation 1. - Une seule zone pour tout l'univers

Tout le monde rejoint un MUC « alentours ». Chaque client envoie sa position au MUC, et les messages sont diffusés (broadcast) uniquement aux clients aux alentours.

L'information de position sera certainement envoyée dans la présence. Le pseudonyme, ainsi que d'autres informations relative au personnage sera aussi contenu dans la présence (ou du moins des pointeurs vers où trouver ces informations). Quelle genre d'info aurait-on besoin de diffuser ?

A-t-on besoin de diffuser les présences à tous les autres clients ? À une partie des clients ? (ceux à proximité ?)

En fonction du nombre de joueuses il risque d'y avoir pas mal d'information à traiter pour le MUC à chaque message ? Notamment « qui est dans les alentours ? », quoi que ça puisse aussi être traité quand un client met à jour sa position. Il est possible qu'un client mettra à jour sa position plus souvent qu'une joueuse enverra un message par contre.

## Idée d'implémentation 2. - Plein de petites zones

À première vue ça peut paraître plus simple niveau architecture, en associant une zone à un MUC, mais je n'en suis pas si sûr.

Il serait toujours question d'envoyer des messages en fonction de la proximité ?
D'un moyen ou un autre le MUC sera au courant de la position et il saura à qui (ne pas) envoyer. Par contre ça signifie qu'il faudrait qu'un message soit envoyé sur différents MUCs (à la limite de zones par exemple), et je me demande à quoi ça sert donc de séparer par zone.

## Idée d'implémentation 3. - Multicast

MUC est un gros morceau de XMPP qui est bien pratique parce qu'il est implémenté un peu partout et donc ça évite de tout refaire à chaque fois, mais je me demande si ça ne serait pas intéressant de réfléchir à d'autres solutions aussi.

Vu que le serveur est déjà au courant de la position des personnages, je me demande si il ne serait pas intéressant d'avoir soit un groupe PubSub -- ou dans le roster -- qui serait généré par le serveur et évidemment différent pour chaque personnage (moyennement des optimisations pour ceux qui se trouveraient à une distance négligeable par exemple).

Les clients pourraient ensuite prendre cette liste de personnages et diffuser leurs messages directement en multicast, sans passer par MUC donc.

Les différentes identités peuvent aussi être gérées directement par le serveur en incluant un pseudo (et/ou cet identifiant unique dont je parle plus haut) dans la liste de personnage aux alentours.

# Autres canaux de communication ?

Y en a-t-il ?
Licences Mentions légales Accueil du site Contact