What's going on here? #157
scionaltera
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi, thanks for taking a look at this. I didn't know if anybody uses Discussions on GitHub but it seems like it could work. I just wanted to talk a little bit about who I am, what this project is, and what direction it's going. In case anybody's interested in that kind of thing.
So, who are you?
I'm a software engineer at a big company. I've been writing code for more than 20 years, and Java for most of that time. I'm also a Dad and since this is a side project my progress is sporadic at times. I do try to answer issues and questions as quickly and thoroughly as I can. I'm really hoping that people try this thing out and get some benefit from it, and I'd love to have some people to talk to about it, and about MUDs in general.
And what is this, exactly?
I'm trying to build basically Spring Boot for MUDs. I'd like it to be a bunch of little composable, opinionated modules that you can pick and choose from to get a head start on building a modern web application. You log in with OAuth, use HTTPS instead of telnet, and generally use other modern security best practices but the thing looks and feels like a telnet session did back in 1996. My long term goal is for it to be easy to use. I freely admit that it is not yet at the time of writing this.
I'm also building a "demo" MUD using the framework because that seems like the only sane way to prove that it does what it's supposed to do. My MUD experience is mostly on the Circle/SMAUG side of things so it's going to feel a little like that without being an exact clone. There are a lot of things I wished for back then that I can make happen now. One of the biggest departures is that I'm borrowing (with written permission) some of the game rules from Index Card RPG instead of going the usual d20 route. It should be interesting.
Ok, where are you going with this?
The basic idea is to build a bunch of modules. For example, the set of primitive objects the demo MUD has: users, items, rooms, characters, etc. could become a module somebody could drop into their own MUD to get a Smaug-like game going. I can imagine a different model more like LPMud where the object model is just maybe rooms and one kind of scriptable object. Or maybe I can pull the framework for commands out of the demo MUD and make it a module, because there are lots of other ways of parsing commands if you don't like that way.
I think there will end up being several layers or kinds of modules. When you bring a low-level module into your project you'll typically get some interfaces and abstract classes. You'll need to write concrete implementations and configuration to make use of it. For instance, a command parser that defines how input is processed. But there could also be a slightly higher-level package of implementations that go with one of the low-level modules. Consider if there were alternate sets of implementations for the same command parser that match different styles of MUD. Plus you can always write your own commands to supplement or override the standard ones. The difficulty is that the modules are going to have to be pretty dependent on each other: commands would have to depend on both a parser and a set of model objects.
It's very early in the project still and I'm trying to start with a small, narrow scope, but my dream is to build my own MUD and also have other developers contributing modules that they're using to build their own games with. When the project is mature enough, somebody should be able to come in, pick a set of modules and spin up a game of their own with relatively little effort.
Beta Was this translation helpful? Give feedback.
All reactions