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: Evennia - a Python-Based Mu* Server

      @Alzie

      Evennia is a game development framework for building text-based online multiplayer games. It's aimed at small teams of game developers interested in making such a game using primarily Python. To that end it supplies programming resources and tools highly customized for this genre of game. That's it. Those preferring other solutions are more than welcome to pursue them.

      I'm surprised and saddened to hear such a bitter tone. Did you maybe try Evennia and were disappointed it was not what you thought it would be?
      .
      Griatch

      PS:
      Commands are parsed just fine out of the box, but you are given the option to change the syntax to one you prefer better. And to clarify, Evennia always worked like this; there has in fact never been more game-specific code in Evennia's distribution than there is now, due to our contrib folder slowly growing. The features out-of-box are covered here.

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Optional Realities & Project Redshift

      If all you want is for the client to send normal commands when you click a button, then you only need to change the interface of the client or use an existing client with a customizable interface offering buttons. On the outgoing end you can also let the client do regex-matching in the server's outgoing data (such as is common for extracting "prompt" info from the flow of text and display that in a fixed location).

      With tighter out-of-band connectivity though it can be beneficial if the server also supports some form of Out-of-band (OOP) protocol. Examples for its use is for the server to update the client also without player input (the classic example is to update the graphic of a health bar) or other custom output not necessarily easy to regex out of the flow or is specific to a particular type of client (like non-text media, server-directed splitting of data to different client gui elements etc). There are a few telnet subnegotiation-based OOP protocols like AMCP/GMCP and MSDP; for webclients JSON is likely the easiest.
      .
      Griatch

      posted in Adver-tis-ments
      Griatch
      Griatch
    • RE: Optional Realities & Project Redshift

      @Thenomain said:

      Hey! You got your Evennia Conversation in my Optional Realities!

      Sorry πŸ˜‰ To go back on topic, I personally enjoy the articles on OR - and I'm not just saying it becaue I've written a few. Longer articles on game development is not common when it comes to MU* games and I'm quite happy to see someone taking a stab at pulling it together. Clearly, if you have no interest in making your own game (and those articles are also often targeting the mud side of things) most of them are not for you.
      Doesn't mean they have no value though. I might not agree with all in there but in the same way I enjoy editorials in a newspaper I enjoy reading the OR articles. Besides, they are written by people on topics they find interesting and the very observation of what people choose to write about is in itself informative.
      .
      Griatch

      posted in Adver-tis-ments
      Griatch
      Griatch
    • RE: Optional Realities & Project Redshift

      @faraday

      The server must indeed come first, agreed. If that doesn't work well, then no fancy UI will save it. πŸ™‚

      @WTFE said:

      I have literally no opinion on Evennia beyond not really liking the name much.

      Hah, I'm not a huge fan of the name myself but as some point I just had to just decide to accept it and move on. I completely blame the original creator of Evennia for that one. I don't think he ever expected his experimental little hobby server to grow to what it has become. πŸ˜‰
      .
      Griatch

      posted in Adver-tis-ments
      Griatch
      Griatch
    • RE: Optional Realities & Project Redshift

      @WTFE

      I agree that there's lot to gain from a hybrid between past and future. In this respect Evennia is not really mired in the past though. We do support telnet and the interfaces of yesteryear but Evennia is protocol agnostic and not dependent on these legacy protocols directly (you can turn off telnet completely in settings if you don't want to use it, by default it's one way to connect among many). It is its own webserver and our websocket client can be customized as you see fit.
      Admittedly we could (and will hopefully soon) offer better gui building blocks out of the box in this respect, but a game dev knowing javascript can basically put whatever gui functionality they want in front of their Evennia server.
      .
      Griatch

      posted in Adver-tis-ments
      Griatch
      Griatch
    • RE: Evennia - a Python-Based Mu* Server

      @faraday said:

      @Griatch Interesting. Yes, I think Ruby helps quite a lot here. Also the architecture of Ares helps too, as heavily-interconnected modules are discouraged in favor of modular plugins with well-defined APIs. And even if you mess up the code by screwing up one of the connections, the underlying engine is as bulletproof as I could make it to this sort of error. Just tweak and reload and everything's good.

      We have approached this quite differently it seems. πŸ™‚ Evennia is in many ways a code library; offering convenient programming tools for a game developer; as such many times interconnectivity is necessary to avoid code duplication and making things easily maintainable. Ares has a different scope but at any rate, the flat plugin code layout is very appealing - well done!
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Evennia - a Python-Based Mu* Server

      @faraday, @tyche

      Ah. This might well be an underlying difference between Python and Ruby. Interesting. Over time we (we, as in Evennia devs) found hot-reloading tended to lead to hard-to-trace bugs and errors as people's custom heavily interconnected modules got out of internal sync with different versions. Hence our solution with two processes to allow for a full in-memory cleanup without any player losing connection.
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Evennia - a Python-Based Mu* Server

      @WTFE

      Thanks; we have however solved this a long time ago, and I'm sure @faraday has too. Was just interested in some of the technical details of the implementation in Ruby.
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Evennia - a Python-Based Mu* Server

      @faraday said:

      The plugins can be hot-swapped thanks to Ruby's dynamic capabilities, but changing the core engine requires a game restart. Hopefully that should be rare.

      The plugins can be hot-swapped? So what happens when you replace code that is already instanced somewhere in memory, potentially with other dependencies in other objects? Can you reload those modules into memory and be sure there are no conflicts? Or are all plugins meant to be used "without memory" of previous calls, so to speak?

      I ask because we can hot-swap Python modules too, it's just that in a more complex system it can be nigh impossible for a reloader to make sure all in-memory instances can hold state while reloading to what may be different functionality. We tried this for a long time. πŸ™‚ Eventually we found that reloading completely behind a proxy solved all such problems for us (and allows you to do @reload from in-game to cleanly see all code changes).
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Evennia - a Python-Based Mu* Server

      @faraday

      Double-post, but I was writing from my phone and couldn't check out your code example. Peeked at the ruby code now. I like the concept of splitting up all these subsystems in a plugin framework. Evennia does this too, but maybe in a less explicit manner, using config files to offer overloading of default systems and commands with your own modules.
      I'd be interested in hearing about how you handle code updating when a source file changes on an already running server with players on it. We do this via players connecting to a proxy, meaning the server (behind the proxy) can be fully reloaded without anyone disconnecting. Maybe Ruby's hot-reload capabilities are different though, I don't know Ruby enough to tell, so it would be interesting to hear your approach to it.
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Evennia - a Python-Based Mu* Server

      @faraday

      Aye, documentation is a big chunk of the work. Our documentation wiki covers 200 pages and some 40% of our source-code is documentation - and still there could be more of it. We can't explain how to do basic Python tasks for example - we have to limit our scope somewhere. But for people coming from no programming experience, or from knowing only softcode, those are really the bits which are the most needed ... Having an active dev support channel/forum has helped a lot here, since it allows point-targeting these more individual, custom info-needs. Whitenoise's Evennia videos have also helped a bit since one of them is a Python primer.
      I imagine you face the exact same issues with Ruby, even with a more narrow target audience.
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Evennia - a Python-Based Mu* Server

      @faraday

      Ares sounds cool, I was not aware of it before! I didn't find any obvious info on how to code with it on your website - Evennia is coded with external Python modules, do you maybe do something similar (but in Ruby)?
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Evennia - a Python-Based Mu* Server

      @SG said:

      Your install video should be place front and centre on your quickguide! It helped me get over the hump of not having all the right packages pre-installed before following the steps.

      Anyways, now to start fucking around with it while I learn some python!

      Whitenoise will be happy to hear his video is appreciated! He has so far done two videos in his "EvCast" series, one on installing Evennia, the other on basic Python concepts. Here is the Youtube playlist
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Evennia - a Python-Based Mu* Server

      @Thenomain said:

      @Griatch said:

      @Thenomain

      OMG, so Evennia can get malware?!

      Huh, where did that come from?

      All the ad-based malware that's going around.

      It came from dry humor, mixing ignorance with bad information. Sorry, I thought the excessive "OMG!"ing made it clear that the seriousness was nil.

      Heh, sorry, sarcasm and irony can be hard to catch online sometimes. I blame me not being a native English speaker. πŸ˜‰

      One of the hardest parts of me self-learning programming languages that are library-based is figuring out which one of the billions and billions of libraries do the one very specific tiny thing I want to do. All you need is 20(30?) years of experience to know, obviously.

      Yes, in the case of Python, it's one of those things that are very easy to learn to use productively, yet takes a lot longer time to master. Knowing how to dive into Python's standard library is an important skill. Google and Stack Overflow are my constant friends! It's surprising how often someone else has asked the exact same question (although in a completely different context) and there is a finished Python example to refer to.

      I'm no longer harshing on "just learn Python and Git, duh" because it's becoming clear to all involved that this isn't just a simple cultural change. The growing pains are going to happen; I don't think anyone needs toβ€”and almost no one hasβ€”reacted to this as a negative. Most of it is on our side and is mainly, "I ... I don't ... ow ... brain hurts ...."

      By the way, the positive reaction here is fantastic. I'm ecstatic that Volund's excitement is justified.

      I should point out that I (being the only "official" Evennia representative here) am not here to "lure anyone away" though. If people are interested in testing Evennia I'm of course happy but as @Derp points out, existing code bases work well (and has for a long time), with people being used to their functionality. They also do some things out of the box that Evennia does not do - I have no doubt people will continue doing cool stuff with them in the foreseeable future.
      As for @Volund, he is rushing ahead with his WoD implementation. New stuff is literally happening every day. πŸ˜‰

      I think it's clearer to say that you (and your contemporaries) have a huge body of established, stable, tested work to draw from, which is 100% Balls-To-The-Wall Awesome. This will make learning for the rest of us easier, but I would like to stress the '-er' on that just a bit, one last time.

      We have worked hard to try to make the Evennia framework easy and efficient to work with. No doubt there is more to do. The experience of people coming to us from MU* softcode has helped us quite a lot: their input has helped shape our system's various connection modes, just to do pick one example. They also do things a bit differently and tend to approach coding paradigms in new and sometimes interesting ways.
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Evennia - a Python-Based Mu* Server

      @Thenomain

      OMG, so Evennia can get malware?!

      Huh, where did that come from?

      @Readers

      But resources already encoded in python for the games that are extant are going to be slim to none, whereas there are tons and tons of things for MU out there already. Glen Morse's page comes to mind, and has a crapton of things in it. Thenomain has things on his own thing he's shared with all of us. MUX2 comes with SGP. Etc.

      For sure, Evennia has fewer MU*-specific resources in our library. We don't have 20 (30?) years to fall back on, alas. We do have the advantage of free access to the huge (and now we are really talking huge) Python ecosystem though.
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Evennia - a Python-Based Mu* Server

      @Thenomain said:

      I figured this would be the answer, as much as I was hoping it was true.
      DOES IT EVEN JAVASCRIPT?!

      The webclient is a pure HTML5 application using websockets with a fallback to AJAX for older browsers. So yes, it's a pure javascript app, communicating with Evennia over JSON. Admittedly our webclient is not as "clean" internally as it could be yet, but we are working on it to make it easier for people to expand on it in a more modular way. πŸ™‚
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Evennia - a Python-Based Mu* Server

      @TNP

      So the next question would be, can they import an nWoD cgen into their game from someone else's? And how easy would it be for them to write one from scratch (which, granted, is not easy for Mux code either or more people would do it).

      I'll leave this answer up to the MUSHers who are already using Evennia for WoD. Hopefully one will reply.

      @Thenomain

      You can connect to Evennia via plain telnet (but it's of course better to use a dedicated telnet mud client) and the web client is built into the install. Evennia is actually its own webserver, so you get a default web page out of the box, connected to the same database as your game.
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Evennia - a Python-Based Mu* Server

      @TNP

      To add to the comments of others; Evennia runs out of the box, complete with database, a website and a webclient (as well as traditional telnet and so on). After install you have a fully functioning, if empty, game with some 90 default in-game commands for building, emoting, chat in channels and so on. If you want you can open it up for others to come join you. It's completely generic, no dependence on any genre or even game style at this point.

      You could now, as you say, build a grid and be done if you are going for the very simplest type of casual game. New commands are not added in-game, but instead by editing a file in a text editor. And the language is Python instead of softcode - those are basically the only differences at this level of commitment.
      .
      Griatch

      posted in Mildly Constructive
      Griatch
      Griatch
    • RE: Artists and Artsy People

      @Sundown said:

      I found that the Stabilization option in Manga Studio is the best thing in the world if you want to draw with a tablet. It makes drawing and sketching so much easier.

      Krita also has line draw stabilization - multiple variations of it in fact. I don't use it much myself but for certain things it's certainly useful.
      .
      Griatch

      posted in Tastes Less Game'y
      Griatch
      Griatch
    • RE: Google Search

      @Glitch

      Awesome and convenient. πŸ™‚
      .
      Griatch

      posted in Announcements
      Griatch
      Griatch
    • 1
    • 2
    • 15
    • 16
    • 17
    • 18
    • 19
    • 17 / 19