Register forum user name Search FAQ

Gammon Forum

Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the password reset link.

Due to spam on this forum, all posts now need moderator approval.

 Entire forum ➜ MUSHclient ➜ General ➜ Possible new client written using wxWidgets?

Possible new client written using wxWidgets?

It is now over 60 days since the last post. This thread is closed.     Refresh page


Pages: 1  2  3  4  5  6  7  8 9  10  11  

Posted by David Haley   USA  (3,881 posts)  Bio
Date Reply #105 on Tue 04 Sep 2007 03:01 AM (UTC)
Message
Well, there already exist general data description languages, XML for instance. You don't have to specify all the entities in the language; you just specify how to, well, specify entities. And then the interpretation of that is up to the client-side engine, which presumably would be provided by the MUD server or by the technical-savvy client person. And for what it's worth, I disagree that this isn't something to be thought of early on, because it could have potentially very far-reaching consequences for the client's design. And also, part of the point would be in creating such a protocol that other clients could presumably use without having to resort to plugins -- and besides, said plugins would need to have a great deal of access to the client's GUI to make what I'm talking about possible.

David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone

http://david.the-haleys.org
Top

Posted by Shaun Biggs   USA  (644 posts)  Bio
Date Reply #106 on Tue 04 Sep 2007 03:46 AM (UTC)
Message
If what you are suggesting is creating a whole new protocol for mu*s to use, then that is a completely different topic than just creating a new client. I am not so sure that many existing muds and mushes and such would switch to a new protocol simply because we or someone else created it. There are already several protocols out there that can be used which do specify inventories and chat channels and such. Few games actually use these, and instead stick to straight telnet. I'm not saying that this protocol idea would be detrimental, I just don't see it as being widely used. Look at MXP. It was a great idea to allow for images, hyperlinking, font changes... but only 10% of muds on mudconnector use it. And this is a protocol which has been around for quite a while and it is supported by a decent number of clients.

Also, having such a great deal of GUI access in plugins is something I would love to see. If you are going to allow all these neat images and panels, you might as well do it all the way and allow people to actually use them instead of just being out there to look at. I think more people would find GUI manipulation more useful than adding a protocol that no games currently support.

It is much easier to fight for one's ideals than to live up to them.
Top

Posted by Isthiriel   (113 posts)  Bio
Date Reply #107 on Tue 04 Sep 2007 05:26 AM (UTC)
Message
Can't MXP be used for the data description anyway? You just need to specify a canonical list of entity definitions that your client will parse appropriately.

Most of the muds that are on MudConnector are very close to stock. If more stock muds had MXP built in that would be reflected in the stats on MudConnector. As it is, there are no MXP libraries for drop-in support so every mud that has MXP has had to roll their own version. :(
Top

Posted by David Haley   USA  (3,881 posts)  Bio
Date Reply #108 on Tue 04 Sep 2007 05:47 AM (UTC)
Message
Quote:
I am not so sure that many existing muds and mushes and such would switch to a new protocol simply because we or someone else created it.

Well, yes, but also consider that this is a one-in-a-million chance to have a client developed around a protocol that you or I might want for our MUD. I have several motivations for having a custom client built, but I don't see a huge point in making a client that only supports one MUD.

Quote:
I think more people would find GUI manipulation more useful than adding a protocol that no games currently support.

Perhaps, but that would be a natural consequence of what I'm suggesting, because to support the protocol would necessarily mean near-total scriptability of the GUI.

Quote:
Can't MXP be used for the data description anyway? You just need to specify a canonical list of entity definitions that your client will parse appropriately.

Sure, in the sense that MXP looks a lot like XML in many ways. But MXP has enough serious flaws that I would find it better to distance this from it, if anything to make it clear that whatever comes of this isn't MXP.

Quote:
As it is, there are no MXP libraries for drop-in support so every mud that has MXP has had to roll their own version. :(

Nick has one, along with a tutorial on installation IIRC, although it's only publicized in some parts of this website.

David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone

http://david.the-haleys.org
Top

Posted by Shadowfyr   USA  (1,790 posts)  Bio
Date Reply #109 on Tue 04 Sep 2007 06:15 AM (UTC)
Message
Yeah, screenshot page stunk, but you should have seen the one on some other site, where every large view of the pages was 404. lol The *main* site for the game is down at the moment, so I couldn't link there, where I would hope they had better examples.

In any case, not sure MXP would work better than a protocol specifically meant for it, but any such protocol would still "lock" you into presumed default ideas. Maybe someone would have something *other than* inventory type things? Not sure MXP entities are entirely good enough, but yes, something *similar* would be the right idea. In the best world, I suppose you might want to send a "layout" description, rather than an "entity". The layout would provide how things get placed, along with field names, so data can be inserted where needed. Then any further data sent would reference that "layout" and tell the client what to add/remove from the subfield in that display. You don't get stuck with one size fits all displays.

Now, this **could** probably be done, with some clever manipulation of MXP entities, but its not really designed for that. You could also use the "error" traps that Mushclient has already, which I presume would carry over to the new client, to capture unrecognized tags that "did" support a <layout>some_XML</layout> type data block, then use a plugin to parse the resulting layout/fields to the client GUI. This is a more advanced handling that what I had always envisioned. My own thought had been to do something simpler, like having the user create a .frm type layout, which the plugin could parse in to generate a window, then use normal triggers to do something like capturing the "inventory" when you look at it, and parsing it to display the right icons. Clicking on food, etc., would have its behavior defined by if the event for that icon is trapped, and what the script says to do about it. The only thing that adding a "layout" tag to MXP would really do is provide an inbuilt way to generate the GUI, based on the mud developers version of what it should look like. This is a good idea, since some place like Aeonfalls could have simply designed the GUI elements, provided a plugin to handle data parsing for those elements, then changed the layouts on their end, as needed, instead of doing a client update (or forcing the users to download an upgrade). The client itself could be as generic as TinTin++, and as long as the scripting was available, GUI was available, and MXP, with the added layout functions, was available, you could make it *act* like anything from the current Mushclient to one of these custom jobs.

---

As to your map examples Shaun.. They don't even work in 2D, since they require intentional displacement, and special markers, to show them on the *same* 2D plane. Not only is it unlikely that a mapper could do that very well, it doesn't do anything for you, if you don't have an entire extra display available to put the map on. The reality of text gaming is that, if you want that kind of map, you are **not** going to be using the internal map system to do it. Heck, even the MMOs have entire printed Atlases, since the maps they provide in game are flawed when trying to do this, and that is despite attempts in EQ1 to have a way to auto generate the maps, based on where the player marked the start and end of the path they walked on. It worked, but not well. The new one in EQ2 doesn't even bother.

Fact is, for a text world, **most** maps are going to be limited to a fraction of your screen space, and even if you allow for them to pop open a much larger version, to get their bearings, you **still** can't give them a map that is good enough to cover areas past some X number of rooms from where you are.

Mind you, in your tower example, it might not be impossible to find some way to pop open that bigger map, and thus *see* all 9 levels, stacked one on the other, just like looking at the skeleton of a sky scraper. That could be practical. It might even be possible to mouseover the levels, and thus get them to show up clearer. And, as I said, one useful trick would be to have the path finding system "mark" each room between you and a destination, so you can see where you need to get to. I wish I had an easy way to show what I mean..
Top

Posted by Shaun Biggs   USA  (644 posts)  Bio
Date Reply #110 on Tue 04 Sep 2007 06:50 AM (UTC)

Amended on Tue 04 Sep 2007 07:12 AM (UTC) by Shaun Biggs

Message
Quote:
As to your map examples Shaun.. They don't even work in 2D, since they require intentional displacement, and special markers, to show them on the *same* 2D plane. Not only is it unlikely that a mapper could do that very well, it doesn't do anything for you, if you don't have an entire extra display available to put the map on.


I can apply all these statements to the layer idea. For the example I gave earlier, where n,e,n will land you in the same place as going up, how would a layer show this? There would have to be some sort of intentional displacement or marker to show that the two layers do not match up. Now imagine trying to do this with some sort of maze area where this will happen several times. If leading off of room1, you have the following exits: n=room2 e=room3 s=room3 w=room4 u=room2 d=room4 and then in room2, you have a variation on the same pattern leading to rooms 1,3, and 5. That map will be a nightmare to try and put into a 2D or 3D model without having some sort of special markers. Even the one quirky exit at the bottom of the decent to hell map would extremely difficult on a 3d map because the two south exits would have to cross each other.

Also, claiming that the maps I gave as examples would not be effective without an entire extra display available is not changed by making some sort of 'layer' effect. All you are doing there is forcing parts of the map to be invisible, which is the same as showing just a portion of the 2D map. If you think you can fit all of either of those maps into a 3d version that will fit into a 200x200 pixel area, please make a jpg of it and post it. I'd be very interested to see how that turns out. As it is with the dread tower map, the only real reason for the special markers is to make it fit better into a rectangular jpg without wasting a lot of space. This problem would go away in a display on a mapper because it will not have to display all the data at once.

A simple bookmarking system for specific rooms would be fine for 'getting bearings' in either a 2D or 3D map. Either way, trying to map out such abstract areas that are found in muds and mushes will require some concessions to be made, since the rules of geometry do not always apply.

It is much easier to fight for one's ideals than to live up to them.
Top

Posted by Shaun Biggs   USA  (644 posts)  Bio
Date Reply #111 on Tue 04 Sep 2007 07:12 AM (UTC)
Message
Quote:
Well, yes, but also consider that this is a one-in-a-million chance to have a client developed around a protocol that you or I might want for our MUD. I have several motivations for having a custom client built, but I don't see a huge point in making a client that only supports one MUD.

No matter how this is coded, people will still have to maintain some sort of theme package for the client if they want it to work well with their servers. Using non-stock images, having various actions for combining or enchanting items, even inventory slots and character creation will all have to be modified to some degree per game. A lot of this can be done through downloading files from the server through the client. It would amount to the same as having to download a theme package from the game's website and having that world use it, but with less mouse clicking.

Quote:
Perhaps, but that would be a natural consequence of what I'm suggesting, because to support the protocol would necessarily mean near-total scriptability of the GUI.

Making GUI manipulation a more open environment where a script can play around with settings much more than the current closed environment of MUSHclient would solve most of the aforementioned issues. In fact, it would almost be required for any of the new options this protocol would open up. However, it is not required to have this protocol in order to make use of a more script interactive GUI. I cannot see starting off with a protocol like that without having the base scripting in, so it is only logical to focus on GUI manipulation before getting into any creation of a new protocol.

It is much easier to fight for one's ideals than to live up to them.
Top

Posted by David Haley   USA  (3,881 posts)  Bio
Date Reply #112 on Tue 04 Sep 2007 09:06 AM (UTC)
Message
Quote:
No matter how this is coded, people will still have to maintain some sort of theme package for the client if they want it to work well with their servers.

Presumably if a server is speaking the protocol, they are willing to maintain their 'theme package' to take advantage of it. The possibilities opened by such a thing are huge.

Quote:
A lot of this can be done through downloading files from the server through the client. It would amount to the same as having to download a theme package from the game's website and having that world use it, but with less mouse clicking.

I'm not sure what you're trying to say here. You could just as easily download the 'theme package' (I'd think of it more accurately as a layout engine since it does a lot more than change some pictures) from inside the client as well. Besides, it's a one-time procedure. Saving 2, 10, 20 clicks isn't a big deal.

Quote:
In fact, it would almost be required for any of the new options this protocol would open up.

Yes, that's what I meant when I said that it would be a consequence of what I'm suggesting. What I'm suggesting is basically impossible without it.

Quote:
However, it is not required to have this protocol in order to make use of a more script interactive GUI.

This is true.

Quote:
I cannot see starting off with a protocol like that without having the base scripting in, so it is only logical to focus on GUI manipulation before getting into any creation of a new protocol.

The point is simple: knowing what you're designing for allows you to, well, design for it. Sometimes knowing what the end goal is allows you to better focus your efforts.

David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone

http://david.the-haleys.org
Top

Posted by Shaun Biggs   USA  (644 posts)  Bio
Date Reply #113 on Tue 04 Sep 2007 12:09 PM (UTC)

Amended on Tue 04 Sep 2007 12:10 PM (UTC) by Shaun Biggs

Message
Ok, let me try to sum up what I've been saying, since you have repeated a few of my points and then said you didn't understand what I'm trying to say after quoting something that meant exactly what I've been saying...

The protocol idea is completely superfluous.

  • Anything that this protocol would need is a good idea to have in the client anyway.
  • The protocol can be made as a plugin which checks incoming data packets.
  • I believe it would be a waste of time to start off with this specific protocol in mind, as it would not be anywhere near as widely used as you seem to think.
  • I still think it is an interesting idea, but because the new client would hopefully have all these features in place to begin with, having plugins for various protocols should be easy to implement. This would open up more options than focusing on just one protocol.

Being able to support MCP, MXP, IMP, MSP, even mudFTP would be great for this client. If a better event driven scripting environment were to be created, these could all be easily added in as plugins. Kind of lick language packages for various programs.

It is much easier to fight for one's ideals than to live up to them.
Top

Posted by David Haley   USA  (3,881 posts)  Bio
Date Reply #114 on Tue 04 Sep 2007 09:55 PM (UTC)
Message
Quote:
I believe it would be a waste of time to start off with this specific protocol in mind, as it would not be anywhere near as widely used as you seem to think.

Well, as a disclaimer, I never said it'd be widely used. (In fact I expect it to be something of a niche market.) That said, I think this point is probably the most relevant. I maintain that knowing what you are going for can be very important, instead of just providing a general-purpose scripting interface. That, and making it into a protocol allows for standardization, instead of a bunch of plugin authors running amok creating different ways of handling every MUD's way of encoding the data.

A protocol doesn't have to be anything fancy, you know.

But in the end of the day, I really think we are talking about the same thing, by the way. You keep talking about plugins to handle this stuff, which I have been referring to as the layout engine. All that I'm proposing on top of you is that the data sent around be in a standardized form.

David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone

http://david.the-haleys.org
Top

Posted by Shadowfyr   USA  (1,790 posts)  Bio
Date Reply #115 on Wed 05 Sep 2007 05:38 AM (UTC)
Message
Quote:
This problem would go away in a display on a mapper because it will not have to display all the data at once.


Yeah, in either system. I wouldn't suggest not letting a person scroll away from where they are, for example. 2D or 3D you lose the ability to see certain areas. 3D imho, does provide some capacity to display things that 2D can't. Neither can "solve" the issue you are talking about, since both need to limit what they display. Ok, lets be clear about one thing, a 2D in a 200x200 area *may* be a real good idea, since its too small for a 3D system. But, lets assume for a moment that, as part of the mapper, you added a accelerator, which could open a larger version, which is like 3-4 times bigger, which did do 3D, and could show more rooms total. Lets also say you could rotate it around, to get different views, etc.

The two are not mutually exclusive concepts. One have benefits the other doesn't, and vice versa.

As for making up a jpg to show the idea.. I am not that good at translating the "idea" into results, when drawing things. In fact, I suck at that. lol Now, if I was coding it... probably not so good there either. But the point is to give options to how to display things, not lock someone into the "assumption" that every system will work with a 2D system, or as well as you seem to think it would. I mean, think of it this way. Your "tower" example is less than what? 20 rooms **in** the tower, and a lot branches off in absurd directions. I have a tower I planned, but never got around to doing, that would have had 9 levels, each with about 10 rooms at the base, to like 2 at the top, not including balconies, and the "stairs" where all located like this:

Level 1:
 _____
/     \
|u   u|
\_____/

Level 2:

 _____
/  u  \
|d   d|
\__u__/

and so on..


Now, you *could*, I suppose displace all 9 levels diagonally ,with a different colored line showing the linked rooms, but we are talking about about 10 rooms each floor, or roughly the *maximum* radius a map could display, so, for all practical purposes, you **still** can't see more than one at a time. Now, imagine that instead of 2D, you could switch to 3D. Then you have a view like this:

 _____
/  d  \
|u   u| <-- Level over you.
\__d__/
 _____
/  u  \
|d   d| <-- You are on this level.
\__u__/
 _____
/     \
|u   u| <-- Level below you.
\_____/


Yes, of the "size" of the level is big enough, it may be necessary to still limit the number of "visible" rooms, and maybe fade the ones farther away, but it gives a way better view than one that looks like:


      //
 ____//
/  u /\
|d  /d|
\__u__/


Where the extra / are the "lines", showing where the up paths lead. There would of course need to be similar lines to show where the "down" links went, but you **can't** see any of the rooms they go to at all. They would be outside the range of what "can be shown" for where you are in such cases. 3D lets you see where you are now, where you could go in all directions, and a lot of what may be under or above you. Its not perfect, but 2D could be worse. If you get what I am saying here. I mean, even if all it did was show rooms one level "under" yours, with a ability to move up one level, you still get a better sense of location in *some* cases. I am sure there are ones where 2D is better too, which is why it would be nice to have "both" options.
Top

Posted by David Haley   USA  (3,881 posts)  Bio
Date Reply #116 on Wed 05 Sep 2007 06:28 AM (UTC)
Message
Can we please have the mapper discussion in a separate thread esp. when the posts are getting so long. :) It's a huge topic in and of itself, and both it and the new client deserve their own threads.

David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone

http://david.the-haleys.org
Top

Posted by Shadowfyr   USA  (1,790 posts)  Bio
Date Reply #117 on Wed 05 Sep 2007 08:35 PM (UTC)
Message
lol That may be a good idea. Though, mind you, until we actually get to trying to implement something, its mostly just and argument over "if" something will work, in theory. It is kind of tied to the client itself though, since a client that supports good GUI only needs some way to handle the "general" map data, since display can probably be handled through the GUI elements, using what ever method the developer wants. I.e., having the mapper also do the display limits what you can do at all. On the other hand, it still means we need two types of plugins, one to deal with "mud related" issues, while the other deals with interfaces. Why? Because the interface one needs to operate independent of the main thread, so it doesn't hang the system. only having one class of plugin either means making them also all operate parallel, which would cause issues with synchronization, or they would need some way to prevent certain commands that require that, so the plugin can run parallel, without causing those problems.

Now, one solution has always then been to have the feature run independently, as a separate program, which is possible, withing limits. This however is less practical under something like Linux, where COM isn't really available. MONO may work to bridge the gap, or it might not. Other methods are possible, like the UDP thing we already use, but that has serious drawbacks too. It might be easier to simply make sure that things that *need* to operate in parallel within the client can. And a mapper is one of them. So, its necessary to decide imho, if you want to even allow alternate display methods, other than the simplest 2D one, and then figure out from there how the mapper would need to handle the data, and interface with your GUI plugin for displaying it, not to mention whether or not that is going to have enough of a performance hit to require a independent thread, or if its small enough to run in a "normal" plugin, which isn't able to run parallel to the main processes.
Top

Posted by David Haley   USA  (3,881 posts)  Bio
Date Reply #118 on Wed 05 Sep 2007 08:53 PM (UTC)
Message
Quote:
This however is less practical under something like Linux, where COM isn't really available.

There are several ways to do inter-process communication on Linux... it's not as if COM is the be-all, end-all solution. :)

I agree that the mapper discussion is important in general, but the discussion in this thread should probably be limited only to what repercussions a mapper would have on the new client's design. Concerns about guessing rooms and even displaying them aren't quite relevant at present; but on the other hand, how to handle IPC, if it's even needed, would be more relevant. So my suggestion is just that the map discussion should be moved away for now, and if/when a conclusion is come to, we should bring it back to this topic once there is a clearer idea of what needs to be done. And in the meantime I will do my part and stop talking about this. :-P

David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone

http://david.the-haleys.org
Top

Posted by Jammet   (14 posts)  Bio
Date Reply #119 on Fri 21 Sep 2007 01:12 PM (UTC)
Message
So ... what's the plan from this point onwards? Is the whole idea of the crossplatform client accepted? Is there enough motivation to do this? What's the status?
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.


370,948 views.

This is page 8, subject is 11 pages long:  [Previous page]  1  2  3  4  5  6  7  8 9  10  11  [Next page]

It is now over 60 days since the last post. This thread is closed.     Refresh page

Go to topic:           Search the forum


[Go to top] top

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.