MU Soapbox

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Muxify
    • Mustard
    1. Home
    2. Griatch
    3. Posts
    • Profile
    • Following 0
    • Followers 1
    • Topics 23
    • Posts 375
    • Best 172
    • Controversial 0
    • Groups 2

    Posts made by Griatch

    • RE: Questions About Evennia

      We are not tired of people asking questions in the Evennia support channel. 🙂 If people don't reply right away it's usually because people are preoccupied, not that they ignore you. Time zone differences are also a thing, People are spread all over.

      1. Yes. Evennia works quite differently under the hood compared to your average mush though.
      2. Evennia is its own web server and has a default website and webclient it starts along with the server. There is no wiki out of the box.
      3. Maybe https://github.com/evennia/evennia/wiki/Evennia-Introduction or https://github.com/evennia/evennia/tree/master/evennia/contrib ?
        .
        Griatch
      posted in Suggestions & Questions
      Griatch
      Griatch
    • RE: Coming Soon: Arx, After the Reckoning

      @Roz, @Lithium Actually, while idle can be customized on the Server level, it's the only exception to how commands are handled in Evennia. It's caught far earlier than other commands since it literally does nothing but updates the idle timers. So no, a user's personal nick setting won't affect it. Arx needs to extend the IDLE_COMMAND setting as a list including @@ If that's to be supported.
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Alternative Formats to MU

      @apos said in Alternative Formats to MU:

      Edited to add: Think of how different MU rp in a scene would be if we saw a typing indicator for someone that was posing.

      Hey, that's not too bad an idea ...
      .
      Griatch

      posted in Suggestions & Questions
      Griatch
      Griatch
    • RE: Alternative Formats to MU

      @rnmissionrun

      It may be that you are right and I am just old, set in my ways and resistant to change. My opinions come mainly from twenty year's worth of trying-- with very very little success, mind you-- to get MU*ers to play on non-MUSH games. The population of Arx suggests that maybe times have changed and people are open to new ideas. Time will tell.

      On my end I don't see the end-players so much so I can't really comment on the willingness of existing MUSH players to try new things. But on the game dev side, there is no shortage of people willing to try a new system rather than the ones they are familiar with.
      And more importantly, us in Evennia world get a decent number of new developers on a regular basis - new ones every week at least, sometimes several a day, judging from the questions in our support channel. Many of those are not only new to Python or programming but to MU-ing overall. Will all of those make new awesome games or even go beyond the initial tutorial? No. But more coders flowing into the hobby can only be good for everyone.

      I did miss it but I won't answer here so as to avoid derailing the thread even further.

      Fair enough.
      .
      Griatch

      posted in Suggestions & Questions
      Griatch
      Griatch
    • RE: Alternative Formats to MU

      @rnmissionrun

      Did you notice the question I posed to you a little earlier in this thread? It got lost just at the end of a page. As you are an Evennia dev I'd be interested in your elaboration on that one. If not that's cool, just not sure if you just missed it. 🙂
      .
      Griatch

      posted in Suggestions & Questions
      Griatch
      Griatch
    • RE: Alternative Formats to MU

      @rnmissionrun said in Alternative Formats to MU:

      I think it's important to keep in mind that neither Ares nor Evennia are bringing anything to the table that we haven't had for the past 25 years (except for the ability to code MU*s in Python and Ruby). Servers such as MOO, ColdMUD, DGD, and MUCK are every bit as capable (and are even superior in many respects) as their more modern counterparts but have largely been ignored because MUSH was easier and 'good enough'. Evennia and Ares are not going to reverse that trend, any more than ColdMUD and MUCK did.

      This is coming from someone who has spent the last four months working on an Evennia based project 🙂

      Yours is an interesting perspective. Could you elaborate on what you, as a current Evennia developer, feel that that the above servers are superior to Evennia (or for that matter Ares if you have experience there) on? And I'm not meaning this in any defensive way at all - I'm genuinely interested in hearing about aspects we can improve on. 🙂
      .
      Griatch

      posted in Suggestions & Questions
      Griatch
      Griatch
    • RE: Alternative Formats to MU

      @thenomain said in Alternative Formats to MU:

      @faraday

      I still consider Evennia a MUD-like because, as you said earlier, it's not a game installation, but a framework in which you can create a game.

      I would personally say that Evennia is an engine/framework for creating MU* games, some of which are "MUSH-like" or "MUD-like" depedning on your goals. I think our developers are pretty evenly split between either play style (with a few going far away from either or combining elements of each).

      The built-in interpreter, that you can code from the inside, is what I use to classify a MUSH-like game.

      Hey, if that is the only definition, then Evennia can (now) fulfill it. Just activate the in-game-python Evennia contrib module and you can essentially code and script your game in-Python from inside the game. Now, it's not safe for use by untrusted users. I wouldn't personally want to code a game over a telnet-like connection when I could use real development tools outside the game. But it's real Evennia softcode if that's your cup of tea.

      @thatguythere said in Alternative Formats to MU:

      @arkandel said in Alternative Formats to MU:

      For me RP needs to be real time. Again, it doesn't mean this is the only 'valid' way to do it, but that's what would work for me.

      This would be the biggest sticking point for me to move away from telnet. If the RP is not real time I lose interest. I tend to wander a bit waiting for a pose if it is longer than 5 minutes. With MUSH this is when i get my house work done peeking back every couple of minutes until things pick up. Sadly with web based this would be were I found a video to watch and the scene would likely be forgotten about.

      Out of curiosity, why do you feel telnet is needed for real-time interaction? Modern web browser clients with websockets or ajax/comet can (and do) also produce real-time game play. I can see the argument for long-time mud-clients having more features than their browser equivalents, but telnet has nothing to do with that? Maybe you are referring to "forum RP" when you say "web"?
      .
      Griatch

      posted in Suggestions & Questions
      Griatch
      Griatch
    • RE: Alternative Formats to MU

      @auspice said in Alternative Formats to MU:

      Fast-forward three hours, 'Hurr. Sorry guys, I lost track of the tab because I was doing other stuff. Sorry.'

      But when it's a whole other entity, I can remember.

      I speak from experience. I've tried some of those other 'RP' experiences (Storium? Web chat 'deals,' etc) in browsers. I forget they exist very, very quickly. I can't do web based chat at all. I reload this only when I'm bored and come back to it later on. I couldn't keep up with a scene with any expected consistency.

      For example Evennia's web client will both ping you (flashing icon in the tab showing how many new messages have appeared since you last looked at the tab) and optionally pop up a notification in the corner on your desktop to tell you about new activity if you don't have the browser/tab in focus. It could even play a sound.

      Edit to add: Generally, the web browser is the future for text gaming IMO. We are not where we want to be with that on the Evennia side - our web client is still basically a crude emulation of a telnet interface and a third-party client still has a lot more possibilities and options. But that's something we hope to change.
      .
      Griatch

      posted in Suggestions & Questions
      Griatch
      Griatch
    • RE: AresMUSH Updates

      Good progress with Ares; keep it up, @faraday!

      @lithium Just to note, in Evennia (which Arx uses), you can send the idle command as a keepalive.

      Edit: I see this answer was already given. Ah well. 🙂
      .
      Griatch

      posted in MU Code
      Griatch
      Griatch
    • RE: What to do when your mush is attacked

      @Ashen-Shugar asked me to supply a similar list for Evennia. Note that all of these commands could also be prepended with @, + etc if desired.

      who -- (as admin) Find the IP of a account. Note that one account can be connected to from multiple IPs depending on what you allow in your settings.
      examine/account thomas -- Get all details about an account. Can also use *thomas to get the account. If not given, you will get the Object thomas if it exists in the same location, which is not what you want in this case.
      boot thomas -- Boot all sessions of the given account name.
      boot 23 -- Boot one specific client session/IP by its unique id.
      ban -- List all bans.

      +----+---------------+--------------------------+--------+
      | id | name/ip       | date                     | reason |
      +~~~~+~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~+
      | 1  | 134.233.2.111 | Thu Dec  7 19:13:13 2017 |  Spam  |
      +----+---------------+--------------------------+--------+
      
      

      ban thomas -- Ban the user with the given account name
      ban/ip 134.233.2.111 -- Ban by IP
      ban/ip 134.233.2.* -- Widen IP ban
      ban/ip 134.233.*.* -- Even wider IP ban
      unban 34 -- Remove ban with id #34

      cboot mychannel = thomas -- Boot a subscriber from a channel you control
      clock mychannel = control:perm(Admin);listen:all();send:all() -- Fine control of access to your channel using lock definitions.

      Locking a specific command (like page) is accomplished like so:

      1. Examine the source of the command. The default page command class has the lock string "cmd:not pperm(page_banned)". This means that unless the player has the 'permission' "page_banned" they can use this command. You can assign any lock string to allow finer customization in your commands. You might look for the value of an Attribute or Tag, your current location etc.
      2. perm/account thomas = page_banned -- Give the account the 'permission' which causes (in this case) the lock to fail.

      perm/del/account thomas = page_banned -- Remove the given permission

      tel thomas = jail -- Teleport a player to a specified location or #dbref
      type thomas = FlowerPot -- Turn an annoying player into a flower pot (assuming you have a FlowerPot typeclass ready)
      userpassword thomas = fooBarFoo -- Change a user's password
      delaccount thomas -- Delete a player account (not recommended, use ban instead)

      server -- Show server statistics, such as CPU load, memory usage and how many objects are cached
      time -- Gives server uptime, runtime etc
      reload -- Reloads the server without disconnecting anyone
      reset -- Restarts the server, kicking all connections
      shutdown -- Stops the server cold without it auto-starting again
      py -- Executes raw Python code, allows for direct inspection of the database and account objects on the fly. For advanced users.

      Below are server setttings that may be of use. These are changed in mygame/server/conf/settings.py and require a server reload.

      LOCKDOWN_MODE = True -- This will turn the server into isolation mode, disabling all external connections. Useful if you need to run it to debug/test some security issue before letting others on.
      MAX_CONNECTION_RATE -- Limit how many connection attempts per second the portal should accept before starting to drop connections. This is a global value, for all IPs.
      MAX_COMMAND_RATE -- How many commands per second a Session may send. Note that this also includes Out-Of-Band messages between client<->server, so should not be set too low for games using OOB.
      MAX_CHAR_LIMIT -- Limit how many characters can be sent in one command.
      IN_GAME_ERRORS -- This will show tracebacks in the game when they happen rather than just log them and give a generic error message to the player. While very useful for development, this could be considered a vulnerability since it reveals a lot about the underlying code to the player.
      GUEST_ENABLED -- Turn on/off guest access.
      PERMISSION_GUEST_DEFAULT -- Which permission levels given to new guests.
      GUEST_HOME -- Change guests' home location.
      GUEST_START_LOCATION -- Change where guests start when logging in.
      DEBUG -- This mode will show full tracebacks in the browser on HTTP errors etc. Don't use this in production, it's leaking memory like crazy (by design it stores everything).

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Meanest (But Funniest) Thing You've Done in a Game

      Not very "mean" I guess but funny at the time:

      This was a one-shot at a convention. We played "Mutant" (Swedish RPG franchise). 1980's style post-apocalyptic with lots of intelligent mutated animals, mega corps and weirdness in a big mix. We had pre-made characters (a bunch of mercenaries) and I ended up with the intelligent bipedal bulldog. On a whim I decided that he really loved food. The way a dog gets excited about all food, except this dog is six feet tall and carries a shotgun. I got us into a lot of trouble with that one, including bypassing the clever diplomat-type and making sure the down payment for our next gig was to be in bones.

      Anyway, the whole thing concluded with us acting as security detail for a mob boss' wedding. The whole thing took place at the bottom floor of a larger building. So we make our preparations, scout the premises etc. The wedding starts and we are on high alert. Finally the enemy boss makes his move. It turns out there is some sort of aquarium higher up in the building and the enemy had planted explosives that we hadn't detected. So BOOM - tons of water floods down into the locale along with a GIANT MUTANT LOBSTER keen on eating EVERYONE (for some reason).
      Boss battle! This is a pretty lethal game with relatively detailed combat. The lobster is a really powerful enemy and people starts shooting at it with mediocre results. Someone lobs off a semi-successful grenade.

      GM: The grenade goes off! It's a hit, cracking part of the shell on the side of the monster. But even a grenade doesn't even slow it down.
      Me: Wait, there is a crack in the shell? There is exposed flesh?
      GM: ... a little, yes?
      Me: Foooood! I throw away my weapons and dive in. Face first. I'm a bulldog. My jaws a formidable.
      GM: ... Roll.

      I roll excellently, and keep doing so. And for the rest of the battle I gradually eat my way into the poor giant lobster. Lots of laughter around the table. The tension of the battle is gone at this point so the GM just gives up and embraces the farce with ever wilder descriptions. Finally the lobster falls to my hunger and we win the day. Glory and food coma in one glorious mix. Good times.
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: MSB Popularity Contest

      I have a lowly 0.657. I for one welcome our new 2+ overlords.
      .
      Griatch

      posted in Tastes Less Game'y
      Griatch
      Griatch
    • RE: Evennia 0.7 is out

      @RnMissionRun I don't recall if/where @sparks' bboard code is on github, but if it's there consider making a PR against it to update it, since it sounds like you've done all the work already. 🙂
      .
      Griatch

      posted in Adver-tis-ments
      Griatch
      Griatch
    • RE: Evennia 0.7 is out

      @RnMissionRun said in Evennia 0.7 is out:

      @Griatch Removed the decorators, changed all references to self.player in the command handlers to self.account and changed some PlayerDB references to AccountDB and it seems to work fine.

      Great!
      .
      Griatch

      posted in Adver-tis-ments
      Griatch
      Griatch
    • RE: Evennia 0.7 is out

      Sounds like the bboards may use two decorators (returns _typeclass and returns _typeclass_list) that are no longer in use in Evennia - they were leftovers from an earlier implementation of typeclasses and offer functionality that is no longer needed.
      .
      Griatch

      @RnMissionRun said in Evennia 0.7 is out:

      @Sparks said in Evennia 0.7 is out:

      I should throw the bboards I made at the contrib directory, once I check if they still work properly on 0.7. I suspect they'll need changes.

      Tried installing the bboards on a brand new 0.7 install but I get errors about 'returns_typeclass' and 'returns_typeclass_list' when I attempt to do 'evennia makemigrations paxboards'.

      posted in Adver-tis-ments
      Griatch
      Griatch
    • RE: Evennia 0.7 is out

      @Thenomain said in Evennia 0.7 is out:

      Can you explain the use for Yield? Thanks.

      yield is a special Python primitive (like print or return). Evennia, being a single-threaded application, uses an asynchronous event loop to avoid blocking. This essentially means that Evennia will cut up processing into small snippets and quickly jump between them, giving the illusion of true parallelism. The advantage of this over threading is that you have no problems with race conditions and other issues you can face with threading.
      What we now allow is to yield out of the running execution of a given command. Simplistically, this means dropping out of the "snippet" of code currently running, pausing it and giving other codes a chance to run. The yield 15 form is picked up by the command runner and tells it to continue running the code in 15 seconds. Conversely, the return_value = yield "Enter something" form will not continue until the user has entered something on the command line. While waiting the rest of the server runs on as usual.
      You have of course been able to produce the same effect before in Evennia, but this has meant importing and using a helper method. Just using the yield primitive is shorter, straight forward and its functionality is generally easier to follow in-code.

      posted in Adver-tis-ments
      Griatch
      Griatch
    • Evennia 0.7 is out

      Evennia 0.7 was just released. Evennia is a MU* creation library in Python. People here on MU soapbox might be most familiar with it being the engine running Arx.

      There are a ton of updates and fixes. Many are technical and of more interest to those already into Evennia; here are some of more general interest:

      • Evennia separates Player objects from Character objects in that the former is an OOC entity that can puppet one or more of the latter. The name Player was a source of some confusion since this is used differently in other code bases. Player has now been renamed to Account to make its function clearer.
      • Evennia's in-built website now uses our own theme and bootstrap under the hood to make it easier to modify as well as rescale it better on mobile devices (webclient is not updated at this point).
      • Shared logins between webclient and website, with the ability to log out of each independently of the other if so desired.
      • Prefix-ignoring - All default commands are now renamed without their @-prefixes. Both @examine, +examine or examine will now all point to the same command. You can customize which prefixes Evennia simply ignores when searching for a command. The mechanic is clever though - if you create a command with a specific key "+foo", then that will still work and won't clash with another command named just "foo". This idea was borrowed from @faraday's Ares system.
      • Easy pause mechanisms using yield statements directly in Command code (just do yield 10 in your command code to have it pause ten seconds without blocking anyone else). You can also do retval = yield "Do you want to accept?" and have the command pause (non-blocking) for the player's input before continuing.

      New contribs (optional plugins) (selection, new since 0.6 but many have been available on master branch for a while):

      • The optional In-Game-Python contrib by Vincent le Geoff might be of interest to people here. It allows for coding and scripting in-game using full-fledged Python to make events and triggers. It's not a safe softcode-style language (you have the full power of Python which is not good for untrusted users) but is intended for trusted builders to make complex scripting from the command line.
      • Wilderness/maps - Creation of dynamic or static maps based on ascii-maps for dynamically creating rooms and to show when moving around. (titeuf87, Cloud Keeper)
      • Full turn-based combat system, meant to expand for a desired system (battlejenkins)
      • Alternative Unix-style command base for Evennia, for those that prefer to enter commands like you do on the unix command line (with --flags etc) (Vincent le Geoff)
      • Multidescer, which together with Evennia's nick replacement system can be heavily customized in-game (me).
      • Mail - a @brandymail-style in-game mail-system (grungies1138)
      • Clothing system, for layered outfits adding to the wearer's desc when worn (battlejenkins).

      ... And much more. See the release post on the Evennia mailing list for gritty details.
      .
      Griatch

      posted in Adver-tis-ments
      Griatch
      Griatch
    • RE: Separating UX from Functionality (Design Patterns!)

      @Sparks prototype is indeed looking very cool. There are Django bb apps but this of course has the advantage of being adapted to Evennia - and I guarantee no third party app offers an in-game text-only version of the same thing! Hope you may consider it as an Evennia contrib as some point. 😉
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: UX: It's time for The Talk

      @Sparks said in UX: It's time for The Talk:

      @Griatch said in UX: It's time for The Talk:

      @RnMissionRun While your example code is simple enough, I must admit I'm not familiar with FugueEdit. Is it an in-client editor? Could you elaborate a bit on what it is and how it works compared to say Evennia's in-built @desc/edit that uses the EvEditor?

      FugueEdit or SimpleMU-grab type stuff pulls text into the client's input area, pre-populating it.

      So if I grabbed a desc, instead of it being in the in-game editor, it would pull the desc into my input area, so I can edit a single word or whatever, and then just hit enter again to re-send the command.

      Ah, I see, thanks.
      .
      Griatch

      posted in MU Code
      Griatch
      Griatch
    • RE: UX: It's time for The Talk

      @RnMissionRun While your example code is simple enough, I must admit I'm not familiar with FugueEdit. Is it an in-client editor? Could you elaborate a bit on what it is and how it works compared to say Evennia's in-built @desc/edit that uses the EvEditor?
      .
      Griatch

      posted in MU Code
      Griatch
      Griatch
    • 1
    • 2
    • 7
    • 8
    • 9
    • 10
    • 11
    • 18
    • 19
    • 9 / 19