Don’t forget we moved!
https://brandmu.day/
UrsaMU, back from the project graveyard.
-
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.
https://github.com/ursamu/ursamu(I need to update the banner slogan, I wrote that a few years ago now)
-
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?
-
@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.
-
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? -
@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.
-
@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?
-
@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.
-
@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 …
-
@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.
-
@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).