Brand MU Day
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    UrsaMU, back from the project graveyard.

    Scheduled Pinned Locked Moved Game Gab
    10 Posts 7 Posters 722 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • KumakunK
      Kumakun
      last edited by

      I’ve been exploring Evennia lately and finding inspiration in what it offers developers like myself. I’m also learning some valuable lessons that I’m starting to apply in my own experimental MUSH-like project, UrsamU.

      It relies on Typescript, Socket.io, and Express under the hood. I built it with an adapter pattern for flexibility - any database can plug in. Right now, it’s heavily telnet-based, but Socket.io will make adding a web client easy. No softcode, but using proper dev practices avoids production bugs so far, in my experience. I have basic commands working, including core communication like @mail (no Jobs or BBS yet).

      I’ve had testers connect for weeks, popping in and out, and it’s been stable! When I’m ready for more people, I’ll post an update for stress testing.

      That’s enough for me! Here’s the repo if you’re curious.

      Ursamu
      https://github.com/ursamu/ursamu

      (I need to update the banner slogan, I wrote that a few years ago now)

      V 1 Reply Last reply Reply Quote 7
      • TezT
        Tez Administrators
        last edited by

        Good luck with it! What are your plans for it? Do you see it as something like Ares, which is very pre-packaged, or Evennia, which is fairly bare bones? It sounds like you are focused on the client / telnet aspect, yeah?

        she/they

        KumakunK 1 Reply Last reply Reply Quote 0
        • KumakunK
          Kumakun @Tez
          last edited by

          @Tez I’m not sure yet! I’d love to turn my base server into an npm lib that you can use to build up your own game on top of. I think that’s my plan so far. But, for my testing (and hopeful test game) I’m building out features like Ares. Web client with a telnet interface, a client with a more web-native interface, etc which is definitely Ares-inspired. 🙂

          1 Reply Last reply Reply Quote 0
          • GriatchG
            Griatch
            last edited by Griatch

            Good luck! Always good to see more options in the MU* realm. 👍

            Our of curiosity, apart from the language,
            was there some particular part of Evennia that inspired you, or which you aim to improve upon with your server?

            Third EyeT 1 Reply Last reply Reply Quote 1
            • Third EyeT
              Third Eye @Griatch
              last edited by

              @Griatch said in UrsaMU, back from the project graveyard.:

              was there some particular part of Evennia that inspired you, or which you aim to improve upon with your server?

              I’m curious about this as well, what’s the appeal of doing a totally different thing vs making plugin/adaptable content for Evennia? Also, what’s the appeal of another telnet server right now?

              That said, looks interesting and I’m big ups for more games if somebody feels like they need something new to make their thing.

              I want something else to get me through this
              Semi-charmed kinda life, baby, baby
              I want something else, I'm not listening when you say good-bye

              She/Her or They/Them

              KumakunK 1 Reply Last reply Reply Quote 0
              • somasatoriS
                somasatori
                last edited by

                @Kumakun this is really interesting! Good luck with this. JavaScript (and to a lesser extent typescript as a matter of course) is my most familiar code language, it would be very exciting to be able to create something MUSH-like using that.

                Also if I recall you were making a Cyberpunk Red game, is that right? Are you prototyping UrsaMU with that?

                they/them

                1 Reply Last reply Reply Quote 0
                • KumakunK
                  Kumakun @Third Eye
                  last edited by

                  @Third-Eye Telnet is just my first port of entry. I decided to start with it because it’s the first thing people ask about when it doesn’t exist. 😉 Why? Because I could? Because originally it started as a project to show my server-based TS chops to future employers - and sort of took off from there. I’m a full-stack web developer by trade, so the web side is coming soon! I’ve laid down some of my foundational REST routes so far, and have a plan for the front-end, I just have to get there!

                  I’ve made a few systems for Evennia - the BBS and Jobs ports where a pain, but will be useful for me through multiple applications - as UrsaMU is still very much under alpha development, so I’ll be using something stable in the interim!. 🙂

                  @Griatch Honestly? It taught me that I didn’t have to get super fancy about things. Seriously. It’s not at all a slight. Evennia isn’t overly engineered, and, is approachable when making customizations. It’s kept simple, and I really appreciate how pythonic the project is.

                  I’m also in love with just having your business logic to worry about. I’m not a fan of having to dig through my evenv to find it, but I could say the same about digging through a node_modules folder. 🙂

                  The thing that really got me moving though, was the EJS. I silent screamed a little when going through the web side of things. Totally started reliving EJS nightmares. I could have made a custom skin for it, sure - but, the error reporting for EJS is horrible, at least was back when I didn’t have many other choices! 🙂

                  Ultimately, when I deem this experiment successful? I’ll rewrite it in Golang, and harden it past a prototype MVP - at least that’s the plan!

                  @somasatori I was, yes! But! My wife and friends asked for WoD5, so I’m doing that first. I’m chomping at the bit to either do Cyberpunk, or MEKTON next, once I know things are stable.

                  GriatchG 1 Reply Last reply Reply Quote 1
                  • GriatchG
                    Griatch @Kumakun
                    last edited by

                    @Kumakun said in UrsaMU, back from the project graveyard.:

                    @Griatch Honestly? It taught me that I didn’t have to get super fancy about things. Seriously. It’s not at all a slight. Evennia isn’t overly engineered, and, is approachable when making customizations. It’s kept simple, and I really appreciate how pythonic the project is.
                    I’m also in love with just having your business logic to worry about. I’m not a fan of having to dig through my evenv to find it, but I could say the same about digging through a node_modules folder.
                    The thing that really got me moving though, was the EJS. I silent screamed a little when going through the web side of things. Totally started reliving EJS nightmares. I could have made a custom skin for it, sure - but, the error reporting for EJS is horrible, at least was back when I didn’t have many other choices!
                    Ultimately, when I deem this experiment successful? I’ll rewrite it in Golang, and harden it past a prototype MVP - at least that’s the plan!

                    Thanks for the answer! Glad to hear Evennia’s design was a little inpirational. 😄 The webclient code is admittedly first written at a time when Typescript was but a glimmer in the eye of some guru somewhere; it was written to be as generic as possible. One could certainly rework it with a more modern style today. Time, time …

                    PolkP 1 Reply Last reply Reply Quote 0
                    • PolkP
                      Polk @Griatch
                      last edited by

                      @Griatch Well it was generic enough that both Volund and I could rip it out and apply it to other projects (Dragonball Advent Truth and Liberation MUSH respectively) with ease.

                      1 Reply Last reply Reply Quote 1
                      • V
                        Volund @Kumakun
                        last edited by

                        @Kumakun
                        Actually you might wanna rethink that sockets.io thing.

                        Following up on Polk here, I did indeed integrate Evennia’s webclient… with my Thermite project over at https://github.com/volundmush/thermite

                        I just put this into use for DBAT but the goal is to keep refining it to be useful for all mu* stuff

                        I got the idea of it from Evennia’s portal - thermite handles all of the user facing networking and hosts the webclient.

                        It’s written in Rust and thus very reliable and low cost to run.

                        This allowed me to dramatically simplify the networking that the game code handles, and super-simply reboot-without-disconnect (hotboot/ copyover).

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post