Hi everyone, I am very happy to announce that FutureMUD now officially supports Linux as well as Windows. There’s no reason to believe it also wouldn’t run on MacOS now that I have fixed the Linux issues but I have no MacOS machines to test it on. This has been a very long road getting here – firstly the switch over to MySQL from SQL Server, with all its challenges and differences, as well as getting FutureMUD to work properly under Mono.
As it turned out, there must be some sort of bug and/or change between Mono 3.2.3 and Mono 3.10 which was causing the problems I was having. Mono 3.2.3 was the highest version that I could get working on both Windows and Fedora (which is what the server for this website runs on). This is because the Mono team made a breaking change in one of their mono updates that required a core kernel component to be updated to a later version, something that Fedora officially doesn’t support. Having FINALLY isolated that this was in fact the problem, I created a new droplet running Ubuntu and installed the latest version of Mono, and am happy to report that FutureMUD now runs on Linux! I was able to get it to boot, connect to it remotely and play around a little, although I did find out that one of the settings controlling email addresses in FutureMUD causes a problem on Mono because it is not properly implemented, so I’ve had to disable support for international email addresses (i.e. email addresses with unicode characters in them).
This was a relatively recent support change in .NET and has not come across to Mono as yet, so I can’t use it if I want emails to work on Linux. It shouldn’t affect most users, and if it does, they will simply need to sign up for a different email. I am running a FutureMUD dev server now on my DigitalOcean droplet, currently just on the $5 a month version. I suspect that this would be enough for most MUDs to host a website and the MUD while in the development / early stages, but if you get popular enough to get more than a few users, you’d probably need to go to the $10 a month one.
I think this is a fairly good outcome, FutureMUD should be cheap and easy to host. In fact there were only four things I needed to do to get FutureMUD running on the droplet (assuming you’ve already got your files there):
- Install Mono – I did this on Ubuntu with apt-get install mono-complete
- Set up your firewall to allow connections through the port you want to use. This was a relatively simple command in UFW which comes with Ubuntu by default – e.g. ufw allow 4000/tcp
- Edit the file Connection.config in your FutureMUD folder to the IP address of your server (can be found with ifconfig) and the port you want to use
- Set up a script to launch FutureMUD with your database details as command line arguments (I will ship a script with FutureMUD, you’ll just have to insert yours in there)
There is the distinct possibility that there are additional bugs added now by the reliance on Mono. Mono is not always a complete implementation of .NET, and there’s a possibility that some obscure piece of code calls upon something that isn’t supported in Mono. I won’t know about it until we run into it, so I’ll just have to test test test – but they should be MOSTLY easy to fix once found as I’m not really using anything fancy at all in FutureMUD library wise other than the Entity Framework (which is where I’ve found most of the Mono compatibility problems so far). We march ever closer to an inevitable Alpha. I’m very excited by it all.