| User | Post |
|
11:00 am December 24, 2008
| tony gurnick
| | |
| New Member | posts 4 | |
|
|
hi, i am developing a mud codbase for my personal interest and development. i am finding it hard to find sites that talk about the process of doing this.
I am building this from scratch. So anyone with experience who just wants to vent frustration and developing a mud or is generous enough to do a high level walkthrough it would be much appreciated
chers tony
|
|
|
1:26 pm December 24, 2008
| Orrin
| | |
| Admin
| posts 139 | |
|
|
This is a pretty big topic so I have a few questions that hopefully will clarify what your intentions are and make it easier for us to give you some advice.
You say you are doing it for personal interest and development, however are you more interested in the coding and software design aspect of creating a mud codebase, or in actually creating a game?
Following on from that, are you wanting to create a generic codebase that could be used as a framework for any style of mud or do you want to create something with features specific to the type of game you envisage?
How far have along are you with this project already? What programming language or framework are you using?
At the highest level I would say a mud codebase needs a minimum of 3 components – connections, communications and persistence.
|
|
|
2:35 pm December 24, 2008
| tony gurnick
| | |
| New Member | posts 4 | |
|
|
A1: I am at this point interested in the coding and software design aspect – later i will be concerned with creating a game
A2: A generic framework
A3: I am at what you would call the Zero Point :) Language = Javascript.
|
|
|
2:44 am December 25, 2008
| Orrin
| | |
| Admin
| posts 139 | |
|
|
Ok Javascript is an interesting choice, but I guess it's as good a choice as any.
Well back to my 3 components that define a mud. This is going to be very basic so please don't be offended if I'm stating the obvious :)
1. Connections.
A mud is a multiuser game so your server will need to accept and manage connections from clients. Traditionally muds use the telnet protocol (well kind of!) but if you wanted to do something a bit different you could always define your own. This would probably mean your server was incompatible with existing clients, but you could write your own client instead. Infact if you were to write the server in actionscript it would lend itself rather nicely to a bespoke flash client.
You can probably find several socket libraries for javascript/actionscript so experiment and see what works best for you.
2. Communication.
It's no good having users connect if they can't communicate with each other or with the game world. Communication can be divided into input and output handling. You will need a system to process user input that reads from the socket and then parses the input according to your game logic. For output you need to be able to write text (or send other information) to each connected client.
3. Persistence.
A mud is more than a chatroom, it's a virtual world that persists when users disconnect. Whatever design decisions you make regarding rooms, objects, npcs etc. you will need a way to store this information on the server. You could design your own storage format, or make use of an existing flatfile schema or relational database. Some options would be SQL, XML or even some kind of ORM.
The above is all pretty obvious, but I think it's worth keeping the bare basics in mind when you start a project like this.
As for some practical advice, I would recommend that you start simple with a server that can accept connections and echo input. Once you have that working you can add in more advanced communications and then look at trying to persist your data. Start small but have a clear path in mind, and also try to adopt good habits with regards to programming style right from the beginning.
|
|
|
1:09 pm December 25, 2008
| tony gurnick
| | |
| New Member | posts 4 | |
|
|
CHeers for that. Yes all of it is very obvious. But as you say – good to have the basics written down.
Let me tell you where im at. Right now I am building this to run in the browser. Sure it will be multi user but for now just one player – me – interacting with the game.
eventually i plan to move it to the server. for now the browser will act as if it is my server.
I will not be persisting data for now but storing it on structures with in the game. sure when i stop the browser everything goes but im not concerned with that right now.
I have the input going. I could even post it here actually as it would work in any browser.
what im stuck on is what to do next.
Obviously the user types a command which results in an action. So question one is – traditionally – how do muds parse the command line and map it to a resulting action?
|
|
|
1:49 pm January 2, 2009
| Kleothera
| | |
| New Member | posts 6 | |
|
|
I do not want to discourage you and I AM sure that this is probably not the answer you are seeking, but why do you want to try to make a NEW game from scratch? I mean, the MUD community kind of suffers from the situation where there are so many startup MUDs (each with a small number of players) that its hard to find a decent new MUD in this ocean of works-in-progress. At the same time, many of these games fail to reach the point of viability because coding a really good game can take years. Building high quality rooms in it takes ANOTHER couple of years. And oh, ALL that is not going to take you very far without the RP-games-interacting non-corrupt staff. Most games fall on the wayside in the process and the community as a whole loses potential players in the process. My point is, are you absolutely SURE there isnt any game out there in the 100s of MUDs out there that you could rather support as a member of the staff instead of creating a totally new one? Personally (and that is purely MY choice), I opted to just support an existing game instead of trying to create my own which may or may not work in the long run.
I remember a really promising thread on what to look for in game design on TMS which may be useful. If can only find it… was very very comprehensive…
|
|
|
1:57 pm January 2, 2009
| Kleothera
| | |
| New Member | posts 6 | |
|
|
http://www.topmudsites.com/forums/mud-builders-areas/249-i-want-make-mud-can-anyone-help-me-tips.html
Was the thread I referred to earlier. This includes some other threads and articles of similar nature written in a number of other places. Hope you find this remotely useful!
|
|
|
3:04 pm January 2, 2009
| Orrin
| | |
| Admin
| posts 139 | |
|
|
I would still recommend you try to get multi user support going before you get too far along with other systems, as this is really the core of a mud. However to answer your question, there are several ways that you could parse commands and you might want to download some existing codebases to see how they do it.
A simple approach is to take the first word of input and compare it to your list of commands for a full or partial match, then call the function that handles the command and pass any remaining input as an argument.
I would also echo what Kleothera says – working on an established mud with other experienced people may be a better way to learn the basics.
|
|
|
8:56 pm January 4, 2009
| tony gurnick
| | |
| New Member | posts 4 | |
|
|
Hmm. just to be clear. I dont expect a working mud out of this. Well – lets just say not a publicy availible game. I am really doing it as an experiment for myself rather than anything else.
|
|