Since you know German language you are half way there since Metin2 was born in Germany. To learn programming in general you need good English. If you know English your general programming researches will be a piece of cake and you will understand code very easily because you will know almost every time what the variables mean and therefore, their use.
Little tips I can give you:
- Baby steps, start with simple how-to's and video tutorials. It doesn't have to be for Metin2 a simple Hello world can teach you more than you think.
- Practice makes perfect, if you don't practice, books and pdf's are useless
- Use your logic, you don't have to be a programmer to know what 'if' and 'else' mean
- When facing an unknown variable, look always for it's source: what type it is and how is it initialized. Type is WORD, BYTE, int, CActorInstance, the word before seeing the viariable's name for the first time. Initialization is when you see `variable = something`, this is important to know what your variable contains at the time, at the line you are trying to edit, so don't expect to use `variable` before it means something.
- Overloads: when you see function `X(int param1, BYTE param2, std::string param3)` you know that this function takes 3 parameters (or arguments) so if you see an error about parameters or arguments you know that you either didn't pass 3 parameters or you passed the wrong type (example: param1 is an `int` if you pass `BYTE` you will get an error)
- Think big, start small. No matter how big your dreams are, start from the ground up. Make sure you are using the latest possible systems, resources, code. New = better. If you can have a full working source with no systems in it, but stable, secure and optimized to it's own system but to all user systems as well, you are a better developer than one that sells or shares a source with 80 systems that works crap, gives core-downs and is vulnerable to attacks and hacks. My advice: start with clean sources and update their libs (C++ std, LUA, Database)
- Last tip: when things get tougher don't quit! The tougher a situation is, the more persistent you have to be in order to become a great developer even.
One more thing: if I said something you don't know in this reply, follow my first tip and you will pretty soon.
I hope I helped you enough to begin. Good luck