Page 1 of 2

What I need to know to write a custom client?

PostPosted: Tue Nov 07, 2017 1:47 pm
by Freedoom
What I need to know to write a custom client? Which languages, wich tools, etc.

Where I have to write the code of the new client and how can I link that with the game?.

I would like to make a custom client, but I don't know how I can start

Re: What I need to know to write a custom client?

PostPosted: Tue Nov 07, 2017 2:27 pm
by Kandarim
you start here : https://github.com/dolda2000/salem-client
The client is written completely in java

Re: What I need to know to write a custom client?

PostPosted: Tue Nov 07, 2017 2:30 pm
by lachlaan
Hrm let's see. I absolutely know jack about this stuff and i can barely tinker in some stuff, but if you actually study unlike me you'd need to know java, not javascript. You would need a text editor usually regardless of what language you code in, and also you'll need a compiler for java code. You can either attempt using an IDE, integrated development environment or something, which has both the code editor and the compiling included in one thing. Or you can use a separate set of tools like notepad++ and apache ant to compile.

The client itself compiles, or mashes together a bunch of separate tiny files that each do their own set of things, and you can find the client files either on the salem repository that JC set up a while back or one of the other custom client repositories and modify from there.

Edit mid-writing @ Kand, didn't JC set up a repo of their own? I thought dolda hasn't been updated in ages. Guess i'm confused about that.

Either way good luck, for a beginner coding is a *****, or maybe i just suck at it :D

Re: What I need to know to write a custom client?

PostPosted: Tue Nov 07, 2017 3:25 pm
by Freedoom
Kandarim wrote:you start here : https://github.com/dolda2000/salem-client
The client is written completely in java


Thanks.

lachlaan wrote:Hrm let's see. I absolutely know jack about this stuff and i can barely tinker in some stuff, but if you actually study unlike me you'd need to know java, not javascript. You would need a text editor usually regardless of what language you code in, and also you'll need a compiler for java code. You can either attempt using an IDE, integrated development environment or something, which has both the code editor and the compiling included in one thing. Or you can use a separate set of tools like notepad++ and apache ant to compile.

The client itself compiles, or mashes together a bunch of separate tiny files that each do their own set of things, and you can find the client files either on the salem repository that JC set up a while back or one of the other custom client repositories and modify from there.

Edit mid-writing @ Kand, didn't JC set up a repo of their own? I thought dolda hasn't been updated in ages. Guess i'm confused about that.

Either way good luck, for a beginner coding is a *****, or maybe i just suck at it :D


Where are those repositories? are they the shown to me by Kandarim?

Can I use NetBeans IDE? I have seen all is in jar files, but if I unpack the jar files I can see some .class files or .res. Are the .class files which i have to edit?.

Re: What I need to know to write a custom client?

PostPosted: Tue Nov 07, 2017 3:28 pm
by Freedoom
Kandarim wrote:you start here : https://github.com/dolda2000/salem-client
The client is written completely in java


Which files I have to recode in there?.

Re: What I need to know to write a custom client?

PostPosted: Tue Nov 07, 2017 3:42 pm
by Kandarim
to be fair, based on the questions you ask, this project might be a bit too big of an undertaking for you.
Given that you don't know that .java files compile into .class files, well, ...

In my repository you can find some example build scripts (although in all fairness those were mostly created by EnderWiggin :) )

Re: What I need to know to write a custom client?

PostPosted: Tue Nov 07, 2017 3:52 pm
by Freedoom
Kandarim wrote:to be fair, based on the questions you ask, this project might be a bit too big of an undertaking for you.
Given that you don't know that .java files compile into .class files, well, ...

In my repository you can find some example build scripts (although in all fairness those were mostly created by EnderWiggin :) )


For that reason I need a little help for starting to know where I can write the codes, in Which files. If you can be so kind of say me which files I have to rewrite.

Which are those example build scripts?.

Re: What I need to know to write a custom client?

PostPosted: Tue Nov 07, 2017 3:57 pm
by Freedoom
I need the first steps for beggining. The concrete steps in the procedure of edit/create a new custom client. Example:

1) Yo must unpack .jar files.
2) You must go to bin folder and to execute the .xxx files with Netbeans
3) ...

Because I have NetBeans IDE but I don't know which files I have to touch xd.

I need that little explanation for beggining. If you say me: learn java. Ok I will have to learn java, but with java I can't to create a custom client with files which are being given to me, if I don't know for what is each folder or which files I have to edit.

Re: What I need to know to write a custom client?

PostPosted: Tue Nov 07, 2017 4:20 pm
by Freedoom
I think I have given the first step.

Are the .java files which I have to rewrite? xD, then...which? xDD.

Is it in ..\salem-client-master\src\haven\?

Re: What I need to know to write a custom client?

PostPosted: Tue Nov 07, 2017 4:35 pm
by lachlaan
Yeah, the source folder is where all the source code is that then compiles into classes that then compiles into the jar files i think, but again kand is the client modder here, i just tinker when i get bored. You need to open each file ever in the src folder and just stare at it for days and days till you understand what it does. Then you can actually change stuff and hope it works lol.

The structure of java applets is a bit odd for me, always has been confusing so the first thing to do is to figure out how each class relates to another. Which class is an extension of another class and which class uses which methods of its parent classes. Like i said before but was censored, it's a cluster of fornication. I personally blame Loftar :D