A beginner

04/25/2012 16:53 myDanie#1
Hello epvpers I'm Dan. I left co after the release of Talismen, went through the world of private servers and I was playing on many different private servers.
I decided to start learning how private servers work, and how to code tournaments and events since I have many ideas, and I have a fair knowledge of programming.
I usually write my programs in Java or VB.net, and never read any book about c# so in order to get familiar with the language, my last project was written in C# with the help of google (How to write End sub in C# and these stuff xD) and I think I can write and understand C# codes (and you know, java and c# are very close). I am not that professional, but I know how things work (oop, sockets, threading, arrays, loops, collection...)

I have created a new account on epvpers (since I forgot my old account :P), downloaded a [Only registered and activated users can see links. Click Here To Register...] by lostsolder50 and the client. Got everything working.

I went through the code, and understood simple things such as Database connection (the class which loads items from the database and so on.) and how the the database itself is organized. I found things are very difficult to be understood.

I want someone to help me, to tell me from where to start and what should I concentrate on at the beginning and so on.

My email is [Only registered and activated users can see links. Click Here To Register...]

Question: is it better to choose another source with different client version as this one may be complicated?
04/25/2012 18:13 pro4never#2
There's a ton of sources out there but keep in mind all of them have issues (that's why they got released).

You have to decide what's important to you in your source. Do you prefer fully coded features or is things working properly more important? That's the tradeoff you have to make.

The highly featured sources are generally HORRIBLY unstable and filled with bugs.

The stable sources with few/no bugs contain virtually no features.

Regardless what you choose, you'll have to learn to code and be willing to put in significant effort if you want to make a worth while source.
04/25/2012 18:29 I don't have a username#3
I'm sorry OP, but this "(How to write End sub in C# and these stuff xD)" made me laugh my ass off.
04/25/2012 18:32 myDanie#4
Okay, I want someone to help me to just start, making me understand the basic features of CO programming. Downloaded other sources, and explored some of the released codes here but it seems that I don't understand how things are working.

Quote:
Originally Posted by I don't have a username View Post
I'm sorry OP, but this "(How to write End sub in C# and these stuff xD)" made me laugh my ass off.
This was just an example but the truth is that this way works well if you want to learn a programming language if you mastered another one already, without reading a book or articles about the new one :P
04/25/2012 19:03 pro4never#5
I'd suggest reading a book or two on basic C# syntax and operators before you continue. Seems as though you're kinda stuck in the vb mindset (as easy as transfering between languages is... it feels like VB goes out of its way to make itself unique by needlessly changing keywords)

There is no End if/sub/loop type code in C#, everything is instead organized by brace brackets

eg

for(int i = 0; i < 10; i++)//loop that runs 10 times
{
Console.WriteLine("Test Loop: " + i);
}

Everything between the brace brackets is part of the loop, + is used instead of & when combining strings, every line of code that does not begin a section of code (function headers, loops, etc) ends with a semi colon, etc.

Start by writing some basic programs in C# to get a good feel for the language's syntax and from there you can work on understanding the sources themselves.

Are you aware of the following things? (regardless of language implementation)

-Socket Communication
-Threading
-Database systems
-File systems (binary files vs plain text files)
-Polymorphism/Inheritance
-Conditionals
-Data types
-General OOP concepts
04/25/2012 19:17 myDanie#6
@pro4never, I know you're trying to help but I am okay with C#. I've already wrote a whole project in C# and I read a c# book after I'm done with the project. My problem is not regarding to the language itself, the problem is that I don't know how the source I've downloaded is working. I want to understand things like how Jumping System is working, walking, Login and these basic stuff to be a good CO programmer and start writing tournaments and fixing the bugs in the source.
04/25/2012 19:51 CptSky#7
Quote:
Originally Posted by myDanie View Post
@pro4never, I know you're trying to help but I am okay with C#. I've already wrote a whole project in C# and I read a c# book after I'm done with the project. My problem is not regarding to the language itself, the problem is that I don't know how the source I've downloaded is working. I want to understand things like how Jumping System is working, walking, Login and these basic stuff to be a good CO programmer and start writing tournaments and fixing the bugs in the source.
You have knowledge in communications protocol? You have knowledge in networking (in general)? These concepts are important to create an emulator of a server...
04/25/2012 20:02 pro4never#8
Quote:
Originally Posted by myDanie View Post
@pro4never, I know you're trying to help but I am okay with C#. I've already wrote a whole project in C# and I read a c# book after I'm done with the project. My problem is not regarding to the language itself, the problem is that I don't know how the source I've downloaded is working. I want to understand things like how Jumping System is working, walking, Login and these basic stuff to be a good CO programmer and start writing tournaments and fixing the bugs in the source.
I asked those questions because they are relevant...

If you have no idea how socket communications works then it's going to be very difficult to visualize or understand how any of the game systems work...

I'd suggest reading some information on packets and packet structuring for conquer (I posted some videos and threads on the subject in relation to creating bots, they may help you get a bit of an idea)
04/25/2012 20:14 myDanie#9
Yes I have a basic knowledge of networking and socket communications. I will read @pro4never threads and inform you about the progress in this thread.

Thank you all.
04/25/2012 21:39 Lateralus#10
Quote:
Originally Posted by pro4never View Post
If you have no idea how socket communications works then it's going to be very difficult to visualize or understand how any of the game systems work...
...and this is why I didn't think about trying to implement anything relevant to Conquer after a year and a half of experience with and formal knowledge in C++.

With your background, you should definitely be able to pick up C# in a few days, tops. Don't be intimidated by these concepts you're not familiar with, because they're all fairly easy (in C#, at least) and writing a server for Conquer is pretty straightforward.

I'd recommend using [Only registered and activated users can see links. Click Here To Register...] to learn with. Though it may seem messy at first, it's a fantastic source to learn on because it encapsulates everything you need in a source, and it shows different methods for similar tasks. Once you study (and I mean, study, don't just read the code... write comments all around it so you can get the flow of control) and play around with it for a while, you should be able to fully understand what you're having trouble understanding now.
04/25/2012 23:05 pro4never#11
Completely agree. Impulse's base 5165 source gives a great starting point because it contains just enough features to be workable as a base but is also written in a very straightforward and readable way.

Personally I dislike some of the organization but that's just me. Works just lovely as a learning reference.
04/26/2012 14:25 CraZyWTF#12
i hope you found answer to your questions ,epvp is usually a friendly comunity :P