MUSHcode
From GwenWiki
Contents |
Gwen's MUSH Softcode Archives
To start is the softcode I've written, in Gwen's MUSHcode Archive. This includes code written entirely by me, code written by others, and my collection of World of Darkness globals and chargens.
If you take *any* code from this site, all that I ask is that you post back the fixes, updates, or changes you may need to make in order to get the code functional elsewhere. There's no single source out there on "how" to softcode. Each of us has to learn from the scattered notes found online, and by deconstructing and reconstructing other peoples' code creations. Please respect that I am providing a service to the MUSH community by hosting this archive and give back where you're able.
The coding guide that started it all is Amberyl's MUSH manual. Start with this if you want to learn softcoding.
Next is Linda Naughton's Practical MUSH Coding guide. It picks up where Amberyl left off.
Now that you're confident, look over a minimally-formatted lesson on MU Coding Security from Ian Elliot. He'll point out where you're likely to be sloppy about security.
History
One of the great joys of MUSH (to me, anyway) is that I was able to learn to program without having a programming background. When I began writing MUSH code, I was a young housewife, with a great deal of free time on my hands. I learned through a very long process of trial and error. The programming I do is called "softcoding", and refers to creating objects on the fly within the MUSH database structure. "Hardcoding" refers to writing scripts in more traditional programming languages (or modifying the TinyMUSH server) and requires more real-world programming training to accomplish. I'm no longer a housewife. In fact, I'm now an IT professional. However, I can honestly say that I would have never been on this career path if I hadn't been interested in MUSHing. Because I wanted to learn to code I "had" to learn how to set up server software (which meant setting up my own Linux box). This was before the time of Windows ports. It all grew from there.
I have switched between PennMUSH, TinyMUSH, and TinyMUX coding, the servers are almost identical on a softcode level. Some functions or flags carry different names, while some new ones exist in one server or the other. However, it takes a minimal amount of brainpower to switch from one to the other (after you know at least one). PennMUSH is a little tricker to go to after becoming comfortable with TinyMUSH/TinyMUX, but I'm sure people with young and flexible minds can do it.
Servers
It may be useful to install one (or more) servers on a home machine in order to work on code projects. This allows you to have access to wizard powers (assuming you're not wizzing on a live game), and going through the documentation files can teach you much about how the server works.
As a short illustrative example of that, I was asked to work on a PennMUSH game installing WoD globals and my edit of Didi's Chargen. For several weeks, I was frustrated by all of my TinyMUSH/TinyMUX code "breaking" on the Penn server. It was a laborious process to re-write it, but, it seemed that it had to be done. I finally installed Penn on my home machine, to give me more time to work on the porting project. While reading over the sample configuration file, I learned that there was a simple configuration change of a function compatibility setting that would allow my TinyMUX code to run on PennMUSH. I would have never learned this if I hadn't installed the server, myself.
- TinyMUX has both UNIX/Linux and 32-bit Windows native versions under development. Both are very stable. Includes the World of Darkness "Realms" flags, which vastly simplifies the wraith/changeling/umbra code for White Wolf MUX's. This server is still under regular development.
- TinyMUSH is a merged server that came from combining TinyMUX 1x and old TinyMUSH 2.2x, resulting in what many say is the best and most robust server MU server out there. It's certainly in open and friendly competition with TinyMUX.
- PennMUSH is a server that I've worked on only under protest. In the past I had agreed to help out a new WoD game that ran on Penn. I find it very confusing when compared to TinyMUSH 2.2, TinyMUSH 3.0, or TinyMUX 1 or 2. I also think it's something of a telling point that flatfiles don't travel from Penn to other servers, which shows just how much divergence there is. It's a nice enough server if you're not "set in your ways" like I am. It also has a reputation for strong security. There's nothing personal with my dislike of PennMUSH, I'm just not all that comfortable with the softcode.
MU Characters
I have characters on different MU*s from time to time. I started MUShing in 1994 and am still semi-active as a code consultant and player in 2011.
There's also a Wayback archive of my previous MUSHcode site. This old site hosted at Geocities was a long-time resource for people looking for help with MUSH code. RIP Geocities!
CrystalMUSH Planet Projects
I have characters on several different MU*s from time to time. However, the one MUSH I am completely loyal to is CrystalMUSH. CrystalMUSH has a wiki. I have been playing on CrystalMUSH since 1994 (class 2010 was going through adaption when I first began playing), and I have no plans of leaving :).
I run two planetary builder characters on the CrystalMUSH game. One is the Chancellor of the atmosphered moon, Verron IV. The other is the Prime Administrator, Yamarika, of the tropical planet Taal'en. Verron IV is a former military base now settled by a civilian population. It's an earth-gravity atmosphered moon circling a gas giant very similar to our own Jupiter, incredibly mineral and energy rich. Mining the variety of precious metals and minerals, radioactive elements, and gaseous materials is the primary of three industries (Mining, Geo-Physics, and Bio-Genetics). There's also a Medical Academy, exported table wines, and a thriving tourist industry. Much of this wealth has been invested back into the moon, in terraforming and structural improvements.
Taal'en is a tropical world with one habitable continent and multiple archipelagos. It only has two recognizable seasons, a rainy season (where precipitation falls each hour of the day), and a dry (where there is no precipitation at all). These seasons each occur twice within the planet's solar year. It exports a wide range of raw food materials and native crafts. Taal'en is a low-tech world by choice rather than necessity. This lack of technology is balanced by a wide range of beautiful landscapes, including rainforests, black sand beaches sheltering elaborate coral beds, limestone mountains and cave complexes, and grassy savannahs. The residents of Taal'en are known for their exotic, though still humanoid appearance. Dark green skin, green hair, and silvery-blue eyes with slitted pupils are all the marks of a true native. There is a fully-integrated Earth-norm humanoid population as well. The "greenies" tend to get along well with anyone, and racial flare-ups are rare.
Both planets are under constant reconstruction and updating. My goal is to make each of them more elaborate than any other planet in the game, including Ballybran, if possible. I have project lists for both coders and descers.
Update as of August, 2011. Yes, I'm still accepting completed projects. Elite cutter parts are not available at this time, as staff refuses to issue any more cutters.
Sandbox Game
I have a fictional setting I've been building in my spare time (for well over ten years) called "NorthHampton By Night". It's mean to be a crossover World of Darkness game. I don't know when it will ever be opened as a live game. In the meantime I use it as a sandbox for code testing and chatting with friends. For now it's hosted for free at the FrostMUD service run by Matt Swanner. Check out FrostMUD Hosting here.
