Well, I'll add my 2 cents.
Quote:
1. Is it worth my time to invest in creating my own MUD server? What are the pros & cons of using a pre-designed server vs. creating my own? If I'm rusty in C++, exactly how difficult would it be for me to alter a predesigned source code?
With some C/C++ knowledge you should have little difficulty getting up and running with ROM, SMAUG, or one of the many other servers out there. If your ideas fit well with the existing mechanics of a server (or could with a little effort) then I see no reason to write it from scratch. However, if your goal is to make the game entirely your own and learn more about computer programming along the way, then MUDs make excellent hobby projects for learning about a variety of tasks (basic data structures, databases, networking, even threading).
Personally, I've always enjoyed using custom MUD servers as small personal projects to help teach me new things in programming. To this day I work on a MUD server in my spare time if only to have an excuse to work with Lua and learn more about embedding/extending languages. Once you know a bit about programming then making a basic/small MUD server can also be a decent way to learn the in's and out's of a new programming language.
Quote:
2. What codebases and languages are advisable for the server and the MUD itself? What's the current "state-of-the-art" design, and what's the most reliable fallback? Is LPC dead?
I've never been in the LPC loop, but it has always seemed to me that it is about as dead as Latin.
As far as languages go, I would recommend using Python if you are newer to programming. If you know C/C++ then you can certainly go that route. Personally, I like writing C++ (I know, I' know, I'm also probably insane), so I like to mix C++ with various scripting languages. You could also hack the entire thing together in Ruby or Lua, but both of those might be a little more difficult for you. Ruby is one of my all time favorite languages, but it requires you to think a little differently about programming.
Quote:
3. My old MUD used a lot of archaic coding that - according to modern articles - is very inflexible. That being the case, what should I look for to increase the game's flexibility?
Most MUDs are written in systems languages that are compiled and run. This means every time you want to integrate new changes you need to restart the game. This is inconvenient and annoying sometimes (depending on how your workflow is), but you can get around it with techniques like copyover/hotbooting. This allows you to restart the game while maintaining your list of connections. You can also obtain a lot of flexibility through good, dynamic design techniques. However, with systems languages (like C/C++) there can be a lot of work to maintain large degrees of flexibility.
One more modern concept is to have your core components written in C/C++ and to outsource game logic to a scripting language (like Lua or Python). This is nice because the stuff that tends to change a lot (game logic) can be updated on the fly and there is no need to reboot the game.
However, unless you are expecting a lot of connections or complex game mechanics, you could just opt to make the entire game in a scripting language (Python, Ruby, Lua). With the correct techniques you could easily set up a system similar to that described above (having scripts specifically for game logic that are separate from the rest of the base) without the need to handle two different programming languages.
What is best depends on the specs of your game and the host you plan to use. In the end there tends to be little reason to not do all of it in a scripting language though. My only exception is typically for learning purposes.
Quote:
4. What's the easiest way to create a MUD (using new design and language) that I can host on my own computer for my own improvement and design before making it available to anyone else? Are there any specific programs that I should be downloading (aside from MUD clients) to help me in this task? (All of my old work was done in Notepad and Ed().)
You have a couple of options in terms of running/working on the server locally. Your best option, of course, is to run Linux. Ubuntu is a user friendly distro that can be easy to learn with. Linux is also free, so there is no cost to download it and play around.
If you run Windows and would rather not give it up then you can use Cygwin, which emulates a Linux environment on Windows. This is generally a less than ideal option given the need for Cygwin specific updates to packages and limited access to optional libraries. A far better option is to run your own virtual machine using something simple like VirtualBox. Using VirtualBox you can run Linux (say, Ubuntu or Debian) on top of Windows. You can share folders between the host system and guest system, which makes editing files convenient if you have a favorite code editor on Windows. You can also bridge your network connection so you can connect locally and across the net.
Quote:
5. Are there any superior websites (besides this one) that offer tutorials or examples of new MUD creation, codebases and servers? Most links that I've found lead to Error 404's.
A lot of the old resources have indeed gone down. However, MudBytes (http://www.mudbytes.net/) is very much alive. They have forums, a MUD list, code repository, and more.
Quote:
6. How am I doing on keeping it brief? ;)
About as good as I am :P |