nmoo
rmoo
nmoo | rmoo | |
---|---|---|
1 | 2 | |
10 | 8 | |
- | - | |
8.2 | 1.8 | |
about 1 month ago | 9 months ago | |
Nim | Emacs Lisp | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nmoo
-
Show HN: I rewrote the 1990's LambdaMOO server from scratch
I love seeing projects like this! I have one too, but it completely throws away compatibility and is very simplistic. I opted for a lisp-like language instead of a lua-like language (https://github.com/sid-code/nmoo but don't look at the code, it's embarrassing).
I have some questions:
- Does each verb call create a whole new world state that it mutates, and later commits to the database? That's the impression I get from reading the code. Does this come with a lot of overhead?
rmoo
-
Show HN: I rewrote the 1990's LambdaMOO server from scratch
I've done the "whole new thing" before, too. 20ish years ago, tho I only have a few fragments of what I worked on back then: https://github.com/rdaum/mica being one of them I found on an old drive. Not complete.
But sticking with compatibility has allowed me to enforce development discipline, basically. And then I'll move it onwards from there.
Re: world state / transactions -- yeah, basically all I/O and mutations happen in a transactional context, and then at commit time conflicts are resolved; if they're not resolve-able, the transaction is retried in a new state. As for overhead, yes potentially maybe a lot, but it's also a solvable problem; this is how an MVCC SQL database (like, even Postgres) works. TLDR it's likely inefficient now, but I believe I can make it efficient. And I think it's the best to solve the shared world state problem and still meet user's expectations of consistency.
Re: the MOO client, it's `rmoo.el`: https://github.com/lisdude/rmoo -- it's been around for a long time (25, 30 years?) and it and/or MOO.el (another emacs one) are how/why I learned emacs in the first place. I had to patch my local copy to make it work with emacs 29.1.
-
1980: MUD
A friend of mine maintains a fork of RMOO, an Emacs MOO/MUD client. You might find it interesting: https://github.com/lisdude/rmoo
What are some alternatives?
mudmixer - MUDMixer is an add-on for MUD clients that enriches the gaming experience with connection mixing functionality and a variety of other features.
toaststunt - A network accessible, multi-user, programmable, interactive system for the creation of MOOs / MUDs.
tinyfugue - TinyFugue - Rebirth
mica
fastglobal - Fast no copy globals for Elixir & Erlang.
moor - A rewrite of the classic LambdaMOO server; but in Rust and on a modern tech stack
EtaMOO - A new implementation of the LambdaMOO server