Les PNJ1) sont toutes les créatures du serveur ayant une interaction spécifique avec les joueuses : proposer des quêtes, discuter… Il s'agit des ra.
Il ne devrait pas y avoir de PNJ sans histoire, chacun doit avoir sa personnalité, un background. La présence de tout être en jeu doit obéir à une logique cohérente avec le reste du monde. Les PNJ doivent donc avoir des cycles, où ils vont se nourrir, dormir… et donc ne pas être disponibles pour les joueuses.
Ne mettez pas un PNJ quelque part sans savoir qui il est, et ce qu'il fait/vit en dehors de la mission qu'il accomplit auprès des joueuses.
Cet impératif est là pour permettre un monde cohérent et riche.
Dans le jeu sur les niveaux de réalité, certains PNJ peuvent, à certains moment, donner des informations “gameplay” mais cela doit être présentée d'une façon ayant du sens dans le monde du Khanat.
Pour un principe de cohérence de l'univers, chaque PNJ doit donner l'impression d'être un individu à part entière. Il doit donc avoir un nom, un physique, des particularités, un historique, des relations… Ces informations seront exploitées par le système et les animatrices afin d'avoir des interactions plus riches.
Comme il va falloir énormément de PNJ, des outils de générations vont être disponibles. Ils permettront de générer plus ou moins aléatoirement2) un ou plusieurs personnages, afin de répondre aux besoins des quêtes.
Un deuxième outil de gestion des PNJ devrait permettre voir les liens des PNJ entre eux (qui connaît qui, quelles sont leurs relations) et de permettre de trouver un PNJ déjà existant correspondant à nos besoins. Par exemple, si on a besoin d'un PNJ pour orienter les gens dans une chasse aux trésors, pas besoin d'en créer un juste pour ça ; un personnage déjà existant peut être pertinent pour parler de “l'antique légende du pendo de lirrium”, ou indiquer l'emplacement de la grotte perdue dans la forêt.
Ces deux outils peuvent être complètement indépendant du serveur de jeu3).
Chaque PNJ est sensé avoir sa fiche dans l'UM1.
Parce que chaque PNJ est “vivant”, il suit un ou plusieurs cycles.
Au minimum, un cycle doit se composer de “Aller au travail, aller dans un espace de sociabilisation/se nourrir, aller dormir”. Chaque jour de jeu, chaque PNJ est absent (au dodo chez lui) durant une certaine période. Le Khanat a des règles sur le travail différentes de la Terre, des rotations de PNJ permettent aux administrations et aux commerces d'être ouverts 24h/24 (ce qui est mieux dans le cadre du jeu), mais les personnes au guichet vont changer deux ou trois fois par jour, et auront des aspects et une personnalité différente.
Les cycles peuvent être plus complexes. Par exemple un chasseur peut passer une partie de la journée à patrouiller une zone, et suivant les créatures qu'il rencontre et chasse, son parcours peut énormément varier.
Un PNJ peut aussi avoir plusieurs cycles :
Les trois peuvent se cumuler ; par exemple un marchand sera dans une région en été, et ailleurs en hiver. Les endroits où il travaillera, dormira et papotera au fil des jours seront différents en été et hiver. Donc les joueurs qui le chercheront devront le chercher au bon endroit.
Ce qui est décrit n'est pas possible actuellement avec nos logiciels ; mais ça peut le devenir.
Il devrait être possible de prendre possession de certains PNJ, qui deviendront alors temporairement des PJ. À la déconnexion du joueur, le personnage redevient PJ et tente de rejoindre sa routine journalière. Débloquer l'accès à un PNJ déjà en jeu demandera une autorisation de l'animation ; ensuite le personnage sera disponible dans la liste des personnages jouables.
Il est aussi possible de transformer un de ses PJ en PNJ, en lui déclarant des cycles. Il faudra voir, suivant les options, si cela est possible sans modération a priori.
Comme les PJ, les PNJ peuvent être dépho ou non, mais par défaut ils ne seront pas dépho (en dehors du Dispensaire, et de certains PNJ importants). Ce qui veut dire qu'ils peuvent être tués, que ce soit par la faune, l'environnement, d'autres PNJ, ou les PJ.
L'IA doit prendre cela en compte dans les cycles. Si le PNJ a été tué, il passe automatiquement par une phase d'indisponibilité, jusqu'au moment où il devrait naturellement commencer son cycle “dormir”, moment où il est remis en jeu. Cela veut dire que des PNJ peuvent disparaître un jour entier, régulièrement.
La mort des PNJ sera enregistré au niveau du serveur, ainsi que ce qui a mené à leur mort (environnement, PJ…). Cela permettra d'adapter les routines et l'IA en cas de mort trop fréquente à cause de l'environnement, et d'intervenir sur l'éducation des joueuses en cas de serial killer.
Les PNJ parlent en alentour en ayant une bulle au dessus de leur tête. Le joueur peut cliquer sur la réponse qu'il souhaite donner, ou taper sur son clavier le numéro de la réponse. Dans ce dernier cas, il s'agit d'une intégration d'accessibilité, à voir comme éviter que ça entre en conflit avec le reste… car tel quel, ça passera pas. Peut-être taper d'abord la touche “dialogue” qui verrouille en mode dialogue, puis le chiffre ?
Les dialogues obéissent à des règles de rédaction précises, laissant de la latitude à l'interprétation RP.
Voir aussi a_propos_des_dialogues_et_des_choix.
Les PNJ auront une plus ou moins haute opinion des autres personnages qu'ils croisent (PJ ou PNJ).
Le mécanisme est le suivant :
Les 3 premiers peuvent concerner les interactions PJ/PNJ et PNJ/PNJ. Le dernier aspect (composante individuelle) ne concerne que les interactions PJ/PNJ ; sinon deux PNJ qui ne s'aiment pas trop à la base vont s'insulter et finir par se haïr…
Les mécanismes de réputation globale sont décrits dans l'article reputation.
L'appréciation individuelle va être modifiée par :
L'appréciation individuelle peut donc compenser notre réputation globale, et transformer un PNJ réticent en allié, ou au contraire se mettre à dos un potentiel allié…
Sur ce dernier aspect, cela fera beaucoup de relations à stocker côté serveur (côté client, ça semble risqué), donc à étudier. C'est peut-être une idée qui va surcharger le réseau et la BDD.
Un PNJ qui nous apprécie peut :
À l'inverse, un PNJ qui ne nous apprécie pas peut :
Tout cela est à divers niveau ; avant qu'un personnage nous attaque à vue, il faut qu'il soit à la fois d'un aspect guerrier ET qu'il ne nous aime vraiment pas. Ou qu'il soit un bandit, mais c'est un cas particulier où l'agression sera systématique à moins d'être très haut en réputation auprès de ce type de PNJ. Donc, même si un joueur fâche à mort un PNJ employé de l'administration, ce dernier ne lui mettra pas forcément son stylo entre les deux yeux. Par contre, il va probablement lui faire remplir 3 fois plus de papier…
Le système de datasheet s'applique aux PNJ comme aux autres créatures du monde. Ainsi, on peut déclarer la famille “artisan”, donnant des caractéristique de base, puis affiner avec la datasheet “Bill le cordonnier” qui précisera des caractéristiques de Bill, tout en héritant d'aspects définis dans “artisan” et “cordonnier” (et autres).
Ça c'est visiblement déjà présent dans les mécanismes.