Programme : Générateur de PNJ

Pour discuter des règles de Lycéenne RPG, élaborer des extensions etc.

Programme : Générateur de PNJ

Messagepar Lyonsbanner » 24 Fév 2016, 14:48

Bienvenue dans cette partie du laboratoire qui sera consacrée aux discussions concernant la génération de PNJ dont je suis le programmeur. Ce programme aura pour vocation de créer des PNJ (ou même PJ) aléatoirement et rapidement et qui peuvent sortir de l'ordinaire.

Dans un premier temps, je m'aiderai du manuel officiel du jeu Lycéenne RPG 4.0 afin d'informatiser les données nécessaire pour la création automatique d'un personnage.
Ensuite, n'ayant découvert que très récemment les mécaniques de Lycéenne RPG et ne disposant pas encore d'une vue d'ensemble du jeu, je compte sur vous et votre expérience pour discuter de ce que vous souhaiteriez voir ou ne pas voir apparaître dans ce programme ainsi que les ajustements pouvant s'avérer nécessaires.

Voici les version disponibles :
Version 1.1.1
Version 1.2.1
Version 1.2.2
NEW : Version 2

NEW : Note : Maintenant, ça marche sous tous les SE. :D
Dernière édition par Lyonsbanner le 08 Avr 2016, 21:00, édité 5 fois au total.
Avatar de l’utilisateur
Lyonsbanner
Collégienne
Collégienne
 
Messages: 22
Inscrit le: 23 Fév 2016, 17:26

Re: Programme : Générateur de PNJ

Messagepar Ise Susanoo » 24 Fév 2016, 20:11

Réponse rapide.
Les caractéristiques sont bien réparties.
Cour d'or pour cœur d'or.
Cœur d'or a tendance a se trouver avec des méchantes ou querelleurs.
Cœur d'or se trouve dans des profil Rebelle mauvais.
Sur la trentaine de profils faits, alcoolique a dû sortir 15 fois au moins. :)

Sinon, c'est pratique et simple d'utilisation. j'ai pas essayé de modifier les fenêtres à la volée, par contre, afin de voir si le programme prenait les modifications en compte.
.
Voir sans être vu. un rêve pour certains, un malheur pour d'autres.
Nos compagnes de pension
Courage !!!!
Moi
Le plus dur, à l'école, n'est pas l'apprentissage, ou le sport. C'est de vivre comme on le souhaite, sans se laisser influencer par les autres.
Avatar de l’utilisateur
Ise Susanoo
Lycéenne
Lycéenne
 
Messages: 401
Inscrit le: 03 Mars 2014, 03:00

Messagepar Milena » 24 Fév 2016, 21:25

Moi je ne suis pas tombée une seule fois sur "alcoolique". Peut-être que le programme s'adapte à l'utilisateur...
:out1:
Plus sérieusement, c'est vrai qu'on tombe parfois sur des profils incompatibles entre eux ou incompatibles avec certains alignements. Mais il faudrait gérer une liste interminable de profils non compatibles, par exemple (et cette liste ne sera forcément pas exhaustive) :
  • Loyale / Perverse
  • Loyale / Opportuniste
  • Aimable / Désagréable, voire Aimable / Méchante
  • Philanthrope / Avare
  • Travailleuse / Paresseuse
  • Bonnes ambitions / Tricheuse
  • Bonne éducation / Grossière (sauf peut-être quelqu'un qui aurait un syndrome de Tourette et qui, tout en essayant de rester correct, balancerait régulièrement des jurons de manière incontrôlable... :lol: )
  • Eloquente / Réservée
  • Bonne humeur / Dépressive (ou alors elle est maniaco-dépressive :cpc: )
  • etc
Je pense que plutôt d'essayer de gérer ça, on peut s'en remettre au bon sens des utilisateurs qui pourront modifier ou retirer les profils qui leur semblent incongrus.
Je parlais dans un mail des noms et prénoms japonais :japon: ; j'ai retrouvé le scénario où toute une liste était présentée, il s'appelle Bunkasai et il est sur le site de Kadnax http://kadnax.pagesperso-orange.fr/pagly4.htm au début de la rubrique "Scénarios".
Avatar de l’utilisateur
Milena
Directrice du pensionnat
Directrice du pensionnat
 
Messages: 2721
Inscrit le: 06 Mai 2005, 15:29
Localisation: Dans les bureaux de la direction, un livre sous le bras

Re: Programme : Générateur de PNJ

Messagepar Lyonsbanner » 24 Fév 2016, 22:31

Merci pour vos retours.

Je pense aussi que pour les caractéristiques, c'est bon. C'est rare de tomber sur un 1 ou un 10, mais c'est possible. En faisant un peu de statistiques, la moyenne obtenue pour une caractéristiques est de 5,83. On peut dire que ça reste dans la moyenne d'un personnage "bien constitué".

Pour "cour" d'or, effectivement... ça c'est dû au mode console. Je me suis dis que pour les prochaines versions, je mettrais l'affichage sous forme de fenêtre windows "form".

Le programme régénère un personnage à partir de zéro à chaque fois qu'il est exécuté, pour l'instant il n'est pas possible de modifier sa fiche.

Pour les incompatibilités des profils, c'est vrai que ça peut poser problème. Pour l'instant, le programme choisi au hasard le nombre de profils bons, neutres et mauvais selon l'alignement de base du personnage. Ensuite, il choisi bêtement les profils aléatoirement sans se poser de question, selon le nombre de chaque type de profil.
Il y a un truc que j'ai remarqué, c'est le profil "boulimique". Sa particularité est qu'il n'est pas possible d'avoir un score de charisme supérieur à 5.
Or,
de 1 : Le programme défini d'abord les caractéristiques et choisi ensuite les profils sans se préoccuper des restrictions.
de 2 : Dans Amagami, Rihoko Sakurai est pour ainsi dire boulimique, mais reste très charmante.

J'envisage plusieurs solutions :
1) Comme l'a dit Milena : On laisse le programme tel quel et c'est l'utilisateur qui modifie selon sa convenance.
2) J'ajoute les restrictions au programme en lui interdisant de sélectionner les profils qui sont contradictoire à ceux déjà sélectionnés. Mais il me faudrait d'abord une liste complète.
3) Une idée, c'est de mettre sur chaque profil un pourcentage de chance d'être sélectionné. Par exemple, "Tendance suicidaire (5%)" : par le biais du hasard, le programme tombe sur ce profil, mais il n'a que 5% de chance d'être enregistré sur la fiche du personnage. En outre, grâce à ce pourcentage, on pourrait le modifier pour diminuer les chances d'obtenir des profils contradictoires.

C'est noté pour les noms et prénoms japonais. Je pourrais récupérer ces données et les faire traiter automatiquement afin de les intégrer dans des dictionnaires.
Avatar de l’utilisateur
Lyonsbanner
Collégienne
Collégienne
 
Messages: 22
Inscrit le: 23 Fév 2016, 17:26

Re: Programme : Générateur de PNJ

Messagepar Lyonsbanner » 03 Mars 2016, 19:58

Me revoilà !

J'ai passé une partie de mon temps à reprogrammer mon code afin qu'il soit un peu mieux organisé : la première version était vite-fait et ressemblait plus à un brouillon.

Mais aussi et surtout, la grande nouveauté : c'est l'ajout des Compétences / Talents.


Le lien est disponible dans mon premier message (ou ici).


Je pense qu'il y aura quelques corrections à faire. D'ailleurs, je n'ai pas intégré ces fameux "points de génération (PG)" car ils me posent problème pour deux raisons :
1) Lorsque, par exemple, un personnage a 3 en Physique et qu'il n'a pas choisi le talent "Équitation", mathématiquement, son score dans cette compétence est de 3 - 6 = -3. Or, dans l'exemple donné dans le manuel, j'ai remarqué qu'il a été réajusté à 1. Est-ce une erreur ou est-ce qu'il a vraiment un réajustement ?
Car si un joueur souhaite ajouter des PG dans cette compétence, doit-on d'abord faire ce réajustement avant ou après ?
2) Étant parti sur de la génération aléatoire, les PG seront éparpillés un peu partout. Or j'imagine que les joueurs placent leurs points dans des compétences spécifiques de manière stratégique ?

À part ça, je cherche un moyen de faire fonctionner le programme sous Linux.
Avatar de l’utilisateur
Lyonsbanner
Collégienne
Collégienne
 
Messages: 22
Inscrit le: 23 Fév 2016, 17:26

Messagepar Milena » 05 Mars 2016, 13:08

Bravo pour l'ajout des compétences et des talents. Par contre du coup la liste est trop longue pour s'afficher dans la taille "par défaut" de la console de commande, il faut scroller ou agrandir la fenêtre.
Pour les scores dans les talents, je pense que la réponse se trouve page 14 du manuel :
Kadnax a écrit:Rappel important : quelles que soient les variations des scores des talents ou des caractéristiques lors de la création d’un personnage (et plus tard, lors de sa progression), le score d’une caractéristique ou d’un talent sera toujours au maximum de 10 et au minimum de 1.

Donc dans ton exemple, si tu arrives à un score de -3, il sera effectivement réajusté à 1.
Je pense en effet qu'on peut ignorer les points de génération, vu qu'on est plus rarement amené à faire un jet de compétences pour les PNJ que pour les PJ (même si ça peut arriver, par exemple lors d'une compétition où les PJ se mesureront à leurs camarades). Comme pour les profils, on peut compter sur les utilisateurs pour faire les ajustements nécessaires. :)

Pour ce qui est de faire tourner le programme sous Linux, ça risque d'être difficile, C# étant pensé par et pour Microsoft. C'est d'ailleurs pour ça que j'avais créé Lycéenne Maker J en Java qui a l'avantage d'être multi-plateformes, les seuls problèmes rencontrés étant liés aux encodages par défaut.
Avatar de l’utilisateur
Milena
Directrice du pensionnat
Directrice du pensionnat
 
Messages: 2721
Inscrit le: 06 Mai 2005, 15:29
Localisation: Dans les bureaux de la direction, un livre sous le bras

Re: Programme : Générateur de PNJ

Messagepar Lyonsbanner » 05 Mars 2016, 21:40

Pour la taille de la console, c'est vrai que dans un premier temps ça devient vite gênant de devoir la redimensionner à chaque fois, j'apporterai une petite modification en conséquence. Mais d'un autre côté, le mode console est temporaire et je compte le remplacer par une fenêtre WindowsForm prochainement.

Ok pour le soucis du réajustement, ce sera corrigé.
Pour les points de génération, je me dis qu'il y a quand même moyen de faire en sorte de les distribuer de manière "intelligente" par l'ordinateur, comme si le personnage pouvait avoir des "préférences". Éventuellement, je pourrais le mettre en option.

En ce qui concerne Linux, j'ai trouvé un logiciel qui s'appelle "Mono project", il serait capable de faire tourner le programme sous Linux comme sous Windows. Pour l'instant, comme c'est la première fois que je le manipule, je bidouille pour essayer de le faire marcher. Sinon, au pire, je referais mon code en Java ou peut-être en Python.

Il faudrait qu'on se fasse une liste de choses à intégrer en plus. Je pense par exemple à l'apparence physique, les relations, etc.
Avatar de l’utilisateur
Lyonsbanner
Collégienne
Collégienne
 
Messages: 22
Inscrit le: 23 Fév 2016, 17:26

Messagepar Milena » 07 Mars 2016, 15:22

On ne s'occupe que de PNJ, et vu que les générations sont aléatoires, ça rend les choix limités.
Concernant la répartition des points, je pense qu'on pourrait intégrer à la future interface des listes à sélectionner pour indiquer dans quels talents ajouter des points en priorité (le logiciel répartirait alors des points aléatoirement entre tout ou partie des talents sélectionnés, selon leur nombre et le nombre de points disponibles).
On pourrait mettre aussi :
  • Apparence : mettre une taille et un poids ; pour la couleur des cheveux/yeux ça peut aussi dépendre de l'endroit où on joue (il y a assez peu de Japonaises blondes aux yeux bleus, malgré ce qu'en disent les mangas :mrgreen: ). On peut aussi ajouter par exemple un "style" (classique, BCBG, gothique, hip-hop, rock, sportive, tecktonik...), qui permettra de donner une idée de ses vêtements (du moins ses vêtements "civils" s'il y a un uniforme) et ses accessoires.
  • Réputation : voir les règles de réputation sur le manuel du jeu. A mon avis il faudra pondérer les différents niveaux de réputation, une lycéenne ayant a priori plus de chances d'être discrète que d'être la "star" de l'établissement. Pour les "connotations", d'expérience, il ne faut pas en mettre plus de deux. Si le niveau de réputation est "Inconnue/Transparente", il n'y a pas de connotation.
  • Relations : vu que la génération est aléatoire, ça me semble difficile de relier des personnages entre eux, à moins que tu n'aies une idée particulière sur le sujet ? Dans mon esprit, après avoir généré quelques PNJ, c'est à l'utilisateur de définir lesquelles pourraient être amies ou ennemies en fonction de ses idées et éventuellement du scénario.
Avatar de l’utilisateur
Milena
Directrice du pensionnat
Directrice du pensionnat
 
Messages: 2721
Inscrit le: 06 Mai 2005, 15:29
Localisation: Dans les bureaux de la direction, un livre sous le bras

Re: Programme : Générateur de PNJ

Messagepar Lyonsbanner » 08 Mars 2016, 19:23

J'ai apporté quelques modifications, la version 1.2.2 est disponible ici :
- Les talents sont réajustés à 1 si les valeurs calculées sont négatives ou à 0.
- Les talents spéciaux non choisi ont une valeur X.
- La fenêtre s'affiche en grand de façon à pouvoir visualiser la fiche du personnage en entier. Si votre écran est petit, vous serez probablement obligé de faire défiler la fenêtre.
- Vous pouvez régénérer une nouvelle fiche de personnage en appuyant sur n'importe quel bouton. Sauf pour le bouton "Echap" qui vous permet de quitter le programme.


Pour l'apparence donc, on a : le poids, la taille, la couleur et la coiffure des cheveux, la couleur des yeux, le style vestimentaire et le comportement spécial.
J'avais trouvé quelque part sur le site de Lycéenne RPG (je ne me souviens plus si c'était celui de Kadnax ou le tiens...) un pdf pour déterminer aléatoirement certaines de ces apparences. Il y en a un qui s'appelle "Le petit signe particulier qui fait tout" que j'ai volontairement écarté parce que statistiquement c'est limite si c'est pour donner une ambiance cyber-punk :
40% des lycéennes ont des bijoux, 30% ont des tatouages et 15% ont des cicatrices.

Je n'avais pas particulièrement prêté attention à la réputation et aux connotations. D'après ce que j'ai pu voir sur le manuel, je pourrais l'implémenter... mais, effectivement, il faudrait au préalable déterminer les taux de pourcentages pour chaque niveau de réputation. Comme je n'ai toujours pas fait une seule partie de Lycéenne RPG, je ne me rend pas bien compte de son importance et je ne peux pas me permettre de choisir arbitrairement ces taux.
Pour les connotations, je pense qu'il faudrait plus ou moins les lier avec les profils psychologiques et/ou les talents afin que ça reste cohérent.

Au sujet des relations, je vois les choses en grand. Je me suis dit que puisqu'il est possible de générer rapidement plusieurs lycéennes, pourquoi ne pas carrément générer une classe entière ? Et mieux, tout le lycée ? (Ou encore, les familles et toute la ville ?)...
À ce moment-là, générer des relations entre les personnages ne seraient qu'une formalité.
Bon, j'avoue, en ce sens là, on laisserait le générateur créer à lui tout seul tout un univers, ce qui n'est pas forcément le but recherché. D'autant plus que j'imagine que personne ne pourra faire intervenir absolument tout les personnages dans un scénario, voire même plusieurs. Mais grâce à ça, en intégrant les personnages pré-construits, on saura tout de suite les liens avec sa famille et ses amies.

Au fait, c'est vrai que c'est rare une lycéenne japonaise blonde aux yeux bleus, mais en ce qui concerne les noms et prénoms, ce n'est pas rare de nos jours, dans une classe française, d'avoir des élèves avec des noms ayant une origine étrangère. Je pense que, pour éviter de se compliquer là dedans, on pourrait s'en tenir à des classes "fermées" où tous les noms appartiendraient à la liste d'un seul pays à la fois.


Une dernière chose, si jamais je n'arrive pas à faire marcher mon programme C# sur Linux, il faudrait que je me penche sur un autre langage pour qu'il soit compatible sur tout les SE, avant de continuer à programmer.
Avatar de l’utilisateur
Lyonsbanner
Collégienne
Collégienne
 
Messages: 22
Inscrit le: 23 Fév 2016, 17:26

Messagepar Milena » 13 Mars 2016, 09:48

Ah oui tiens, il venait de chez moi ce PDF pour générer des personnages quand on est à cours d'idées... http://claire.billaud.free.fr/docs/tirage.pdf
Je ne m'en suis pas servie depuis bien longtemps, j'avais oublié jusqu'à son existence :fish: (mémoire de poisson rouge). A utiliser avec précautions cependant, car il permet de créer des personnages avec des cheveux verts ou violets (quoique si on joue dans un univers manga assumé, ça se tient :mrgreen: )

Pour la répartition des niveaux de réputation, pas besoin d'avoir de l'expérience dans le jeu pour estimer les pourcentages. Si on prend un lycée quelconque, il y aura un faible pourcentage d'élèves qui seront les "stars" de l'école (obligatoirement pas plus de quelques %, je dirais 2-3% à tout casser) ; le pourcentage sera obligatoirement faible, car s'il y a trop de "stars", elles ne seront plus vraiment des "stars" justement.
La plupart des lycéennes seront "discrètes", voire "inconnues" pour les plus timides d'entre elles qui ne se feront pas remarquer du tout. Si je devais faire des pourcentages "à la louche", je dirais donc :
  • 2% "incontournables"
  • 15% "connues"
  • 63% "discrètes"
  • 20% "inconnues"
Si quelqu'un a une autre idée sur le sujet, qu'il le dise, c'est vraiment "à la louche".
Avatar de l’utilisateur
Milena
Directrice du pensionnat
Directrice du pensionnat
 
Messages: 2721
Inscrit le: 06 Mai 2005, 15:29
Localisation: Dans les bureaux de la direction, un livre sous le bras

Re: Programme : Générateur de PNJ

Messagepar kadnax » 13 Mars 2016, 11:41

Bonjour ! Cela fait pas mal de temps que je n'étais pas passé et j'avoue que je suis scotché par le boulot effectué sur ce générateur de perso: bravo Lyonsbanner ! Il me semble que tu m'avais envoyé un mail, mais je ne l'ai pas retrouvé par la suite. J'ai essayé ton programme et j'avoue qu'il est sensationnel. On obtient des persos parfois étranges avec des profils incompatibles (j'ai bien rigolé en imaginant certains perso obtenus) mais ça permet de créer des pnj à la vitesse de l'éclair et même servir d'inspiration pour des pj à créer et auxquels on aurait pas forcément pensé sans cela. L'idée de créer une classe entière de cette manière me paraît aussi intéressante.
Milena, je dirais plutôt:
5% "incontournables"
15% "connues"
50% "discrètes"
30% "inconnues"
Le pourcentage d'inconnues dans un grand lycée est tout de même important.
Mais bon, je chipote et c'est très subjectif, on peut garder tes pourcentage aussi.
Avatar de l’utilisateur
kadnax
Lycéenne
Lycéenne
 
Messages: 450
Inscrit le: 01 Juin 2005, 22:51
Localisation: Sud !

Messagepar Milena » 13 Mars 2016, 15:44

Ta remarque me fait dire que les proportions vont aussi dépendre de la taille du lycée.
Si les "incontournables" resteront peu nombreuses quoi qu'il arrive, je pense que dans un petit établissement dont on a vite fait le tour, il sera plus difficile d'être totalement inconnue que dans un lycée-usine avec plusieurs centaines d'élèves. Mais si le personnage ne peut ou ne veut se faire particulièrement remarquer, sa réputation restera "discrète" (mais pas "inconnue").
Ce serait donc plutôt le pourcentage d'inconnues qui diminuerait en fonction de la taille de l'établissement.
Avatar de l’utilisateur
Milena
Directrice du pensionnat
Directrice du pensionnat
 
Messages: 2721
Inscrit le: 06 Mai 2005, 15:29
Localisation: Dans les bureaux de la direction, un livre sous le bras

Re: Programme : Générateur de PNJ

Messagepar Lyonsbanner » 15 Mars 2016, 18:54

Merci, ça fait plaisir de voir que mon travail est salué avec éloge. :D

Concernant la réputation, on dirait que ça risque d'être plus compliqué que prévu. Je propose qu'on se base sur une fourchette du nombre d'élève qu'il peut y avoir dans un lycée. Pour moi, je dirais entre 300 et 800. Et si jamais l'univers se passe dans les hautes montagnes isolées où il n'y a qu'une seule et unique classe de 10 élèves, il vaudrait mieux ne pas appliquer ce système car il y aurait trop de détails pour pas grand chose.

En régénérant un personnage (qui est nulle en sport mais qui a un charme à tomber par terre avec un profil "fierté extrême"), j'ai remarqué deux défauts majeurs en rapport avec les talents à choisir :
1) Lorsqu'un personnage à 1 dans une caractéristique (physique), les talents choisis dans ce domaine importent peu car tous les talents associés seront à 1, même en comptant les malus et en faisant le réajustement. Par exemple, elle prend le talent "équitation" mais son score reste à 1.
2) Choisir un talent quelconque dont le malus est à 0 est en fait inutile. Par exemple, "Conversation" à un malus de 0 et rien ne change si on choisi ce talent ou pas.
Pour remédier à ça, je suggère d'ajouter 1 point gratuit dans les talents choisis.


Avant de développer la suite du programme, je pense qu'il est grand temps de réfléchir à son évolution, à savoir sa mise en forme graphique de façon à ce que ce soit plus lisible, plus confortable et surtout pour pouvoir modifier la fiche d'un personnage en temps réel. J'ai cherché et trouvé trois solutions auxquelles je n'arrive pas à me décider :
1) Je développe l'interface en C# Windows Forms. Comme je suis à l'aise dans ce langage, je ne devrais pas avoir trop de problème. Mais le gros inconvénient est qu'il ne fonctionnera pas sous Linux.
Toutefois, il existe une alternative avec mono-project et le fait de pouvoir construire une solution adaptée, mais la documentation est loin d'être claire là-dessus.
2) Comme suggéré, je développe en Java. De cette façon, il n'y aura pas de problème de compatibilité. Mais je n'ai quasiment jamais touché à ce langage et ça risque de prendre du temps.
3) Je développe le programme avec Ren'Py. C'est un logiciel de création de Visual Novel. Il est basé sur le langage Python et est assez simple d'utilisation. Avec cette solution, il n'y aura pas de problème de compatibilité et en plus il y aurait moyen d'obtenir une interface claire et agréable. Le petit soucis est sa manière toute particulière de programmer et il faudrait que je vérifie si la plupart des fonctionnalités sont possibles.
Avatar de l’utilisateur
Lyonsbanner
Collégienne
Collégienne
 
Messages: 22
Inscrit le: 23 Fév 2016, 17:26

Re: Programme : Générateur de PNJ

Messagepar Lyonsbanner » 08 Avr 2016, 20:58

Après quelques semaines de réflexions et de réadaptations sur l'évolution du programme, j'ai obtenu des résultats plutôt intéressants.

J'ai choisi de développer le générateur grâce à Ren'Py. Techniquement, ce n'est pas l'outil le plus usité pour élaborer des interfaces avec pleins de boutons, mais, au vu de ce que j'ai réussi à faire, ça marche plutôt bien ! Et je pense que c'est bien parti pour devenir assez puissant.

Mais aussi, et surtout, ça fonctionne sous tous les SE. :D

Voici la Version 2 !

Pour windows, il faut lancer le fichier "generator_school_girl.exe".
Pour linux, il faut lancer le fichier "generator_school_girl.sh".
Pour mac, il faut aller dans le répertoire "generator_school_girl.app/Contents/MacOS/" et lancer "generator_school_girl" (Je crois... je n'ai pas de mac pour essayer).

Pour l'instant, il n'y a que les points de caractéristiques qui peuvent être réparti automatiquement... et même manuellement (tada ! :pompom:).
Vous devez vous demander pourquoi il n'y a que 29 points à répartir au lieu de 35 ? C'est parce que, selon la règle officielle, chaque caractéristique doit avoir au minimum 1 point, du coup j'ai attribué directement 1 point chacun de base et qu'il n'est pas possible de descendre à 0.
Avatar de l’utilisateur
Lyonsbanner
Collégienne
Collégienne
 
Messages: 22
Inscrit le: 23 Fév 2016, 17:26


Retour vers Laboratoire

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit and 0 invités

cron