[Home] [Downloads] [Search] [Help/forum]

Gammon Software Solutions forum

See www.mushclient.com/spam for dealing with forum spam. Please read the MUSHclient FAQ!

[Folder]  Entire forum
-> [Folder]  MUDs
. -> [Folder]  MUD Design Concepts
. . -> [Subject]  Why no Ncurses MUD servers?

Home  |  Users  |  Search  |  FAQ
Username:
Register forum user name
Password:
Forgotten password?
(New message)
Subject: Why no Ncurses MUD servers?
Name:
Your forum user name.
Register forum user name
Password:
Your forum password.
Forgotten password?
Message:
Message to be posted (in English, please).
Forum codes:
Check this if your message uses 'forum codes' or templates (auto-detected for new posts).
Forum codes Templates

Save this message ...


Subject review (reverse sequence)

Pages: 1 2  

Posted by Twisol   USA  (2,229 posts)  [Biography] bio
Date Sat 09 Oct 2010 04:46 AM (UTC)  quote  ]
Message
The sheer number of timers and triggers can certainly have an effect. I know people who have used a popular combat system in Achaea, and their system slows down perceptibly. Now imagine just ten players using that system, alongside everything else the game juggles.

Text processing is easy. Managing a game world, regardless of how it looks to the user, is less so.

'Soludra' on Achaea

Blog: http://jonathan.com/
GitHub: http://github.com/Twisol
[Go to top] top

Posted by Worstje   Netherlands  (867 posts)  [Biography] bio
Date Sat 09 Oct 2010 04:22 AM (UTC)  quote  ]
Message
I think the point people are making that a text-based game does not necessarily have to be text-only. Graphical doodahs can make a game that fully consists out of text a lot more attractive to play by adding the bit of window-dressing that appeals ones pleasant tastes.

If text was _ALL_ that mattered, we would not have programs like word with bolding, underlining, sizing, headers and whatnot. Letters would still be made with a single font on a single size.

A game is more than the text it is composed of. :)
[Go to top] top

Posted by Jasonius   (12 posts)  [Biography] bio
Date Sat 09 Oct 2010 04:01 AM (UTC)  quote  ]
Message
LezChap said:

Exactly. Distribute the processing power out for the 10/20/100 (however many your chosen mud hosts) players out to the players and their clients, instead of forcing the server to do it all.

Basically, it's what just about every online game I can think of these days does.

For anything but a text MUD, I'd agree. Obviously, the server can't be drawing heavy graphics for hundreds of players. But text is easy to process and CPUs have come a long way since 1990.

I just finished compiling tbaMUD, which used to be Circlemud (I'm feeling nostalgic - played a lot of Circlemuds). I'll see if I can staple a Perl Curses front-end onto it this weekend, just for fun.
[Go to top] top

Posted by LezChap   (36 posts)  [Biography] bio
Date Sat 09 Oct 2010 02:59 AM (UTC)  quote  ]
Message
Twisol said:

Jasonius said:
Triggers and timers, I suspect, would be fairly trivial to implement. Saying "those belong on the client side" seems arbitrary.

Many MUDs don't want the user to automate anything, and they would need to be heavily limited anyways in order to keep the server load under control. It's possible, but (a) does the server want it, and (b) can the server handle it?


Exactly. Distribute the processing power out for the 10/20/100 (however many your chosen mud hosts) players out to the players and their clients, instead of forcing the server to do it all.

Basically, it's what just about every online game I can think of these days does.

And it's generally cheaper to host and maintain.
[Go to top] top

Posted by David Haley   USA  (3,881 posts)  [Biography] bio   Moderator
Date Fri 08 Oct 2010 11:01 PM (UTC)  quote  ]
Message
Quote:
I guess the question is "does the mud engine have to do everything a client can do, or does it just have to do enough to not chase users away by greeting them with a hideous wall of text?

Well, no, your question was: why do people bother with clients that don't support ncurses? The answer is that these clients do things that would be difficult to do server-side (or that the server simply would not want to do).

It would be rather silly/dangerous for a server to give players more or less arbitrary scripting -- even if sandboxed. For starters, it provides a perfect vector for DoS attacks, even if people have accidental infinite loops.

If the question is: can the current situation be improved? The answer is of course yes: I think that's why Nick has been doing all that he's been doing.

David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone

http://david.the-haleys.org
[Go to top] top

Posted by Nick Gammon   Australia  (18,772 posts)  [Biography] bio   Forum Administrator
Date Fri 08 Oct 2010 10:41 PM (UTC)  quote  ]
Message
Jasonius said:

Other than maybe timers, those are things that *everyone* wants. Why do so many servers make me do it myself? It's the principle, man!


Oh well, good point! I look forwards to seeing the prototype. :-)

- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

Posted by Twisol   USA  (2,229 posts)  [Biography] bio
Date Fri 08 Oct 2010 10:34 PM (UTC)  quote  ]

Amended on Fri 08 Oct 2010 10:35 PM (UTC) by Twisol

Message
Jasonius said:
Triggers and timers, I suspect, would be fairly trivial to implement. Saying "those belong on the client side" seems arbitrary.

Many MUDs don't want the user to automate anything, and they would need to be heavily limited anyways in order to keep the server load under control. It's possible, but (a) does the server want it, and (b) can the server handle it?

'Soludra' on Achaea

Blog: http://jonathan.com/
GitHub: http://github.com/Twisol
[Go to top] top

Posted by Jasonius   (12 posts)  [Biography] bio
Date Fri 08 Oct 2010 10:26 PM (UTC)  quote  ]
Message
Nick Gammon said:

*Speedwalks
*Triggers
*Timers
*Aliases

Other than maybe timers, those are things that *everyone* wants. Why do so many servers make me do it myself? It's the principle, man!

They're also easy to implement in-game. Lots of muds have aliases and speedwalks. Triggers and timers, I suspect, would be fairly trivial to implement. Saying "those belong on the client side" seems arbitrary.

Quote:

*Logging
*scripting

Granted, those are tougher. I guess the question is "does the mud engine have to do everything a client can do, or does it just have to do enough to not chase users away by greeting them with a hideous wall of text?

Quote:

I don't want to discourage someone who wants to enthusiastically advance MUD development. But I can't help thinking that something targetted at the gadgets available in 2010, rather than those in 1980, is going to be more rewarding.

That's a valid point. On the other hand, a certain amount of nostalgia is sort of the point. I can't say I've ever found myself wanting to play a MUD on my iPhone, or wishing I had a high-res graphical map instead of dashes and pipes.
[Go to top] top

Posted by Twisol   USA  (2,229 posts)  [Biography] bio
Date Fri 08 Oct 2010 10:15 PM (UTC)  quote  ]
Message
Nick Gammon said:
*Logging - I don't see how you can usefully log a window which is randomly updated with cursor addressing. So your logs are gone.

Server would do it. Probably could provide downloads.

Nick Gammon said:
*Speedwalks - how would something like PuTTY let you enter "#5n 3s 2w" and convert that into directions?

Server would do it; doesn't Aardwolf have something like this?

Nick Gammon said:
*Triggers - since you are moving the cursor all around the place how do you make triggers work? And without triggers you can't detect when in combat etc.

*Scripting - decision-making like drink a potion when health is low. As far as I know PuTTY and other VT100 clients aren't going to offer that.

*Timers - doing something periodically. Again I think you lose that.

Server could conceptually do these things with some kind of text-based interface, though it's unlikely they'd want to expose that sort of functionality.

Nick Gammon said:
*Aliases - without a custom client, you basically have to type everything in longhand.

Server can do it. Achaea has a SETALIAS command that lets you create shorhands. There's no preprocessing - it's just a straight prefix translation - but it works.

Nick Gammon said:
I don't want to discourage someone who wants to enthusiastically advance MUD development. But I can't help thinking that something targetted at the gadgets available in 2010, rather than those in 1980, is going to be more rewarding.

Insert random plug for long-shot web-client project here. :D

'Soludra' on Achaea

Blog: http://jonathan.com/
GitHub: http://github.com/Twisol
[Go to top] top

Posted by Jasonius   (12 posts)  [Biography] bio
Date Fri 08 Oct 2010 09:52 PM (UTC)  quote  ]
Message
David Haley said:

But honestly -- and of course this is just IMHO -- I think you're missing the point here. If you look at what Nick has done, it goes far beyond simply making a nicer text interface. He has added modern graphical interface elements to the game.

I dunno, maybe I'm just cranky because I feel like playing MUDs, and there's only a handful that come with a reasonably preconfigured client and I happen to not really like those particular ones.

Besides, for me personally, the only reason I use a MUD client is to do the sorts of things you could easily do in curses. Put tells over here, overhead map up there, useful status bar down here, and go nuts.

If the server does it in all, I don't have to care about clients. Doesn't matter if I'm visiting my mom or sitting in a library, just telnet and play.

Quote:

And if it's not that hard, and you are indeed right about all of this, perhaps you could show a proof of concept

I accept your challenge ;)
[Go to top] top

Posted by Nick Gammon   Australia  (18,772 posts)  [Biography] bio   Forum Administrator
Date Fri 08 Oct 2010 09:50 PM (UTC)  quote  ]

Amended on Fri 08 Oct 2010 09:52 PM (UTC) by Nick Gammon

Message
Jasonius said:

Don't get me wrong - MUSHclient and the stuff Nick does with it is cool - as cool as anything I've seen in MUDding.


Thank you! Appreciate it.

Jasonius said:

But assuming MUDs have to be played with a MUD client just doesn't seem like the right way to look at design.


Well, Web pages are looked at with a web browser are they not? I don't see the real design issue here.

It's an interesting idea, and I can see the advantage of being able to play your MUD on any platform that supports the terminal addressing. However bear in mind that MUD clients have evolved over the years to provide things people find useful. For example:


  • Logging - I don't see how you can usefully log a window which is randomly updated with cursor addressing. So your logs are gone.

  • Speedwalks - how would something like PuTTY let you enter "#5n 3s 2w" and convert that into directions?

  • Triggers - since you are moving the cursor all around the place how do you make triggers work? And without triggers you can't detect when in combat etc.

  • Scripting - decision-making like drink a potion when health is low. As far as I know PuTTY and other VT100 clients aren't going to offer that.

  • Timers - doing something periodically. Again I think you lose that.

  • Aliases - without a custom client, you basically have to type everything in longhand.


So it can be done, I don't know if it is worth the effort.

My other point is that if you design a server to serve up transactions rather than formatted text, then it isn't too big a reach to make a client for, say, an iPhone or iPad. The "portable client" might take something like a chat transaction and just flash an "incoming message" icon (like an email notification) which you click on to read when you are ready. And the health information might update a small discrete bar at the bottom of the screen.

I don't want to discourage someone who wants to enthusiastically advance MUD development. But I can't help thinking that something targetted at the gadgets available in 2010, rather than those in 1980, is going to be more rewarding.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

Posted by David Haley   USA  (3,881 posts)  [Biography] bio   Moderator
Date Fri 08 Oct 2010 09:39 PM (UTC)  quote  ]
Message
Jasonius said:
In my experience, learning TechnologyX in order to provide obvious features Y and Z is *more* work than just coding up Y and Z yourself.

I don't follow your point here. It's not ok to learn MUSHclient miniwindows but it is ok to learn curses, and it is ok to force all these server developers to learn it too?

Jasonius said:
Don't get me wrong - MUSHclient and the stuff Nick does with it is cool - as cool as anything I've seen in MUDding. But assuming MUDs have to be played with a MUD client just doesn't seem like the right way to look at design.

If you define a MUD as something that should be playable with a dumb terminal that supports full cursor control, then your statement is, more or less, tautologically true. It becomes a question of definitions at this point: the problem has been defined away.

But honestly -- and of course this is just IMHO -- I think you're missing the point here. If you look at what Nick has done, it goes far beyond simply making a nicer text interface. He has added modern graphical interface elements to the game. This is more than even ncurses will give you; for instance, ncurses certainly won't give you icons and other graphics, or dragging graphical elements around the screen. It won't give you rich menu support.

I guess I don't really know what you're trying to argue here. Why aren't there more such servers? Because there's not much point in having them, and because they miss part of the point.

For example, you asked earlier: "how hard could possibly it be <...> to let the user decide which window widget shows their inventory?" Well, in you force ncurses only, then suddenly it becomes very hard to show inventory in a floating window like Nick provided, no?

And if it's not that hard, and you are indeed right about all of this, perhaps you could show a proof of concept where this all actually works, and where plain telnet does in fact provide the same experience as a full MUD client. I'm sure many people would eat their hats if you could offer the entire experience, including scripting, without anything more sophisticated than telnet.

David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone

http://david.the-haleys.org
[Go to top] top

Posted by Jasonius   (12 posts)  [Biography] bio
Date Fri 08 Oct 2010 09:38 PM (UTC)  quote  ]
Message
Twisol said:

I can understand this if it's implemented client-side, but how does a normal dumb-terminal like Windows Telnet understand the commands an ncurses server sends? Windows Telnet doesn't support VT100 as far as I know, unless you emulate the display using the Console Functions documented at MSDN.

It does VT100, ANSI, and a couple others. I just telnetted into my Linux box using the 'telnet' command at a command prompt on Windows 7 and ran MUTT just fine. Had to manually set VT100 mode though.
[Go to top] top

Posted by Twisol   USA  (2,229 posts)  [Biography] bio
Date Fri 08 Oct 2010 09:11 PM (UTC)  quote  ]

Amended on Fri 08 Oct 2010 09:13 PM (UTC) by Twisol

Message
Jasonius said:
(N)Curses is just an API to manipulate ascii terminals, such as VT100 (among many others). It tries to be terminal-agnostic. The odds are great that any given computer user in 2010 already has a compatible terminal program installed.

I can understand this if it's implemented client-side, but how does a normal dumb-terminal like Windows Telnet understand the commands an ncurses server sends? Windows Telnet doesn't support VT100 as far as I know, unless you emulate the display using the Console Functions documented at MSDN.

'Soludra' on Achaea

Blog: http://jonathan.com/
GitHub: http://github.com/Twisol
[Go to top] top

Posted by Jasonius   (12 posts)  [Biography] bio
Date Fri 08 Oct 2010 08:28 PM (UTC)  quote  ]
Message
Worstje said:

Let me turn the tables on you - and I'll admit I have no more than cursory knowledge of ncursus - but isn't what you are doing requiring every player to play on a ncurses compatible terminal? How is that any better?

(N)Curses is just an API to manipulate ascii terminals, such as VT100 (among many others). It tries to be terminal-agnostic. The odds are great that any given computer user in 2010 already has a compatible terminal program installed.

The more modern terminals even handle mouse events.
[Go to top] top

The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).

To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.


8,150 views.

This is page 1, subject is 2 pages long: 1 2  [Next page]

[Reply to this subject]  Reply to this subject   [New subject]  Start a new subject   [Refresh] Refresh page

Go to topic:           Search the forum


[Go to top] top

[Home]

Written by Nick Gammon - 5K

Comments to: Gammon Software support
[RH click to get RSS URL] Forum RSS feed ( http://www.gammon.com.au/rss/forum.xml )

[Best viewed with any browser - 2K]    [Internet Contents Rating Association (ICRA) - 2K]    [Web site powered by FutureQuest.Net]