À propos du projet
MegaMOO est un moteur de monde virtuel textuel multijoueur et persistant, développé à partir de zéro et inspiré de LambdaMOO. Il nécessite Python 3.10+ et n'utilise que la bibliothèque standard. Un monde est créé avec `megamoo init` et exécuté avec `megamoo --dev`, servant Telnet sur le port 6770 et affichant une URL de navigateur. La programmation dans le monde utilise Python lui-même : chaque verbe, comme `verbs/17/jump.py`, est un fichier Python avec un contexte injecté (`pobj`, `args`, `dobj`, `iobj`, `pmatch`, `call_verb`, etc.), et les modifications sont prises en compte en direct sans redémarrage. Le moteur comprend un cœur de serveur asyncio avec les protocoles Telnet/WebSocket et MUD (MXP, GMCP, MSDP, MSSP), une persistance SQLite en mode WAL avec cache d'objets paresseux, un héritage à parent unique de style LambdaMOO, un analyseur de langage naturel prenant en charge les articles, ordinaux, adjectif-nom et prépositions, des effets temporisés, des tâches gérées avec protection contre la suspension/le fork, et un moteur de substitution d'émission sensible au genre. `@import` lit les formats de base de données LambdaMOO 1 à 4, en préservant les objets, la hiérarchie et les propriétés, et en stockant l'ancien code des verbes de manière inerte pour le portage. Le README documente 312 verbes de démarrage, dont 228 sont saisissables au clavier. La limite de sécurité est explicite : la création de verbes/eval est réservée au niveau gm3, et les détenteurs du niveau gm3 peuvent exécuter du Python arbitraire en tant que processus serveur. Le projet fournit également un pont MCP (`tools/megamoo_mcp.py`) exposant 17 outils pour les commandes de jeu, l'inspection et l'édition d'objets, de verbes et de propriétés, l'évaluation (eval), la recherche, les journaux et l'état du serveur. L'accessibilité est intégrée, avec notamment un mode lecteur d'écran par joueur, un retour à la ligne tenant compte des codes ANSI, et la possibilité de désactiver le retour à la ligne. Le projet est sous licence MIT et en développement actif ; le README indique qu'il n'a pas encore eu de déploiement multijoueur public.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.