What's out there now and what has been attempted? A codebase discussion.


  • Coder

    I know this is kind of a re-post of an old topic, but I think 2+ years is enough time for opinions/options to change some!

    I've been out of the hobby for a while, so I have some gaps in my history that I'm hoping to fill. I have ideas for my next project once my current MUX development slows, so I have time to think, plan, and poll. A little background:

    I love MUX! I really do! I've been working with the codebase since the mid 90's. BUT! it doesn't do the interconnected things (beyond iffy SQL) I want it to without a ton of work in a language I'm not the most familiar with and don't have the professional bandwidth to learn more of at the moment. I'd like to stick to the languages I use for work. Currently, that's an insane amount of Node and other JS frameworks (with some Python, PHP, (No)SQL, etc - I do a lot of full stack development and mobile UX/UI design.)

    I'm curious to learn what other projects are/where out there that tried to add to/improve on the MU experience, and how you feel they succeeded or failed. The only 'next generation' servers I know of that are currently doing pretty good are AresMUSH and Evennia. Are there others?

    I know I personally would love to add connection caching on the server side, and push notifications on new activity for mobile interfaces, to combat the dreaded mobile RPing 'sleep mode'. Honestly, improving on the whole non-desktop experience in general.

    I know change is kind of a tough topic, but I'm honestly looking for constructive conversation. What's worked well what hasn't? What did people think was going to be the 'next big thing' that wasn't, or was?

    Thanks for your feedback! :)


  • Coder

    There's a Node codebase called RanvierMUD, but the impression I got from it is that it doesn't use an ORM or database at all, but json flatfiles for storage. I much prefer using django's ORM, but maybe it'd be easier for you to convert Ranvier into using a database with your Node background, I wouldn't know. Evennia is my chosen favorite, though AresMUSH is great too.


  • Coder

    @tehom said in What's out there now and what has been attempted? A codebase discussion.:

    There's a Node codebase called RanvierMUD, but the impression I got from it is that it doesn't use an ORM or database at all, but json flatfiles for storage. I much prefer using django's ORM, but maybe it'd be easier for you to convert Ranvier into using a database with your Node background, I wouldn't know. Evennia is my chosen favorite, though AresMUSH is great too.

    Thanks for the response!

    I looked into Ranvier and what they're doing for their telnet service. In fact, I may use the ranvier-telnet package since I don't really have much interest in hand-coding a telnet network layer. :)

    I thought about using MongoDB/Mongoose for my ORM but it's pretty sloooow and the MongoDB UUID system is overkill for wanting to make a couple hundred objects in total. The thought of using human-readable JSON files is appealing to me though, plus I could easily turn JSON into object literals and back again no problem for building something like an API with Express. SQL is normally the defacto answer but, in my experience, it's been a pain to make big changes later.

    I absolutely love Ares' web integration, it's inspirational. Evennia's integrated too, but I feel Ares focuses more on the community aspect.


  • Coder

    @kumakun said in What's out there now and what has been attempted? A codebase discussion.:

    I absolutely love Ares' web integration, it's inspirational. Evennia's integrated too, but I feel Ares focuses more on the community aspect.

    There's no reason you can't do the same integration on Evennia, fwiw; Ares is just a complete game out of box, while Evennia is a flexible system to build a custom game from scratch.

    I prefer Evennia, but that is merely because I like to build custom stuff and am vastly more at-home in Python than Ruby; Ares is definitely the easier/more friendly option to get something up and running right away.


  • Pitcrew

    @sparks said in What's out there now and what has been attempted? A codebase discussion.:

    @kumakun said in What's out there now and what has been attempted? A codebase discussion.:

    I absolutely love Ares' web integration, it's inspirational. Evennia's integrated too, but I feel Ares focuses more on the community aspect.

    There's no reason you can't do the same integration on Evennia, fwiw; Ares is just a complete game out of box, while Evennia is a flexible system to build a custom game from scratch.

    Ares CAN be a complete game out of a box, but there's not really any 'just' about it. It can also be highly customized, if you want to code it. Almost everything in Ares exists as a plug-in you can disable and replace with your own system.


  • Coder

    @tat said in What's out there now and what has been attempted? A codebase discussion.:

    Ares CAN be a complete game out of a box, but there's not really any 'just' about it. It can also be highly customized, if you want to code it. Almost everything in Ares exists as a plug-in you can disable and replace with your own system.

    See, I like that. It's a complete game if you're not a developer, but it's customizable enough to make it what you want if you are. I think a premade integrations 'gallery' is a great idea!


  • Coder

    @tat said in What's out there now and what has been attempted? A codebase discussion.:

    It can also be highly customized, if you want to code it.

    Yeah, the philosophy was to work out of the box and be highly configurable for folks who have no coder, but also be extensible for games who want to do their own thing.

    If you want something radically different, though, it's probably better to start with a blank slate like Evennia rather than try to work within the confines of a system with set assumptions.

    @kumakun said in What's out there now and what has been attempted? A codebase discussion.:

    I think a premade integrations 'gallery' is a great idea!

    It is a nice idea, but I think you'll find that easier said than done. Many MU systems interact with each other. You can make a system that fits together like a jigsaw puzzle, but if you try to take out a piece it leaves a hole you have to deal with. It's not like, say, Wordpress plugins where the Events calendar plugin doesn't really need to interact with the SEO plugin or the slider plugin.


  • Coder

    @faraday said in What's out there now and what has been attempted? A codebase discussion.:

    It is a nice idea, but I think you'll find that easier said than done. Many MU systems interact with each other. You can make a system that fits together like a jigsaw puzzle, but if you try to take out a piece it leaves a hole you have to deal with. It's not like, say, Wordpress plugins where the Events calendar plugin doesn't really need to interact with the SEO plugin or the slider plugin.

    That's very true, cross dependencies would be a big concern. It could totally turn into a Skyrm Mod level nightmare! I wonder though if treating the plugin system in a way that's similar to Nodes NPM or Python's PIP, where dependencies are installed with the plugin, might help alleviate some of that pain.


  • Admin

    @kumakun said in What's out there now and what has been attempted? A codebase discussion.:

    I'm curious to learn what other projects are/where out there that tried to add to/improve on the MU experience, and how you feel they succeeded or failed. The only 'next generation' servers I know of that are currently doing pretty good are AresMUSH and Evennia. Are there others?

    On the same host as MSB I had started building a web-only MU engine based on websocket, PHP over Apache and ajax components. The very basic parts worked well enough - multiple users, a rudimentary navigation for a grid with a back end to customize rooms, etc.

    At some point I ran into a wall when I realized that the more time I spent coding the parts I really looked forward to - such as a hexagon grid-based GUI for PrPs - the less I had to do the stuff I just had to, and didn't really want to since it's boring and thankless; replacements for common systems like bboards or mail, CGen, etc.

    I still think ridding ourselves from any backward compatibility with telnet is the way forward. I just can't commit to that kind of workload however.


  • Coder

    @arkandel I wholeheartedly agree. I was /thinking/ of telnet because I wanted to make it approachable for people stuck to their telnet clients.

    It would be interesting to define a websocket protocol to standardize server/client communications so someone so inclined could make a ws based client capable of connecting to multiple servers. I entertained a webRTC data connection for a second, but, overkill. :)

    I agree that it's a lot of work, but if the plugin architecture was done right, I'm sure there are others that would be willing to contribute to those replacement systems.


  • Coder

    @kumakun said in What's out there now and what has been attempted? A codebase discussion.:

    I wonder though if treating the plugin system in a way that's similar to Nodes NPM or Python's PIP, where dependencies are installed with the plugin, might help alleviate some of that pain.

    Not really. Because it's not just a matter of "X plugin depends on Y" but "X plugin depends on Y in this particular way." In other words, it's not just a dependency but an API with dynamic qualities.

    Just for example - Ares supports plugins for several different RPG skills systems (FS3, Cortex, Fate, FFG). You can easily install the base code for the plugin, but what if you want to:

    There are tons of these kinds of dependencies throughout a MU system, and making all of that "100% plug and play" was a level of complexity far and above what I was willing to do for Ares.



  • @arkandel said in What's out there now and what has been attempted? A codebase discussion.:

    a web-only MU engine

    If it isn't telnet, is it MU*?
    philosopher


  • Coder

    @tinuviel said in What's out there now and what has been attempted? A codebase discussion.:

    @arkandel said in What's out there now and what has been attempted? A codebase discussion.:

    a web-only MU engine

    If it isn't telnet, is it MU*?

    I bet it would be. It's still MultiUser and text, just the medium is... updating. :)



  • @kumakun That'd be like saying a cave painting is the same as the Mona Lisa, tut tut.


  • Coder

    @tinuviel But both are nevertheless paintings. It really depends on what you see as the defining quality of a "MU*" and I don't think there's universal agreement on that point.



  • @faraday said in What's out there now and what has been attempted? A codebase discussion.:

    the defining quality of a "MU*

    The grumpy old people clinging to outdated foundations and standards.


  • Admin

    @tinuviel said in What's out there now and what has been attempted? A codebase discussion.:

    @arkandel said in What's out there now and what has been attempted? A codebase discussion.:

    a web-only MU engine

    If it isn't telnet, is it MU*?

    If I can roleplay in it, but better, I don't care what it is called.


  • Coder

    @tinuviel While I'd love to keep the old-school players happy with their medium, I'm FAR more interested in bringing new blood into the hobby and seeing real-time collaborative fiction writing flourish, even if I have to call it 'MU* roots' :)



  • @kumakun My comment wasn't entirely tongue-in-cheek, and there's more to a name than simply what something is called. There's a culture, expectations, and the like that go along with it. If you're keen on making radical changes from what we have now, to the point where it'd only just be recognisable, it's not going to be the same thing. And if it's not going to be the same thing, why use any of the same conventions?


  • Coder

    @tinuviel said in What's out there now and what has been attempted? A codebase discussion.:

    The grumpy old people clinging to outdated foundations and standards.

    Then web-mu is definitely out of bounds :-)

    But if you instead define it as:

    • an online multi-player text-based RP community
    • where time in the game world passes at some constant ratio relative to RL time and
    • where roleplay can happen 24/7/365 in elements called 'scenes' and
    • which typically incorporate elements from tabletop RPGs, like skills system, but not full automation (like a MUD)

    Then sure, why not have a web MU?

    ETA: That was a MUSH definition so I guess general MU* would be even broader. You hopefully get my drift.