Start here

From RewardMetin2 ~ Metin2 Developers' Wiki
Jump to navigationJump to search

Before starting to develop your server, you need to understand that Metin2 development or administration IS NOT an easy task that anybody with a bare minimum knownledge of computer sience could do. Even if you are an hobbyist, and have no intention in producing a server, you should at least know the basic of those arguments that will be listed in this page.

Today, a private server it's a buisness, you have to invest money in dedicated server, developers, administrators or even creating a small company, for generating an income.

This page does not talk about Game Founders (or invertors), the inverstors are only excepted to invert money and ask for keep the revenue, it's not required for them to learn the internal components of the game, but they MUST know what idea, person, are investing.

Note: General knownledge of Computer Science is not included, but it's required even for a hobbyist.


Server administrator (GA):

  • Expert knownledge of the system you are running the server, which includes, for example, firewall, package managing, services.
  • Advanced knownledge of the database storage server. (Required for diagnosticating issues on the MySQL part)

Client developer:

  • Basic knownledge of the Windows operative system and its API.
  • Basic knownledge of the Client and Server protocol/structure. (Metin2 already wraps all the socket calls)
  • Expert knownledge of the C and C++ programming language.
  • Advanced knownledge of the Python 2.7 programming language. (required for making internal changes in the python part of the game)
  • Advanced knownledge of the Visual Studio IDE.

Engine developer:

  • All the requiremenets of a Client developer.
  • Advanced knownledge of the Windows operative system and its API.
  • Advanced knownledge of DirectX 9 API
  • Basic knownledge of the Granny2 animation system. (required for making changes in the animation system of the game)
  • Basic knownledge of the Miles Sound System. (required for making changes in the Audio core of the game)
  • Basic knownledge of the SpeedTree API. (required for making changes in the Tree rendering part of the game)

Server developer:

  • Basic knownledge of the FreeBSD operative system and its API.
  • Advanced knownledge of the Client and Server protocol/structure. (which includes Unix sockets)
  • Expert knownledge of the C and C++ programming language.
  • Advanced knownledge of the GNU Makefile syntax and the GNU C Compiler or CLang

Core developer: (Server side changes for stuff like network management)

  • All the requires of a Server developer.
  • Advanced knownledge of the FreeBSD operative system and its API.

Quest developer:

  • Expert knownledge of LUA 5.0 programming language.

[Contribution note: please submit a detailed role about the missing roles (like 2D and 3D artists)]


This wiki aim to explain the technical knownledge of Metin2, for example how the codebase is structured, or how to configure a server.

At the end of the tutorial series, you should have a basic knownledge of how Metin2 work, and you can start naviganting inside the source.

If you do think you are enought confident about the topics wrote here, you can by reading the Tutorial page.