A new client.

New ideas, features you wish were in the game.
Post Reply
Fink
Ancient MultiHued Dragon
Posts: 614
Joined: Tue 20.01.2004, 13:55

A new client.

Post by Fink » Sat 24.03.2007, 01:46

Chatting with Billsey and PowerWyrm lately, I've begun to wonder if perhaps we should think of some things for a fresh new client with an eye towards supporting future variant work.

This is certainly a longer term topic, but the idea has been bouncing around in my head a bit lately.

The examples that brought it to mind were discussion of some of the kooky sounding stuff that is needed to get around some of the limitations of the client. For example, it appears that the current client could represent a bit of a hurdle for a variant maker who wants to add new races, or wishes to elaborate the character birth process.

Another thing that came up related to this is dealing with stores: it sounds like there are some hard and fast things going on in the client that represent a limit to changes in how stores work.

So, the question here is what changes could be made to a hypothetical new client that would allow maximum range to roam for variant makers so they needn't have to either a) require a custom client or b) do hacky stuff to make their server-side changes kind of work with the existing client?

Fink
Ancient MultiHued Dragon
Posts: 614
Joined: Tue 20.01.2004, 13:55

Re: A new client.

Post by Fink » Sun 23.09.2007, 12:55

Isn't quite the right place for it, but I'll mention it here.

As a (rather) long term goal, I'm a huge fan of the idea of a fully localizable setup for mangband. I know this is a rather massive thing, but I want to keep the seed planted and wotnot. The idea, perhaps, is to just send text tags and let the clients sort out what actually text/script should be displayed. For example, we wouldnt send "It was a great hit!" - we would just send "#115", so to speak, and the client would check the local list, and display that (say, Japanese) message in the client.

Of course, messages or names that are created by kooky concatenation might seem to raise a red flag, but this is still a doable thing (every RPG game out there that generates paramterized items like "Shining Halberd of Stability" etc deals with this). Here, we would need a setup that allows for simple rules to put together a generated line/name/phrase in a way that is correct for the client's language.

In other cases, full sentences could be replaced with more straightforward info: long sentences that contain information about crits and other things all in one could be perhaps broken out into "Hit: Great hit! Other stuff: More info!", instead of making it a normal sentence, etc.

Now, again, I know this is a substantially massive thing (as always, localization is never thought about till its painfully too late), but I want to keep the idea planted long term ;)

Fink
Ancient MultiHued Dragon
Posts: 614
Joined: Tue 20.01.2004, 13:55

Re: A new client.

Post by Fink » Sun 23.09.2007, 13:24

http://www.mangband.org/cgi-bin/yabb/Ya ... 51;start=1

This is the "multiple servers per IP" thread. Bill made a comment that there would need to be client-side changes to allow this, so I'll link that brief discussion here.

Ashi
Giant Mottled Ant Lion
Posts: 218
Joined: Sun 10.11.2002, 19:58

Re: A new client.

Post by Ashi » Sun 23.09.2007, 19:29

I think the i18n idea for the client would be nice. It reminds me of the old Japanese server where localization was handled on the server side and you could switch it between English and Japanese (which used the tables here: http://dsb.to/~yakina/mangband/archive/ ... ns.tar.bz2 ). They made a lot of the messages more interesting, for example "Target lock on!" and "Oh, more monsters (w)". As for the concatenated item names, they were able to make them display as "Terken no amulet" etc. Artifacts were denoted by a star before the item name.

The problem with doing this is that it requires you to set each window with an actual font, since the Angband fonts don't support ascii and unicode characters. From what I've heard, this is not possible with the latest clients which have chat windows and other nice features. It would be nice if someone could figure out a way to have font support though, because at the least it would allow chat between non-English speaking players.

User avatar
Warrior
Evil Iggy
Posts: 667
Joined: Sat 26.10.2002, 15:00
Location: Norway
Contact:

Re: A new client.

Post by Warrior » Mon 24.09.2007, 03:00

It seems to me that our two japanese players at the moment (Kaze and Yossi) are communicating in japanese most of the time in private messages, so their clients must support it?
-- Mangband Project Team Member

Domino
Giant Hunter Ant
Posts: 173
Joined: Sat 26.10.2002, 22:42
Location: Mountain View, CA  U.S.A.

Re: A new client.

Post by Domino » Mon 24.09.2007, 10:09

I'd like to see a client that has support for proxy pass through.  Or the ability to choose which port you're connecting on.  The port thing would of course require something similar server side but it would be particularly nice if you wanted to run a couple of side-by-side servers.  Say one for testing or pkill madness and one for regular players.
King of the Hill Baby!

Fink
Ancient MultiHued Dragon
Posts: 614
Joined: Tue 20.01.2004, 13:55

Re: A new client.

Post by Fink » Mon 24.09.2007, 14:59

[quote author=Domino link=board=thinktank;num=1174718808;start=0#5 date=09/24/07 at 10:09:21]I'd like to see a client that has support for proxy pass through.  Or the ability to choose which port you're connecting on.  The port thing would of course require something similar server side but it would be particularly nice if you wanted to run a couple of side-by-side servers.  Say one for testing or pkill madness and one for regular players.

[/quote]

Absolutely. I linked to a thread about that in some comments of mine above  - I really would like to be able to run multiple servers at once.

Berendol
Evil Iggy
Posts: 868
Joined: Mon 11.11.2002, 19:13
Location: Loot Pile
Contact:

Re: A new client.

Post by Berendol » Tue 25.09.2007, 13:49

[quote author=Domino link=board=thinktank;num=1174718808;start=0#5 date=09/24/07 at 10:09:21]The port thing would of course require something similar server side[/quote]

You may be pleasantly surprised to know that the server has no particular dependency on what port the client is using! The only required change is in the client... Therefore, you could in the meantime compile the whole shebang several times with different defined ports, and probably make it work that way.

At least, that's how I understood the code.
By appreciation, we make excellence in others our own property. (Voltaire)

Billsey
King Vampire
Posts: 272
Joined: Sun 12.02.2006, 14:36
Location: Oregon, USA
Contact:

Re: A new client.

Post by Billsey » Thu 27.09.2007, 01:19

The server is hard coded to listen at a single port (18346?), so the current clients are hard coded to request a socket to that port on the server. In order to support multiple servers at a single IP address the servers need to have configurable ports, the clients need to have configurable ports (or ports learned from the meta-server) and most likely the meta-server needs to know about the port used, so it can either display that info for the end user or pass it to the client for automatic use.

It would be possible now to run several servers behind a NAT if the client could request a different port and the router providing NAT could port forward to the appropriate machine.
Mangband Project Team Member

Fink
Ancient MultiHued Dragon
Posts: 614
Joined: Tue 20.01.2004, 13:55

Re: A new client.

Post by Fink » Mon 05.11.2007, 17:23

Another thing that has come to mind is the semi-inoperability of the Japanese and English clients. PowerWyrm had this to say about it:

"Japanese clients use Unicode standard for encoding strings using double bytes. Since most of the code uses hardcoded values for char buffer and packet sizes, most of the requests from japanese clients will make buffer
overflows. If we want to unify clients, we'll have to use Unicode also..."

Berendol
Evil Iggy
Posts: 868
Joined: Mon 11.11.2002, 19:13
Location: Loot Pile
Contact:

Re: A new client.

Post by Berendol » Tue 06.11.2007, 18:40

Internally, strings can be whatever you want them to be. That's not the hardest part. The hardest part is chat support, which IMAO should be ripped out and replaced with a simple IRC server that only MAngband can connect to.

That being said, I do support the idea. A 60 character line is 240 bytes of 32-bit Unicode, in UTF-32 format, which shouldn't take long to transmit. Just send in chunks to allow new control data to pass through. How fast can you really type, anyway?

If that's too much, perhaps UTF-18 would be sufficient?  ;)
By appreciation, we make excellence in others our own property. (Voltaire)

Post Reply