Evennia - a Python-Based Mu* Server


  • Coder

    @Thenomain said:

    Mind you, Glitch, you said I was foolish for not giving people on Eldritch a Quota so they can tinker-code.

    That's a bald-faced lie!

    ... it was another game. >.>

    Also, I wanted an object so I didn't have to look at stuff I put on my charbit, in an environment where it was already possible. I do think there is a benefit brought to the community through tinker-code, I just don't think it outweighs the considerations of the game runners and coders when choosing a platform that makes their lives easier.


  • Coder

    Idle Thought: I am amused by the irony of using IRC as the live communication stream for building a better game-building engine out of modern components.

    @Glitch becomes a class-traitor by saying:

    I do think there is a benefit brought to the community through tinker-code, I just don't think it outweighs the considerations of the game runners and coders when choosing a platform that makes their lives easier.

    And I agree, but it should be on the development roadmap, or I'm going to do it, and never having coded an interpreter or compiler before it's going to work as poorly as the softcode we have now. Is that what you want? Is it?


  • Creator

    To be perfectly honest, I'm having some trouble relating to the argument. As noted by my less-than-comprehensive MUing history listing in my playlist thread, I've played a huge amount of games. A good chunk of MUSHes or whatever that I've played, do not allow players to tinker with soft-code. There have been plenty where you need to ask staff permission before you do anything like that. Hell, there have been a -lot- where the only kind of grid building you can do is to submit a desc to staff and ask them to put it somewhere.

    So I really do not see the lack of players being able to access soft code to be a game killer. In most games I play where players have no permissions to use it, no one gives a shit. This is literally the first time I've ever even seen someone care about not being able to, which suggests that it would be an issue that's in the extreme minority to actually worry about.


  • Coder

    @ThatGuyThere said:

    Alright quick example from my experience. I made a char who as a job worked in a comic store, there was no comic store on grid. No biggie I did not think I would rp being at work much. RP happens my char mentions said job people want to pop in a visit him at work scenes take place there so I decide to build it.
    I co to the build nexus and dig the rooms make the exits get is all connected together, get the success and fail messages set and then put in a request to have it linked to the grid. A couple days later after build staff looks though it to make sure I did not mess anything up it gets put on grid and rp in it continues.
    Or another example on a different game, in cgen spend point on having a free hold, this gets approved so before hitting grid. There the process was a bit longer. I put in a request to build it gets approved I do the building of the project in this case three rooms, grounds, house, freehold, I add the the request I am done then it gets looked over and linked to grid.
    So basically the ability to @dig and create exits etc. not so much abotu altering a room there but taking an idea for a place and turning it into a room.
    Also on MUSHes the billboards, mail system, and channels for the most part are soft-coded as well.

    As others have already mentioned, these are not really things you need the full power of a softcode language for. As far as Evennia is concerned, it can easily be expanded with very sophisticated build commands. So you could certainly have all those things available. Things like billboards, mails and channels are things that can just as well be coded externally.
    .
    Griatch


  • Creator

    @Griatch said:

    @ThatGuyThere said:

    Alright quick example from my experience. I made a char who as a job worked in a comic store, there was no comic store on grid. No biggie I did not think I would rp being at work much. RP happens my char mentions said job people want to pop in a visit him at work scenes take place there so I decide to build it.
    I co to the build nexus and dig the rooms make the exits get is all connected together, get the success and fail messages set and then put in a request to have it linked to the grid. A couple days later after build staff looks though it to make sure I did not mess anything up it gets put on grid and rp in it continues.
    Or another example on a different game, in cgen spend point on having a free hold, this gets approved so before hitting grid. There the process was a bit longer. I put in a request to build it gets approved I do the building of the project in this case three rooms, grounds, house, freehold, I add the the request I am done then it gets looked over and linked to grid.
    So basically the ability to @dig and create exits etc. not so much abotu altering a room there but taking an idea for a place and turning it into a room.
    Also on MUSHes the billboards, mail system, and channels for the most part are soft-coded as well.

    As others have already mentioned, these are not really things you need the full power of a softcode language for. As far as Evennia is concerned, it can easily be expanded with very sophisticated build commands. So you could certainly have all those things available. Things like billboards, mails and channels are things that can just as well be coded externally.
    .
    Griatch

    This is basically how MUDs typically work, so yeah.


  • Coder

    @ThatGuyThere said:

    For what I gather Evennia makes big things easy to do but at the cost of the small fun bits. All I can say is best of luck but I probably won't be adapting to Evennia games until all the old mush style games are gone.

    You are entitled to your opinion and I don't expect anyone to abandon what they love. But I must admit I don't quite understand this particular argument. It suggests that somehow all Evennia games will always be the same, as if it was fixed to a particular game style or feature set ...
    .
    Griatch


  • Coder

    Well, @Griatch, we are Mushers. I tried to explain that what you're reading is coming from a Musher perspective. I'm not sure what there is to understand; if the server's code structure allows for in-game coding in a safe manner, then there's nothing to worry about If not, then we're a bunch of Mushers being asked why we don't Mud.

    Okay, not quite that hyperbolic, but hopefully that gets some more of the point across.


  • Coder

    @Tirit said:

    Although I must say, that it would be interesting to an evennia --init option that allows for the folders to be setup with all the basics, but lack the typeclasses or commands. So it would be something that people can pull and git --init to directly without having to delete the files Evennia puts in.

    Could you clarify what usage you are looking for with such an --init option?
    The typeclasses and commands that are included are the basis of the default install - the things Evennia requires to run. The templates are completely empty as they are, ready to be filled with your own stuff, there is nothing superfluous there except maybe the README file. If you are looking to share (via git) an already created game folder you would not use --init at all, but just clone that folder and run off it directly.
    .
    Griatch


  • Coder

    I am interested in the potential of ADDING Penn/Rhost-like softcode capabilities to Evennia, but don't think I have the skills to do so yet.

    personally I think it would be better served by re-inventing the concept of softcode in a fashion more manageable to modern coders. For instance, have a look at Second Life and the linden scripting language. While I'm not saying use THAT EXACTLY, it has a proper syntax, it allows for very creative building, and all the same sorts of things you'd want something to do in MUSHcode.

    Consider that Evennia has a web app interface. It is totally possible to create tools that will allow for building rooms, setting code and programs, using such methods.

    Just, nobody's made them yet.


  • Coder

    @Thenomain said:

    Well, @Griatch, we are Mushers. I tried to explain that what you're reading is coming from a Musher perspective. I'm not sure what there is to understand; if the server's code structure allows for in-game coding in a safe manner, then there's nothing to worry about If not, then we're a bunch of Mushers being asked why we don't Mud.

    Okay, not quite that hyperbolic, but hopefully that gets some more of the point across.

    From talking to plenty of both MUD and MUSH, MUX, MUCK and MOO users in our support community, my impression is that whereas there are some expectations and must-haves that vary from community to community (Evennia supports a range of multi-character simultaneous puppeting modes just because of requests from MUSHers, something MUD users are are "meh" about, for example), the MUSH/MUD boundary is actually pretty fuzzy if one ignores the hardcode on which they run. The building features that @ThatGuyThere describes as vital to his gaming enjoyment are basically identical to what is available in a more developed RP MUD. That said, yes - softcode access for normal players is another unique feature, for those games that offer it (softcode for developers is otherwise also available in LPmuds for example).

    Idle Thought: I am amused by the irony of using IRC as the live communication stream for building a better game-building engine out of modern components.

    It's not ironic - we actually do both: Evennia's in-game channels can be linked to external IRC channels. So Evennia developers chat and interact with the Evennia IRC support channel directly from within their development servers while they are coding.
    .
    Griatch


  • Coder

    Actually since Evennia uses Twisted and the portal can easily support all kinds of connections, I'd imagine that it's totally possible to invent all kinds of APIs to connect and do major editing, down the road. Not yet sure how that would work but it seems theoretically possible.


  • Creator

    @Griatch
    So the biggest thing is that when you --init the game, it puts the files in there, and git doesn't like the folder with files already in there that are named the same as files on the repo.

    So you have to delete the similar files (characters.py is both on my repo and in the base game) and than do the whole git setup. Usually it's not a huge issue, but a few of my developers have failed on that point and get confused if they don't know what to delete and what to keep. So they end up deleting the server file, not on my repo, and then confused why they can't start their game.

    It's really just an issue of making sure that I, as the owner, document on how a developer should set up.


  • Coder

    @Tirit

    But ... isn't the goal that you all work on the same game folder?
    .
    Griatch


  • Coder

    @Griatch

    The irony may be more of an inside joke, since the tired dead-horse-beating here about MUSHlikes is that they are using an ancient, out-dated transport mode.

    As a long-time sufferer of this complaint (I have no problem with telnet; it is what it is and is used for a shit-ton of stuff still), it tickled me. In that context, it's ironic.


  • Pitcrew

    @Griatch said:

    @ThatGuyThere said:

    For what I gather Evennia makes big things easy to do but at the cost of the small fun bits. All I can say is best of luck but I probably won't be adapting to Evennia games until all the old mush style games are gone.

    You are entitled to your opinion and I don't expect anyone to abandon what they love. But I must admit I don't quite understand this particular argument. It suggests that somehow all Evennia games will always be the same, as if it was fixed to a particular game style or feature set ...
    .
    Griatch

    Ok right now as it stands Evennia eliminates things that I find to be pluses, so any game would be at a disadvantage of a place that had those.
    Evennia will go one of two ways either the first few games that use it will take off and it will become the new thing in wade use, or the first few games won't attract a big audience and it will become a niche code base like other MU-code replacements from over the years.
    In the case of the first instance I have a good 5 years I figure minimum before the old guard of MUSH-code games die out before I need to worry about adapting., in the case of the second I have no need to worry about it.
    I don't say this to be an asshole but I am not an early adapter on things in general I did not get a HD tv til by old TV died last year.
    As for Evennia games being the same some of that will be built into it. MUCKs and MOOs I am sure can great games but neither looks or behaves like a MUSH/MUX from a player perspective. I have looked at each in the best but never ended up playing either because they were too different when what I already knew existed as an option.


  • Coder

    @ThatGuyThere said:

    Evennia will go one of two ways either the first few games that use it will take off and it will become the new thing in wade use, or the first few games won't attract a big audience and it will become a niche code base like other MU-code replacements from over the years.

    If you ask me, all of MU*'ing is pretty niche right now. In fact from my perspective the hobby is losing steam. Also, if you look at at the existing codebases it's much like Linux - there's a million distros all slightly different, some drastically different. There's Penn, Rhost, and TinyMUSH, there's TinyMUX which is not the same as TinyMUSH, there's MUX2, there's MOO and ProtoMUCK. For MUDs there's stuff like Circle and Smaug and tons of derivatives of each other...

    What exactly is a 'mainstream' MU* server anyways?


  • Coder

    @Volund said:

    What exactly is a 'mainstream' MU* server anyways?

    One I see everywhere. If you play WoD Mu*s, it's TinyMUX. Really, of Mux, Mush, and Rhost, Mux is the popular. Penn is pretty solid, too.

    I think what TGT's complaint is one I've run into in the past many times: I know how to play Game X. I log into similar Game Y and man oh fucking man what the hell is going on here? Never mind!


  • Creator

    @Griatch
    Yes. But if you have a for example -- typeclasses/character.py in your development folder on a development box, and you go to pull from a repo that same folder, it won't it because it sees the issue as a version control issue, and wants to know if you need to stash, merge, etc. So they delete the folders, all of them, not realizing that they need to keep server/, because that's not on the repo, because that more game specific. Now they're confused on why the game does start.

    For those not familiar with a git or version control set up, this can get confusing. For those who are familiar with it, they just know to delete the specific folders that are on the repo and nothing more. Then do the pull and it will give you the repo version.

    Again, nothing wrong with the way Evennia has done it, just been a snag for developers who don't know git.


  • Coder

    @Thenomain said:

    The irony may be more of an inside joke, since the tired dead-horse-beating here about MUSHlikes is that they are using an ancient, out-dated transport mode.

    As a long-time sufferer of this complaint (I have no problem with telnet; it is what it is and is used for a shit-ton of stuff still), it tickled me. In that context, it's ironic.

    Telnet is a necessary evil if wanting to not alienate the existing MU* communities and third-party clients. Telnet is easy to code for but hardly ideal with its plain-text sent passwords (I could not launch a telnet server at work for example, for security policy reasons). Also, and I don't know how much this is a factor in MUSH, but at least on the MUD side there are a ton of extension subnegotiation protocols that has been added to the Telnet protocol over the last 20+ years. They tend to be poorly documented (since there is no central standard) and various clients support subsets slightly differently or straight-out wrong. This is not making it easy for a server developer.

    Websockets with JSON is certainly a lot more straightforward - then you control both the client and the connection protocol. Of course, a third-party client tend to offer a lot more generic functionality than a webclient.
    .
    Griatch


  • Pitcrew

    @Volund
    First off I would not call anything in our hobby mainstream.

    And while I am sure from a coder's point of view there is a big difference between the various shades of MUSH and MUX types from a player's they are pretty much the same. the biggest differences I note are remembering where I have to put a + in front of a channel alias and the differences in mail system commands, which my be why I thought they were soft coded earlier. The rest all pretty much works the same.

    I would refer to a code base as niche if it only pretty much had existing games in one genre, MUCK for example is highly associated with one particular genre at least in the minds of a lot of people. Where the MUD family and the MUSH family both have games in many genres so I tend to see them as more general interest code bases.