Moteur de Jeu PyChronia

Note: cette section est remplie d’anglicismes abscons, et n’intéressera vraisemblablement que les informaticiens.

Le site de présentation de Chrysalis, ainsi que le portail fictif abritant les parties en cours, tournent sur un moteur applicatif développé pour l’occasion, et appelé PyChronia (Pythonic Uchronia).

Pour la partie “présentation du jeu”, ce moteur se contente principalement d’intégrer et personnaliser des modules déjà existants de l’écosystème Python/HTML/CSS/Javascript: Django-CMS (gestion de contenu), bases de données MySql, Jquery, Easy-thumbnails, Fancybox, CKEditor…

Mais pour ce qui est du déroulement des parties, PyChronia a nécessité le développement de toute une surcouche du framework web Django, afin d’utiliser une base de données objet/noSql (la Zope Object DataBase, ou ZODB), et automatiser les problématiques récurrentes du jeu de rôle.

Grâce à ce framework, cet ensemble très modulaire de classes et de middlewares, il est possible de créer facilement des pages web orientées roleplay, qui gèrent toutes seules les permissions, le traitement des formulaires web, les contraintes appliquées aux actions (coût en argent fictif, limitations en termes de nombre d’utilisations ou de délai de répétition…) etc. D’une certaine façon, le moteur PyChronia est au genre Leet’RPG ce que le moteur Evennia est au genre MUD.

PyChronia propose par défaut le thème visuel MetalRadiance (celui de ce site), ainsi que des textes d’interface adaptés au monde de Chrysalis. Cependant, il serait possible, avec un minimum de travail, de modifier cette interface, et d’étendre les fonctionnalités du moteur, afin de l’utiliser pour une autre campagne, voire pour un autre univers de jeu de rôle (Vampire la mascarade, Shadowrun, Far-West…).

Le code du moteur est en open source sur Github, ici. Mais si l’envie vous prend de l’utiliser, n’hésitez pas à prendre contact avec l’équipe Chrysalis, afin que nous puissions vous conseiller, et voir ensemble comment faire évoluer la base de code pour qu’elle convienne à tous sans “diverger”.

 

python-powered_transparent.png nosql.png