<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[UrsaMU, back from the project graveyard.]]></title><description><![CDATA[<p dir="auto">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.</p>
<p dir="auto">It relies on Typescript, <a href="http://Socket.io" target="_blank" rel="noopener noreferrer nofollow ugc">Socket.io</a>, 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 <a href="http://Socket.io" target="_blank" rel="noopener noreferrer nofollow ugc">Socket.io</a> 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).</p>
<p dir="auto">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.</p>
<p dir="auto">That’s enough for me! Here’s the repo if you’re curious.</p>
<p dir="auto"><img src="https://imgur.com/Ye36c9c.png" alt="Ursamu" class=" img-fluid img-markdown" /><br />
<a href="https://github.com/ursamu/ursamu" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/ursamu/ursamu</a></p>
<p dir="auto">(I need to update the banner slogan, I wrote that a few years ago now)</p>
]]></description><link>https://brandmu.day/topic/401/ursamu-back-from-the-project-graveyard</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 13:11:51 GMT</lastBuildDate><atom:link href="https://brandmu.day/topic/401.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Jul 2023 13:49:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to UrsaMU, back from the project graveyard. on Mon, 07 Aug 2023 19:40:02 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://brandmu.day/uid/80">@Kumakun</a><br />
Actually you might wanna rethink that <a href="http://sockets.io" target="_blank" rel="noopener noreferrer nofollow ugc">sockets.io</a> thing.</p>
<p dir="auto">Following up on Polk here, I did indeed integrate Evennia’s webclient… with my Thermite project over at <a href="https://github.com/volundmush/thermite" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/volundmush/thermite</a></p>
<p dir="auto">I just put this into use for DBAT but the goal is to keep refining it to be useful for all mu* stuff</p>
<p dir="auto">I got the idea of it from Evennia’s portal - thermite handles all of the user facing networking and hosts the webclient.</p>
<p dir="auto">It’s written in Rust and thus very reliable and low cost to run.</p>
<p dir="auto">This allowed me to dramatically simplify the networking that the game code handles, and super-simply reboot-without-disconnect (hotboot/  copyover).</p>
]]></description><link>https://brandmu.day/post/18318</link><guid isPermaLink="true">https://brandmu.day/post/18318</guid><dc:creator><![CDATA[Volund]]></dc:creator><pubDate>Mon, 07 Aug 2023 19:40:02 GMT</pubDate></item><item><title><![CDATA[Reply to UrsaMU, back from the project graveyard. on Mon, 07 Aug 2023 19:00:32 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://brandmu.day/uid/158">@Griatch</a> 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.</p>
]]></description><link>https://brandmu.day/post/18316</link><guid isPermaLink="true">https://brandmu.day/post/18316</guid><dc:creator><![CDATA[Polk]]></dc:creator><pubDate>Mon, 07 Aug 2023 19:00:32 GMT</pubDate></item><item><title><![CDATA[Reply to UrsaMU, back from the project graveyard. on Mon, 07 Aug 2023 18:47:11 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://brandmu.day/uid/80">@Kumakun</a> said in <a href="/post/17543">UrsaMU, back from the project graveyard.</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://brandmu.day/uid/158">@Griatch</a> 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.<br />
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.<br />
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!<br />
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!</p>
</blockquote>
<p dir="auto">Thanks for the answer! Glad to hear Evennia’s design was a little inpirational. <img src="https://brandmu.day/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=ad502f21e27" class="not-responsive emoji emoji-android emoji--smile" style="height:23px;width:auto;vertical-align:middle" title=":D" alt="😄" /> 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 …</p>
]]></description><link>https://brandmu.day/post/18313</link><guid isPermaLink="true">https://brandmu.day/post/18313</guid><dc:creator><![CDATA[Griatch]]></dc:creator><pubDate>Mon, 07 Aug 2023 18:47:11 GMT</pubDate></item><item><title><![CDATA[Reply to UrsaMU, back from the project graveyard. on Tue, 25 Jul 2023 00:43:43 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://brandmu.day/uid/16">@Third-Eye</a> 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. <img src="https://brandmu.day/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=ad502f21e27" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" />   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!</p>
<p dir="auto">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!. <img src="https://brandmu.day/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=ad502f21e27" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://brandmu.day/uid/158">@Griatch</a> 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.</p>
<p dir="auto">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. <img src="https://brandmu.day/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=ad502f21e27" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto">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! <img src="https://brandmu.day/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=ad502f21e27" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto">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!</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://brandmu.day/uid/200">@somasatori</a>   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.</p>
]]></description><link>https://brandmu.day/post/17543</link><guid isPermaLink="true">https://brandmu.day/post/17543</guid><dc:creator><![CDATA[Kumakun]]></dc:creator><pubDate>Tue, 25 Jul 2023 00:43:43 GMT</pubDate></item><item><title><![CDATA[Reply to UrsaMU, back from the project graveyard. on Mon, 24 Jul 2023 23:24:40 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://brandmu.day/uid/80">@Kumakun</a> 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.</p>
<p dir="auto">Also if I recall you were making a Cyberpunk Red game, is that right? Are you prototyping UrsaMU with that?</p>
]]></description><link>https://brandmu.day/post/17540</link><guid isPermaLink="true">https://brandmu.day/post/17540</guid><dc:creator><![CDATA[somasatori]]></dc:creator><pubDate>Mon, 24 Jul 2023 23:24:40 GMT</pubDate></item><item><title><![CDATA[Reply to UrsaMU, back from the project graveyard. on Mon, 24 Jul 2023 22:52:50 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://brandmu.day/uid/158">@Griatch</a> said in <a href="/post/17536">UrsaMU, back from the project graveyard.</a>:</p>
<blockquote>
<p dir="auto">was there some particular part of Evennia that inspired you,  or which you aim to improve upon with your server?</p>
</blockquote>
<p dir="auto">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?</p>
<p dir="auto">That said, looks interesting and I’m big ups for more games if somebody feels like they need something new to make their thing.</p>
]]></description><link>https://brandmu.day/post/17538</link><guid isPermaLink="true">https://brandmu.day/post/17538</guid><dc:creator><![CDATA[Third Eye]]></dc:creator><pubDate>Mon, 24 Jul 2023 22:52:50 GMT</pubDate></item><item><title><![CDATA[Reply to UrsaMU, back from the project graveyard. on Mon, 24 Jul 2023 21:05:40 GMT]]></title><description><![CDATA[<p dir="auto">Good luck! Always good to see more options in the MU* realm. <img src="https://brandmu.day/assets/plugins/nodebb-plugin-emoji/emoji/android/1f44d.png?v=ad502f21e27" class="not-responsive emoji emoji-android emoji--+1" style="height:23px;width:auto;vertical-align:middle" title=":+1:" alt="👍" /></p>
<p dir="auto">Our of curiosity, apart from the language,<br />
was there some particular part of Evennia that inspired you,  or which you aim to improve upon with your server?</p>
]]></description><link>https://brandmu.day/post/17536</link><guid isPermaLink="true">https://brandmu.day/post/17536</guid><dc:creator><![CDATA[Griatch]]></dc:creator><pubDate>Mon, 24 Jul 2023 21:05:40 GMT</pubDate></item><item><title><![CDATA[Reply to UrsaMU, back from the project graveyard. on Mon, 24 Jul 2023 14:45:04 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://brandmu.day/uid/3">@Tez</a> 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. <img src="https://brandmu.day/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=ad502f21e27" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>https://brandmu.day/post/17534</link><guid isPermaLink="true">https://brandmu.day/post/17534</guid><dc:creator><![CDATA[Kumakun]]></dc:creator><pubDate>Mon, 24 Jul 2023 14:45:04 GMT</pubDate></item><item><title><![CDATA[Reply to UrsaMU, back from the project graveyard. on Mon, 24 Jul 2023 13:58:13 GMT]]></title><description><![CDATA[<p dir="auto">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?</p>
]]></description><link>https://brandmu.day/post/17532</link><guid isPermaLink="true">https://brandmu.day/post/17532</guid><dc:creator><![CDATA[Tez]]></dc:creator><pubDate>Mon, 24 Jul 2023 13:58:13 GMT</pubDate></item></channel></rss>