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

Gestion des comptes et du client, une idée facile ?

Zatalyz

Bonjour les Mages !

Ce sujet fait écho à cet aspect du cahier des charges : https://khaganat.net/wikhan/fr:gamedesign:khanat:start#gestion_de_compte

Pour les aspects web, ça se réglera au fur et à mesure, ce n'est pas vraiment le problème ; le travail de Tycho Brahe sur Django est un pas dans la bonne voie.

Mais il y a l'aspect client de jeu. En effet, il faudrait qu'on puisse lancer le jeu, se connecter avec son compte "joueuse", et de là choisir son perso en cassant la limite actuelle de "5 perso max par compte ; si un compte est connecté, impossible de connecter un des autres perso".

La solution propre et longue demanderais de réécrire le client. Pourquoi pas, un jour.

Mais j'ai l'idée d'un hack beaucoup plus simple, qui pourrait rapidement être mis en place.

L'idée est de faire une surcouche. C'est à dire de créer un lanceur (dans le langage de vos rêves, ou de reprendre ce que Ryzom a fait si c'est utile ?), indépendant du client. Ce lanceur permet de connecter son compte Khaganat (compte joueuse, donc), puis d'afficher la liste des personnages liés à ce compte, qu'on devrait pouvoir récupérer de la BDD, ainsi que de proposer la création d'un personnage.

Au moment où on choisit un personnage/on créé un personnage, alors le lanceur lance un client de jeu. Ce client-là reçoit automatiquement des infos de connexion (rien à entrer) et sélectionne le premier personnage. Ce qui veut dire que chaque sous-compte n'aura qu'un seul personnage, en fait.

Un petit schéma pour tenter d'expliquer...

https://liev.re/cloud/s/7m9ngh6MQlCGZoZ

Cela veut dire plusieurs choses :

Primo, il n'y a pas besoin de trop toucher aux clients de jeu actuel. Il faut juste trouver
- comment lancer automatiquement le slot 0
- comment créer automatiquement un compte dans la BDD. Il faut absolument enlever l'obligation du mail.
- comment lancer directement le créateur de personnage.
- quel appel envoyer pour supprimer un compte.
Et c'est tout côté client actuel, oui oui.

Secundo, côté lanceur maison, il faut construire un truc de zéro mais c'est assez basique et ne demandera pas un dev expert. Le plus compliqué sera l'habillage graphique mais y'a des bibliothèques pour ça. La gestion du compte devra se faire via la BDD de django.
Cela veut dire :
- une base de donnée qui sait que le compte général a accès aux comptes de jeu "clients X, Y , Z", et qui enverra ces infos au client de jeu (notez bien : l'association "compte général-comptes de jeu se fait côté maison, pas côté client de jeu, ce qui permettra de gérer la sécurité des comptes en amont de façon moderne avec django), qui peut aussi récupérer le nom des persos pour l'afficher.
- la possibilité, en cliquant sur "jouer" et "créer un perso", de lancer le client avec l'option correspondante. Dans le cas de "supprimer", c'est juste un envoi à la BDD pour vider l'info en question.
- les options "créer un compte", "mot de passe perdu", "Aide" renvoient toutes à la gestion générale des comptes, via Django.
- l'option "paramètres" doit permettre de gérer a priori la configuration graphique du client, afin de pouvoir le lancer en mode "minimum" si besoin. C'est secondaire pour le moment. Notez qu'il s'agit en principe juste de changer le fichier "client.cfg".
- Pour le moment, pas de prévisualisation 3d des persos, on se contentera d'afficher leur nom. Dans un second temps, je pense qu'on peut facilement associer un portrait à chaque nom, et dans un 3e temps ce sera possible de remettre la version 3d si vraiment on y tiens mais... ça ne me semble vraiment pas vital.

Cela veut aussi dire que via le lanceur de base, on peut lancer plusieurs clients en même temps et donc jouer avec plusieurs persos sous le même compte. Cela enlève la restriction de "5 perso max par compte" ainsi que "impossible de jouer 2 persos d'un même compte" : en réalité ces restrictions existent toujours dans le client, mais en tant que joueuse on ne les voit plus.

Il ne me reste que deux soucis.
D'abord, la gestion des patchs. On peut se dire que ça patche lors de la sélection du perso, et comme tout utilise le même dossier, si c'est patché pour un perso, c'est ok ; mais lors des patch il y a redémarrage des clients et dans ce cas précis ça va ptet mettre le bazar. Il faut voir avec nos experts du patch. Peut-être que le lanceur devra lancer un test en amont.

Ensuite, des détails lorsqu'on joue plusieurs perso en même temps (cas où on lance 2 ou 3 fois le client en parallèle sur son ordi. Déjà, ça prend plus de ressource qu'un seul client, donc quand je faisais ça, je mettais tous les paramètres au minimum. Là, est-ce qu'on pourra gérer ça proprement, switcher facilement entre "tout à fond parce que j'ai un seul client" et "tout au minimum parce que j'en lance 3" ?
De plus, gérer plus d'un personnage à la fois c'est prendre le risque de s'emmêler les pinceaux... personnellement je m'aidais un peu en mettant un fond de couleur différent pour mes fenêtres en jeu suivant le compte lancé. Or, pour que ça marche, j'utilisais plusieurs dossiers pour chacun de mes clients car il fallait modifier des fichiers locaux. Là, pourrait-on arriver à quelque chose de similaire sans dupliquer les dossier ?

Les détails à propos du multi-perso ne me semblent pas important pour le moment, mais si vous voyez comment gérer ça proprement, partagez vos idées.
Dernière édition: 27 Avril 2018 à 12:28:12 par Zatalyz

Licences Mentions légales Accueil du site Contact