Moteur à fictions

Bonjour,
Je réfléchis à un éventuel futur moteur, et bien sûr j’aimerais récolter vos idées, critiques, lettres au père noël, yeux écarquillés, …etc.

Le moteur se place quelque part à mi-chemin entre Inform, Twine, Seltani, et les MUD/MUSH. Il doit être capable de gérer le multi-joueur, et le multi-protagoniste.

Ce moteur tournera sur PHP5 et MySQL. Il doit être générique et installable facilement sur des hébergeurs gratuits type « free.fr » ou « atspace.com ».

Le front-end sera orienté mobile, probablement avec jquerymobile.

En termes d’interactions, on souhaite limiter au maximum les entrées clavier, donc on fonctionne plutôt par éléments de texte cliquables, qui font apparaître un menu contextuel pop-up permettant de choisir l’action que l’on souhaite exécuter sur l’élément cliqué. L’exception concerne les dialogues, qui se font uniquement par texte entré au clavier.

Les personnages sont laissés en libre-accès, et n’appartiennent à aucun joueur. Quand on se connecte, on choisit un personnage, on joue avec, et quand on se déconnecte, un autre joueur peut prendre ce personnage à son tour.
Pour maintenir une cohérence scénaristique, le background et l’historique des personnages sont accessibles aux joueurs qui les jouent. L’historique d’un personnage retrace ses actions passées et indique quels joueurs ont fait faire ces actions au personnage. Il est possible de « liker » certaines actions que l’on considère comme correspondant au profil du personnage, ce qui fait gagner des points aux joueurs qui ont initié ces actions. Ainsi, les joueurs ayant le plus de points sont ceux qui respectent le plus la personnalité des personnages qu’ils empruntent.

Les déplacements d’un lieu à l’autre se font d’une façon un peu différente de ce que j’ai pu voir dans d’autres systèmes. Plutôt que de rester très bas-niveau, avec un déplacement de lieu en lieu par des passages, on prend un peu de hauteur pour se rapprocher de ce qu’on peut voir dans les films ou séries TV : on ne montre pas nécessairement tous les lieux par lesquels les personnages passent. Au contraire, on se permet de passer directement d’un lieu à un autre (par exemple de la scène de crime à l’appartement miteux d’un indic’ peu fiable) selon les besoins de l’histoire. Par contre dans ce système, certains Lieux sont composés de plusieurs Endroits (hall d’entrée de la banque, bureau du directeur, salle des coffres), ce qui permet de retrouver, si l’histoire l’exige, une disposition géographique à travers laquelle on doit se déplacer. Pour résumer : de Lieu en Lieu, on va où on veut, mais dans un Lieu, d’un Endroit on ne peut aller que vers les Endroits adjacents (si on a la clef de la porte par exemple). Je me demande si je suis bien clair, là.

La syntaxe du langage utilisé pour coder le monde existe déjà, elle s’appelle Semtxt et c’est un sous-ensemble strict de XML. Un éditeur existe déjà pour cette syntaxe (construit sur nwjs). Le code ressemble à ceci :

Vous tenez dans la main [comestible le champignon] que vous venez de ramasser.

Le mot « comestible » collé au crochet ouvrant est un indicateur sémantique. Il indique que « le champignon » est de type « comestible ». L’indicateur sémantique et les crochets n’apparaissent pas dans le texte présenté au joueur, mais l’expression « le champignon » est cliquable, ce qui fait apparaitre le menu contextuel correspondant aux éléments de type « comestible ».

A suivre !

Ça semble intéressant. À noter que mysql c’est un peu ch**** à configurer et à sauvegarder, peut-être que ça serait envisageable d’utiliser un backend générique qui permet d’utiliser diverses BDD (mysql, sqlite…), comme le fait PDO : sitepoint.com/migrate-from- … on-to-pdo/

Intéressant ! Est-ce que tout cela est pour l’instant purement hypothétique ou bien tu as commencé à coder quelque chose de concret ? Et, sans vouloir mettre en doute tes compétences, tu penses faire tout ça seul ? Tu as de l’expérience en PHP et MySQL ? Je dis ça, parce que ça reste quand même conséquent, et ce sera sûrement plus difficile qu’il n’y paraît… Ce serait bête de se décourager en plein milieu.

Merci !

En fait j’ai commencé sur codeanywhere (une plateforme de dév en ligne). Je suis parti d’un mini-framework MVC qui s’appelle PIP, et je l’ai modifié un peu pour utiliser PDO. Donc pour l’instant j’ai un squelette… C’est un premier projet sur PHP/SQL. Bon, c’est pas tellement le côté technique qui me fait peur, mais plutôt les choix, le design du moteur de jeu. Par exemple, le fait de laisser les persos en libre-accès pose pas mal de questions.

Mais depuis mon dernier post, j’ai développé autre chose, plus modeste : MAVH. Une première étape, en quelque sorte, où je teste une syntaxe autre que Semtxt. Je créé de ce pas un Sujet pour MAVH. :slight_smile: