4 ms·
Funnily enough I took up trying to develop a new MUD engine from scratch in Haskell, with an embedded Lua interpreter for scripting as well. https://github.com
by agentultra 9mo ago
Funnily enough I took up trying to develop a new MUD engine from scratch in Haskell, with an embedded Lua interpreter for scripting as well.
https://github.com/agentultra/bakamud https://github.com/agentultra/bakamud
And I often stream working on it at https://twitch.tv/agentultra https://twitch.tv/agentultra
MUDs are great! Achea is another great one.
Happy gaming folks.
- nateb2022 9mo agoI love how concise that Haskell code is! I've also started building a new MUD engine, but in Rust (previously I've written a partially complete one in Go), and this time around I'm working on implementing a MUD using an ECS (entity component system).
- agentultra 9mo agoI'm also planning on an ECS system as well! Very cool. Are you publishing the code somewhere? There's also a Slack for MUD developers if you're interested in chilling with like-minded people: https://mudcoders.com/join-the-mud-coders-guild-6770301ddcbd/ https://mudcoders.com/join-the-mud-coders-guild-6770301ddcbd...
- ctoth 9mo ago> There's also a Slack for MUD developers if you're interested in chilling with like-minded people I am very much the target person for this but also am oddly sad that this isn't like ... a MOO? Or something!
- kQq9oHeAz6wLLS 9mo agoRight? This is ripe territory for a talker
- PenguinCoder 9mo agoI have 'Create a MUD server' on my side project todo list. I Want to do it with golang too. I have some experience with C and SMAUG codebase; just tinkering around. What were your biggest challenges and wins with a Go based MUD server?
- nateb2022 9mo agoWhen I wrote the Go one, the biggest challenge I had was synchronizing global state, since it was massively concurrent (there was a server goroutine to handle the main game tick, and two goroutines per connected client, one to read and the other to write). I ran into a fair amount of deadlock situations during development of different features, and in retrospect I think I would have benefited a lot from the architectural/paradigm shift to an ECS or an actor model like https://github.com/anthdm/hollywood https://github.com/anthdm/hollywood As for the wins, Go always makes it very easy dealing with concurrency primitives, I really loved using channels, and pretty much everything I needed was in the standard library.
- bcrosby95 9mo agoFor the longest time MUDs were my standard "learn a new language" project. There's enough meat to expose strengths of the language but overall they're pretty simple.
- _jackdk_ 9mo agoSome years ago I wrote Haskell bindings to libtelnet ( https://hackage.haskell.org/package/libtelnet https://hackage.haskell.org/package/libtelnet ) and a reflex wrapper around them ( https://hackage.haskell.org/package/reflex-libtelnet https://hackage.haskell.org/package/reflex-libtelnet ). Perhaps they are useful to you. If you need dependency bounds relaxed or revised to work on modern GHCs, let me know and I'll take a look.