mica | nmoo | |
---|---|---|
1 | 1 | |
0 | 10 | |
- | - | |
10.0 | 8.2 | |
almost 2 years ago | about 2 months ago | |
C++ | Nim | |
GNU General Public License v3.0 or later | MIT License |
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.
mica
-
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.
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?
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.
rmoo - A major mode for interacting with MOOs.
tinyfugue - TinyFugue - Rebirth
fastglobal - Fast no copy globals for Elixir & Erlang.