View Single Post
Old 08-09-2012, 12:39 PM   #25
camlorn
Member
 
Join Date: Aug 2011
Posts: 144
camlorn is on a distinguished road
Re: MUD Creation/Coding Help

This may or may not be a double post; my internet browser is being flaky:

It sounds like, to me, that you've only got experience with html--this is fine, if you're willing to accept the vague answers, but not if you want specific ones. You're getting vague answers because you're asking vague questions.

I know coding, not well, but I do know it. Lost souls is an example of impressive coding, by which I mean highly, highly complicated. If you don't know coding at all, you're nowhere near being able to even build an area on lost souls--what the player sees and how lost souls internally represents areas are really quite different (this is because of the lot of things you can do there you can't do elsewhere--walk through walls, for example). Lost souls showed me how much I don't know about coding; when someone tells me I'm wrong, I remind myself of my week or so as a Lost Souls dev and how that went because I thought I could code (and I could, just not well enough for that--now I know that there's better coders and I'm better for it etc, etc, end lecture). You can probably get the rooms set up through mimicry, but that's probably as far as you'll get before you start getting lost.

If you're having trouble connecting to your own locally hosted mud, i.e. not knowing that you connect to your mud with your mud client, you're not ready. You need to pick a programming language, any programming language at all, and go learn that from tutorials--start small, maybe some guess the number games or tic tac toe using the console (this is how I started). Then come back and ask the question again.

Building on anything that ultimately derives from diku (godwars, circle mud, the list is too long to list here, really) does not require coding knowledge. Building on anything lpmud, save dead souls, does. Dead souls is the exception here, as until you want special functionality, you can use the quick creation stuff, which lets you set almost everything. You can't create full-fledged quests with interactive mobs or anything without coding (this holds true for diku derivatives too).

If you want to be the head admin, the person who runs and administrates everything and can say "close the mud now", you need to learn linux probably. There's not much of a way around this, unless you have the know-how to set up port forwarding and a home pc for hosting; not particularly hard, but a bit overwhelming if you don't know how to change settings on your home router, and especially difficult if you don't know why you need port forwarding in the first place, the difference between dynamic and static ip addresses, and why you may or may not need a dynamic dns.

If you want to actually be successful, you need to get a coder or code yourself--most coders won't come on board until there's players because you get most coders from your players, but you might get lucky if you ask here or on tmc. Most people won't come on at the beginning, period, because you might get bored and stop any day. You won't get players, you really won't, unless you have something to offer besides areas: this generally means new classes or spells/skills, or entirely unique combat, or something that none of us have seen before because it doesn't exist yet, but all of this requires coding.

You do know that areas can be removed as well as added? You can get rid of the default dead souls areas, if you want, and build your own. You need to build your own first, you just leave the dead souls one inaccessible (it contains a lot of the admin tools cleverly disguised as rooms--my particular favorite was the network snooping thing, because that's how I finally managed to begin to understand the i3 spec). Your immortals will need to be able to get into those areas, since they're also the examples of how to do things, but if you're really dead set on removing them, you can probably do so--expect much heartache. The players won't know the difference between exists and can't be reached and nonexistent, and you'll really need them.

In diku and derivatives, you can get rid of everything, including the home city (usually midgaard). But you have to reassign the recall room and a few others.

Judging by your first post, you don't have the language. The problem here is that you're trying to talk about things you don't know yet, and thus you don't even have the vocabulary to ask the question. There's people like KaVir who know this stuff; I'm somewhere between them and you (unfortunately, probably closer to you), but you can't get good answers until you know how to ask a good question--How do I start a mud is vague, and thus the vagueness of the answers.

Get a position somewhere and build for a while. Muds can be a path to learning to code, but you have to understand muds well first. I recommend learning to code first, and then learning to code muds. Alternatively, become an immortal somewhere and learn muds well, and then learn to code.

If c/c++ scares you away, there's a lot of the interactive fiction stuff. I'm just throwing this out there as it gives you a starting point--it can't be used to make muds, but it can teach you about room-based puzzles and such, and you'll learn to code in the process. Avoid inform 7--it's the easiest, but the knowledge doesn't transfer to anything else: it's highly specific model teaches inform 7, not coding in general--but learning inform 6 or tads will teach you what programming is, as compared to html stuff, and you'll get games in the process. Maybe not muds, but everyone starts somewhere, and this is, perhaps, the closest thing to mud programming you can do when learning to program. Tads is the closest to actual programming, so perhaps use that, and follow the books on the tads site that teach non-coders how to use it.

note aimed mostly at programmers: inform 7 and inform 6 are wildly different--to those programmers on this thread, inform 7 compiles to inform 6. It, because it knows that you're working in a specific set of constraints--everything is in something else, the largest unit of movement is the room, we pause everything and wait on a command every turn...--allows you to write things like this:

The kitchen is a room. "You are in the kitchen, with all sorts of fire hazards. There's the sparking oven, and for some reason the dishwasher too, and you can't forget the sharp knives." The kitchen is south of the living room.

Every turn when the player is in the kitchen:
Say "You flinch as the stove continues to smoke, perhaps you should head for water?".

And you get a whole bunch of machinery for free--get, drop, get, examine, movement, a rather huge list.

It's really quite impressive, imho, but it won't teach coding, as it teaches the user to specificize, for lack of a better word, rather than generalize--you're not learning what a program is, but what English inform 7 can understand to describe your game, and what english it can't. It ties you to itself, and makes moving away harder than it otherwise would be--java will still look impossible. If you already know programming, go for it though, as it really is neet.

Inform 6 and tads both highly resemble c/c++/java/fill-in-the-object-oriented-language, with features to make writing this type of game possible--there's nothing stopping you from writing a fancy calculator, for example, save that it runs in an interactive fiction interpreter.

Note to OP: try looking up: telnet, compiler, lpc, sockets, c++ tutorial, java tutorial, etc...and maybe something will click. You can learn lpc from an lpc tutorial, but I figure you can figure that out; I'd recommend learning a programming language that's not specifically for muds so you can see what is being done for you and understand the scope of what you want to do. Starting with one of the basic variants (freebasic is still actively developed, and there's a lot of really good documentation floating around under the guise of qbasic and quickbasic tutorials) is also a good choice; the knowledge of the design patterns will stay with you. A good programmer can learn new languages in an afternoon; once you've learned one, the concepts generally transfer to the next.

Okay, I'm done with this giant post.
camlorn is offline   Reply With Quote