Hacker News new | past | comments | ask | show | jobs | submit login
ErlMUD Commentary (zxq9.com)
32 points by slondr on May 20, 2023 | hide | past | favorite | 12 comments



I know this exact comment gets posted so often, but it's crazy how things my brain muses about magically appear on HN. I'm a long-time MUD enjoyer (played one semi-religiously for about 10 years) and have spent lots of time tinkering around with my own MOO implementations. Recently, BEAM languages have been getting a lot of attention, so naturally my mind drifted to the possibility of writing a MOO on top of BEAM that takes advantage of the immutability/concurrency/whatever.


I've actually been exploring using ChatGPT to make zones for a MUD. I'm not actually interested in making one right now, but I made a simple command line program for converting the output to a more usable format and walk around the creations of the AI. It's been pretty fun.


Have you checked out ToastStunt at all? C++ fork of Stunr which is itself a fork of LambdaMOO.


Nice outline. Pity the project stopped so so early.

The commentary stops at getting telnet going, basically. The actual project does have some further progress. https://gitlab.com/zxq9/erlmud/-/tree/master/erlmud-0.1


There is probably about one mud server implementation per active mud player at this point. For some reason they are extremely popular to write, even though mud playing is a tiny tiny niche.

Meanwhile the active muds are all running on systems decades old because player community, governance, lore, and writing quality is what keeps people playing them not server language features.


Spot in, yeaaahhh. It's a fun & enticing spinning up worlds & their undergirding, and muds are an approachable target!

I'd love to see muds evolve that are scripting/ai friendly. If development is so fun, why not play around with having a wonder api and/or sdk for your mud, to let people control & grow a character or characters programmatically?


Modelling mobs as actors can make it extremely difficult to build a fully featured MUD, especially if you want to implement a scripting language that lets builders make them do cool things. You probably want something more coarse grained.


I built a MUD in Elixir and I completely agree. After many iterations what I landed on as the best path was having rooms as actors. Mobs, characters, items etc are just data in the room process (actor) state (in memory that is, in the database they're all modeled more or less as you'd expect for a relational DB).

This gives me a large number of units of concurrency, while allowing the overwhelming majority of the code to be written sequentially since most of the complicated bits (combat etc) happen within a room so I don't have to think about concurrency at all for those. The only communication between processes is moving monster / character data from one room to another when those entities move around the map.


Even rooms can be very tricky!

Consider this: bob is closing a door in rooma. A dragon is trying to move to rooma through that exit.

How do you code this such that bob never sees the dragon walk through a closed door? With no deadlocks?

The way I solved this is by creating a new process for coordinating multi-room actions. If a room is part of a coordinating process, it will queue everything from all other processes.


Check out BYOND - you could build a Final Fantasy-styled 2D MUD and let builders do cool stuff, like link worlds together and what not.


Whoa, I haven't thought about BYOND in ~20 years. I'm incredibly impressed it's still going (same website and everything)!


I read "commentary" as a different sort, and found myself picturing MUD PvPing as a televised esports event.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: