.NET Core Open Source

I’ve been very excited by the direction the .NET Framework has been taking in general lately. From the new from-scratch reimplementation of their compiler Roslyn to the announcement of .NET Native and now the open source, cross-platform .NET Core. As ever, it seems the web and mobile developers get all the love because these things have been started in that sphere only. Meanwhile, us desktop developers get left twiddling our thumbs from the outside wondering when we’ll be let in.

However I was reading through the comments section of the article announcing .NET Core (http://blogs.msdn.com/b/dotnet/archive/2014/12/04/introducing-net-core.aspx), and I found this official response to one of the questions:

@Jeremiah GowdyWill we be able to write console applications using .NET core / .NET native?

That’s something we’re working on. We’ll absolutely have the Console APIs available in .NET Core. In fact, I believe this one is coming online on GitHub in a couple of weeks.

The other part that you’ll need for running console apps is an application model that allows you to start & run your code. Currently, the only runner we have is ASP.NET’s console application template which is mostly geared for web workers.

As far as .NET Native goes: it’s on the list but we’re currently focused on scenarios that are relevant for touch based clients.

This is really exciting news for FutureMUD. FutureMUD really is just a pure console application that as far as I can tell, wouldn’t depend on anything at all outside of the .NET Core stack. I really hope that they follow through and create an application model for Console Applications because then FutureMUD would run quite neatly in the .NET Core stack.

Either way, as the Mono project is drawing heavily from the new .NET Core, it means that basically everything in Mono will sooner rather than later be brought up to the “First Class Citizen” level of support, which is good news all around for Linux compatibility!

Server Problems Resolved

As it turns out the server (in particular the Wiki) had come under a pretty heavy attack from bots. I disabled account creation on the wiki for now but in trying to install an extension to allow myself to mass-remove all of the bot accounts and their posts, I broke the wiki. However, I’ve decided to leave it down for now as it’s fairly empty and nobody is relying on it yet. I will tackle it again when I find the time.

Server Problems

As some of you may have noticed, I’ve been having some server problems. It seems the database keeps going down for some reason. I haven’t really had time to get to the root of the problem, I’ve simply restarted it when I’ve found it down.

Aren’t computers fun?

Why Not Open Source?

Some people may wonder why the FutureMUD project is not open source; indeed, this is something I have wondered from time to time myself. I thought I would offer my reasons as to why FutureMUD is closed source, and take the opportunity to reflect on the future.

Making Money

Clearly in most cases, if you were intending to make money off of something, it would make sense that you weren’t going to give it away for free. While for large companies it can actually be in their interests to make their products open source (see this article if you’re interested), in most cases for smaller developers it would not make a lot of sense.

That being said, I don’t intend to ever sell FutureMUD to anyone. I originally kept the option open because you never know, but the more I think about it these days, the more unlikely it seems. There just isn’t that much money to be made in the RPI community, and any income I did derive from it would be a drop in the ocean compared to my actual job. So unless some Oil Baron with money to blow and a deep abiding love of RPI MUDs comes along, FutureMUD will likely only ever be given away for free.

Does this include commercial MUDs? I don’t see why not. If you can convince players that your RPI is worth paying for in some way, well then, you have probably made a pretty damned good RPI and I don’t see why you shouldn’t be able to keep whatever profits you make. Thinking about it lately, instead of asking for a royalty (e.g. percentage) or some flat fee, I would probably just ask that each MUD that gets “successful enough” agrees to host at least one of the hard working free ones.

Why Make It At All?

I started FutureMUD to make the “RPI Engine of the Future”. As some of you no doubt know, I was the owner of Shadows of Isildur for a short while between Traithe and Kite. During my time, I was a big advocate of the RPI Engine and the code was freely available at the time (subject to the terms of the Diku, Harshlands and SOI licenses of course). I knew of, was loosely involved with, and even pondered several new RPI MUDs that were to be based off of the RPI Engine. Many of these had bright, motivated people with a great idea behind them.

Almost all of them failed to get off of the ground because they could not get enough coding support to make things happen, or, due to the inherent instability of the RPI Engine, never really took off. I ended up leaving SOI mostly for personal reasons, as I was no longer enjoying myself there and felt the need to work on something that was truly my own (rather than trying to keep alive something that was almost wholly someone else’s).

At that time, I decided that I wanted to make a new engine, from scratch, that while respecting the style of the RPI Engine, was free of its problems. Thus, FutureMUD was born. Actually, it was originally called LukeMUD, which was a working title. Later, when we ported LukeMUD to Windows, it became WinMUD. WinMUD was already an actual thing though, so the sub-title “The RPI Engine of the Future” ended up becoming the actual title.

I first started work on this in 2009. I believe it was late 2012 when we scrapped the C++ engine entirely and started yet-again from scratch in C#. The whole time the mission has been to get this engine out there and for people to be able to use it – not just myself, but anybody who has the time and patience to get a MUD running (you’ll need a lot of both, no matter how good your engine).

My original vision was to make an engine where “Literally everything was customisable without a coder” and “Builders had complete control over every aspect”: I’ve since realised that is a little bit pie-in-the-sky. At the very least, my mission is to make things as customisable as reasonably practical, and make it easy from a coding perspect to add options.

Why Not Open Source Then?

I like Open Source, I do. There are however two main reasons why FutureMUD is not currently Open Source.

  1. Control
  2. Uniformity

The first point is probably the most critical – FutureMUD is a labour of passion, many hundreds if not thousands of hours of my work poured into creating it and creating it a particular way at that. I want things to work a particular way in FutureMUD and I’m pretty uncompromising about it. I have had a hard enough time working with Kithrater and Case, who are close real life friends of mine, let alone a stranger with whom I share no real world connection.

I keep FutureMUD closed source at least for now because I don’t want to have to answer to anyone about how to do things. Case was recently talking about returning to FutureMUD and we were discussing elements of the engine that she could get involved in, and I must admit, every one of them made me defensive and think of the way I would want that done.

At this stage of the project, it would just be pretty hard to take in a new developer (or even an old one), unless they shared the exact same vision for the engine as me (and although I have much platonic love for Kithrater and Case, they do not share the same vision about how things should work in general).

The second point about Uniformity is that I don’t want FutureMUD branching off into a thousand different versions as each MUD gets their hand on it. That would mean that there would be a lot of work that only one MUD would get to benefit from, and it would also make it harder to distribute improvements made from my end. I have always said that if all those limited coding resources pooled their efforts, far more benefit could be felt by more people. I know that seems a little contradictory with my previous point, but I suspect I won’t feel that way FOREVER…

At the end of the day, I think I will eventually open source FutureMUD. There will come a day when I think it is more or less complete, and when someone else might come along with a compelling enough vision of how to develop it into whatever stage comes after the “Japheth Era”. At the very least, if I ever decide I’m no longer interested on working on FutureMUD, I will definitely release it. I’ll never leave the users with an abandoned closed source product, no matter what happens.

So You’re Not Looking For Developers?

Actually, I am still keeping an ear to the ground for people who might be interested. I’m just cautious about how I do it, and I don’t really have the time, energy or skills required to teach an amateur. But there are still things I don’t know how to do very well – in particular, I am not a web developer. I would really love to get a talented person out there who could help get up website tools / integrations for FutureMUD, as that’s outside my area of interest and probably too big of a distraction from the core engine for me to commit to time on at the moment.

As always, I’m also very interested in hearing about ideas from the people who would use the MUD Engine. Even bad ideas can inspire me to think about something I hadn’t considered (though by and large you guys have very good ideas).

But if you are some sort of wizbang .NET coder who has an amazingly similar vision to myself and you’re interested in contributing, well, perhaps hit me up and we’ll talk about it.

FutureMUD website now live

Hi everyone,

After many years of getting by with just the forum as an anchor for the FutureMUD community, we’ve now left the 1990s world of bulletin boards and entered the early 2000s world of websites, with blogs and such (scrolling marquees coming soon). In fact, we still have a forum (and also now have a wiki and a bug-tracker), which you can access in the menu at the top of this page.

I’m no professional website designer so please excuse the kinda stock feeling of this setup. Someday I may get around to hiring a professional graphic artist or something to give it a bit of a makeover, but in the meantime, a functional website will have to suffice.

I have decided not to migrate the old forums across here, and so you will need to re-register. I apologise for any inconvenience. Additionally, please bear with me as I get the new forums set up – I have more control over them now that they’re on this website than I did when they were on freeforums, so please feel free to make suggestions.