Skip to main content
GameDev.net gamedev.net
🔒 Locked

Muds?

Started by xanin Feb 17, 2007 at 3:34 PM 29 replies 5.7k views
Original Post
xanin
xanin
I'm just curious, how many of you play a mud or run a mud? I jointly run one with a friend and before that I played it under the previous administration for a few years.
ArchWizard
ArchWizard
I used to play Zynna back when it was called Zhing!. Coincidentally, I spent a tiny portion of this morning thinking about playing again to see what's new.
"Sir, it is pie." - Mark TwainThe ArchWizard's site.
Ravuya
Ravuya
I wrote a MUD engine several years ago, and deployed it for a few weeks before becoming bored with it and taking it offline.

I probably still have the source kicking around.
Arek the Absolute
Arek the Absolute
I have played MUDs in the past and I wrote my own MUD server a while back. Presently one of my many programming projects is a MUD along with a team of other people.
-Arek the Absolute"The full quartet is pirates, ninjas, zombies, and robots. Create a game which involves all four, and you risk being blinded by the sheer level of coolness involved." - Superpig
Charli
Charli
Admin and time waster on
http://cryosphere.net. We're shiny.
I am a spoon!Spr0w!
Mithrandir
Mithrandir
I'm currently working on a C# MUD. Still in the second week of programming though, so I don't have much to show for it besides the network engine.


I'm using an asynchronous socket model to support many connections, but I ended up creating a demultiplexer for the work thread in order to avoid race conditions and deadlocks.

For the future, I think I may end up creating some sort of world segmentation system so I can create N worker threads, where each one will work on a single segment of the game. However, the current network engine can handle 500 spamming connections on a dual core machine before the worker thread starts falling behind real-time processing, so that may be something far in the future.


It's kind of funny that even with 500 connections, my CPU usage was peaking at 55-60% (50% for the core that the worker thread was running on, and 5-10% for the asynchronous sockets in the threadpool).
This is my signature. There are many like it, but this one is mine. My signature is my best friend. It is my life. I must master it as I must master my life. My signature, without me, is useless. Without my signature, I am useless.
WolfDenProductions
WolfDenProductions
I used to run a mud...long time ago...called Battle of the Immortals...aka BOTI.


yeah, that was a while ago.
xanin
xanin
Interesting. I'm honestly surprised to see any responses on this at all. For those of you who are working on your own, are you planning on setting it up for the public and actually running it, or is it just an amusing exercise to build an engine and leave it at that?
Mithrandir
Mithrandir
Quote:
Original post by xanin
Interesting. I'm honestly surprised to see any responses on this at all. For those of you who are working on your own, are you planning on setting it up for the public and actually running it, or is it just an amusing exercise to build an engine and leave it at that?


I honestly have no idea. It's just something that I've always wanted to do, and for some reason I feel motivated to do it at this time, even though I know the concept is hideously out of date.

However, I have been designing the engine with possible future graphical additions in mind.
This is my signature. There are many like it, but this one is mine. My signature is my best friend. It is my life. I must master it as I must master my life. My signature, without me, is useless. Without my signature, I am useless.
johnhattan
johnhattan
Quote:
Original post by Mithrandir
Quote:
Original post by xanin
Interesting. I'm honestly surprised to see any responses on this at all. For those of you who are working on your own, are you planning on setting it up for the public and actually running it, or is it just an amusing exercise to build an engine and leave it at that?


I honestly have no idea. It's just something that I've always wanted to do, and for some reason I feel motivated to do it at this time, even though I know the concept is hideously out of date.

However, I have been designing the engine with possible future graphical additions in mind.
Speaking of which, how tough do you think it would be to do an avatar-chat front-end, ala the Unity avatar chat at http://www.moock.org/unity/uchatavatar/

Seems like it'd just be a matter of sending "hidden" messages like "user Zippy moves to x=100 y=50", then also sending everyone's position information to clients who join the room.

Just musing.
(my byline from the Gamedev Collection series, which I co-edited) John Hattan has been working steadily in the casual game-space since the TRS-80 days and professionally since 1990. After seeing his small-format games turned down for what turned out to be Tandy's last PC release, he took them independent, eventually releasing them as several discount game-packs through a couple of publishers. The packs are actually
BradDaBug
BradDaBug
Quote:
Original post by Mithrandir
I'm currently working on a C# MUD. Still in the second week of programming though, so I don't have much to show for it besides the network engine.

Will you be writing anything about it? Lessons learned since Mud Game Programming or something like that?

I like the DARK layout!
Mithrandir
Mithrandir
Quote:
Original post by BradDaBug
Quote:
Original post by Mithrandir
I'm currently working on a C# MUD. Still in the second week of programming though, so I don't have much to show for it besides the network engine.

Will you be writing anything about it? Lessons learned since Mud Game Programming or something like that?


Possibly.


Here are some of the biggies so far, from BetterMUD 1.0 to 2.0 (the one I'm working on):

* Integrating Python into C++ was a disaster. I should have done the whole thing in either Python or C++, or used a framework that is designed for integrating different languages together (ie: .NET)
* Using polled sockets is hideously inefficient, and it only takes a little more work to implement a much more scalable asynchronous socket server
* Trying to support Linux and Windows at the same time was pure folly; I spent more time working out quirks on both systems than I did actually making the game


I'm sure there's more that I'm not thinking of right now; it's been a few years since I touched BM1 and I've forgotten a lot about it.
This is my signature. There are many like it, but this one is mine. My signature is my best friend. It is my life. I must master it as I must master my life. My signature, without me, is useless. Without my signature, I am useless.
Mithrandir
Mithrandir
Quote:
Original post by johnhattan
Quote:
Original post by Mithrandir
Quote:
Original post by xanin
Interesting. I'm honestly surprised to see any responses on this at all. For those of you who are working on your own, are you planning on setting it up for the public and actually running it, or is it just an amusing exercise to build an engine and leave it at that?


I honestly have no idea. It's just something that I've always wanted to do, and for some reason I feel motivated to do it at this time, even though I know the concept is hideously out of date.

However, I have been designing the engine with possible future graphical additions in mind.
Speaking of which, how tough do you think it would be to do an avatar-chat front-end, ala the Unity avatar chat at http://www.moock.org/unity/uchatavatar/

Seems like it'd just be a matter of sending "hidden" messages like "user Zippy moves to x=100 y=50", then also sending everyone's position information to clients who join the room.

Just musing.


Probably not tough at all. BM2 works right now by using customizable "Command" objects; they all have a chain-of-notification so they know who to notify when they are executed, so all you'd need to do is program a new command to handle sub-room movement. Since all entities in the game are dynamic objects, you can easily tack on new variables to the objects that are relevant only to the new command.

I could program something like this for Phase 2 or 3 of the project.
This is my signature. There are many like it, but this one is mine. My signature is my best friend. It is my life. I must master it as I must master my life. My signature, without me, is useless. Without my signature, I am useless.
Don Carnage
Don Carnage
Quote:
Original post by Mithrandir
It's kind of funny that even with 500 connections, my CPU usage was peaking at 55-60% (50% for the core that the worker thread was running on, and 5-10% for the asynchronous sockets in the threadpool).
Interesting. Can you get cache miss rates for the two cores? It seems likely that a worker thread would have much better locality than a pool of threads.
Now optimize your worker thread so it only gets 1% cache misses! [grin]

It is I, the spectaculous Don Karnage! My bloodthirsty horde is on an intercept course with you. We will be shooting you and looting you in precisely... Ten minutes. Felicitations!
Extrarius
Extrarius
Quote:
Original post by Mithrandir[...]It's kind of funny that even with 500 connections, my CPU usage was peaking at 55-60% (50% for the core that the worker thread was running on, and 5-10% for the asynchronous sockets in the threadpool).
You might find the table in Sample Chapter from Network Programming for Microsoft® Windows®, Second Edition by Anthony Jones and Jim Ohlund interesting.
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
xanin
xanin
Quote:
Original post by Zeraan
I'm currently playing dragon swords. It's a fun medieval RPG. Newbie-friendly too!


400 mortal levels? How does that not begin to grind? Or is level advancement fairly rapid, in which case one must ask if there are things to do besides gain levels - involved crafting / political systems / etc?
Ravuya
Ravuya
A lot of MUDs, unlike modern MMORPGs, have actual interesting things to do that give you experience points and thus new skills.

Retromud, for example, gives you experience points for exploration -- you can clear a few dozen levels just by travelling between rooms and enjoying the sights (it has over half a million rooms). Discworld has some experience points for speechcraft, and Materia Magica is primarily combat-oriented but has a bunch of experience points for misdirection and chicanery.
Hedos
Hedos
I started a MUD in Lisp. It never reached much past the chatroom stage, though :)
Mithrandir
Mithrandir
Quote:
Original post by Hedos
I started a MUD in Lisp. It never reached much past the chatroom stage, though :)


Most don't, heh.

:P
This is my signature. There are many like it, but this one is mine. My signature is my best friend. It is my life. I must master it as I must master my life. My signature, without me, is useless. Without my signature, I am useless.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.