Custom Clients

by Tobias

Back to Combat Guide.

Tobias2006-01-28 01:33:57
I've been searching through some of the posts, and I've noticed Ethelon has made a custom client. Well... How do you do that? I've always wanted to make my own custom software, and I figured that Clients are a hot way of doing that.

EDIT: After High School, I'm going to majour in computer programing. Might as well start young.
Tobias2006-01-28 02:01:10
If anyone else knows how to create clients, I'd love to know.
Shryke2006-01-28 02:08:35
You don't create a client, you create a system based on an already written client, generally.. For example, ethelons "SYSTEM" works on Mushclient... Go google it and you will see the program
Tobias2006-01-28 02:12:56
huh.gif Ohh... Heh. Whatever. I'll learn how to do that then! biggrin.gif
Tobias2006-01-28 02:23:33
Hmm... Well... Actualy. Is there anyone out there that may be able to show me how to become a coder.... if that's possible?
Shryke2006-01-28 03:02:49
Takes work... Go to the mushclient page and start reading.. and reading, and transmogrifying into a coding-monkey-zombie
Unknown2006-01-28 05:23:56
It's not complicated at all. You just have to know what your client is capable of, and how it generally works. There really aren't that many things you need to know to script a MUD client, most tasks are repetitive, so once you know the solution you can use and re-use it many times over.

For Mushclient, specifically, I suggest first grabbing the "Programming in Lua", and reading through the initial sections to figure out how Lua works. Then reading up on Mushclient's help for scripting. Then trying to tie the two areas of knowledge by setting up a simple trigger that will add 1 and 1 and display the result when a certain line comes in from the MUD. Then you just identify what it is you want to do exactly, and if you know how to approach the problem then you just fish out information about using the relevant tools from various docs, or if you don't have any idea whatsoever you just ask, either here in Mechanics corner or on Mushclient's forum.
Tobias2006-01-28 13:01:55
hmm... alright.
Serrin2006-01-30 09:54:19
I suppose you COULD make a custom lusternia client if you really wanted to.

But damn that would be a lot of work.
Unknown2006-01-30 10:48:29
Not much more than coding a decent system really, if it just for you, you don't have to bother with complex GUIs or easy ways of building systems, you just build it all straight into the client. And the actual back end network part in some programming languages is no more than 10 or 20 lines of code.
Unknown2006-01-31 04:26:51
QUOTE(AlyssandraAbSidhe @ Jan 30 2006, 06:48 AM)
Not much more than coding a decent system really, if it just for you, you don't have to bother with complex GUIs or easy ways of building systems, you just build it all straight into the client. And the actual back end network part in some programming languages is no more than 10 or 20 lines of code.
251714


Are you talking about Python? (I sort of know Python. I'm more used to Java though. I'll read Lyntin code, think I understand it, write something, and watch it not work, argh). If you have experience with this, I'd be interested in asking you about it. I know you've posted about Lyntin before, is that a good place to start?
Unknown2006-01-31 09:27:51
Lyntin is a good starter if you know python, because it does all the connection stuff for you and gives you a nice easy API to plug into. But if you aren't comfortable with Python it would only be a couple of small classes to get a telnet client base put together in Java and expose a simple API.
Unknown2006-02-01 01:28:14
Is there any reason I'd want to use one over the other? Any speed concerns, etc?

edit: I won't pretend I'm an expert programmer, as you can tell from my questions probably. The farthest I got in Java was making the tic tac toe game.
Unknown2006-02-01 07:37:26
I would definitely say Lyntin over Java. The speed I am not sure about, I know that Lyntin is "fast enough", but I don't know how Java will be exactly.

But the thing with Lyntin is that to make a custom client of it you only need to slap together a GUI, which there are several of already that you can learn from. Then you can go back to the basics and tweak the way triggers work, sessions are orchestrated, add stuff like plugins, etc. But in the meantime, you'll have a fully working MUD client. When doing it from scratch you'll need to exert a serious effort just to get it to a stage where you'll be able to connect to a MUD with it.

Another important concern is scripting. How are you going to do it in Java? If you know how to embed some engine in a Java app then you are in luck, but in all honesty I can't recall one scripting language that had an "Embedding in Java" section in its docs. Make one up? That's not too easy a task to do right, and will probably take a very long time and lots of tweaking. While Lyntin has both a custom scripting language and is itself a scripting language ready to be used.
Unknown2006-02-01 09:33:11
QUOTE(Avator @ Feb 1 2006, 08:37 AM)
I would definitely say Lyntin over Java. The speed I am not sure about, I know that Lyntin is "fast enough", but I don't know how Java will be exactly.

But the thing with Lyntin is that to make a custom client of it you only need to slap together a GUI, which there are several of already that you can learn from. Then you can go back to the basics and tweak the way triggers work, sessions are orchestrated, add stuff like plugins, etc. But in the meantime, you'll have a fully working MUD client. When doing it from scratch you'll need to exert a serious effort just to get it to a stage where you'll be able to connect to a MUD with it.

Another important concern is scripting. How are you going to do it in Java? If you know how to embed some engine in a Java app then you are in luck, but in all honesty I can't recall one scripting language that had an "Embedding in Java" section in its docs. Make one up? That's not too easy a task to do right, and will probably take a very long time and lots of tweaking. While Lyntin has both a custom scripting language and is itself a scripting language ready to be used.
252491



There is a Java version of Python (Jython) if you wanted a scripting language. But for those really adventurous you can load and unload java classes on the fly if you know Reflection well enough, thus negating the need for a scripting language.

Lyntin will be simpler, significantly. But speed will be down to how good your coding is python and Java both have the potential to be extremely rapid languages (yes as fast as C before the uninformed kick in) as long as you know how to use them right.
Unknown2006-02-02 19:33:36
well, as a rule of thumb obviously if you can compile your system somehow, it'll run much faster than anything scripted. So if you write your own client and compile it, that'll be an advantage. Provided your background machinery is as efficient as the scriptable clients, of course, but there are plenty of premade APIs and classes out there that'll take care of basic stuff in a good way for you, just gotta find the free ones.
Tiran2006-02-03 00:02:36
I'm not familiar with Lyntin, but I know that Python scripts can be compiled, so I imagine it works at around the same speed that Java does with the JIT compiling, which is about as fast as an average C-programmer is going to get things anyways. Takes a lot of work to squeeze performance out of C (usually at the cost of maintaining the thing later). So, if you're doing a bit of learning anyways, I'd go with Python and learning to build around Lyntin.

Of course this is coming from a guy who wants to try writing a client in Objective-C, but that's more to learn Obj-C and Cocoa than anything else... unsure.gif