Jump to content

Advice for beginner


Recommended Posts

Hi everyone,

 

 

I apologize from the beginning for my bad english

ı want to ask bunch of questions

first, ı want to use vanilla core but whats the difference between core and server files 

second ı download bunch of server files and they contain folders like 

auth,channel,db,game99,share

but some of does not contain only src 

and what am I have to do for use vanilla core

I setup freebsd 10.4 

install programs using these topic

but I cant success to install 

- devel/libc++
- devel/libcxxrt

I think they are not exist

 

 

Link to comment
Share on other sites

  • 4 months later...
  • 3 weeks later...
  • 4 months later...

Hi, first of all, you need to be ready to experiment in order to deal with this source. This is not a source for the dev type of "I want a full working source, 1-click installable", NO! This source is a maze, you have to find your way inside it in order to make it work.

Before I begin explaining the basics about Vanilla Core, read this comment of mine if you have no idea what Serverfiles, source code, client and binary source is. When you do so, read the rest of this post if you wish to undestand the basics of the Vanilla core.

Firstly, by choosing to spend your time and energy on this source I assume you are a person that likes evolution and the motto New is always better suits to your needs. If this is the case, congratulations, this is a powerful mindset for a developer, young or experienced. New is indeed always better (unless talking about beta, unstable versions) because new = updated and updated = more stable, more secure, more featured. I advice you to upgrade your software to FreeBSD 12, either by installing a fresh VM, or executing those commands under your current version:

# freebsd-update fetch
# freebsd-update install
# reboot

Second thing: FreeBSD >= 10 has libc++ and libxxrt pre-installed, you won't find them in ports, so there goes that. Now you need to install:

  • devel/clang-devel
  • lang/lua53
  • security/cryptopp
  • archivers/lzop
  • graphics/devil and maybe
  • archivers/zip,unzip,rar,unrar, as well as
  • devel/boost-all
  • devel/googletests
  • sysutils/htop (requires FreeBSD sources build)
  • your database

by cding into the appropriate directories and using make install clean, do not install through ports.
Ports install a pre-compiled, more generic version of the port, while make compilers the port at your system, according to your system specific needs, so it's like the port was designed for this specific machine to work in. The only esception is DevIL, in which you only need the JPEG parts, so you can install it by pkg install devil. This assumes you have already installed:

  • devel/gmake
  • lang/python
  • devel/makedepend

which are required for all source builts.

Now, your database. In order to run your server you need the database server port, but to compile a source, you also need client or connector-c, one of them should be enough. The default Metin2 source works on MySQL, but if you want something more stable and fast, go with MariaDB. To convert your source to MariaDB, follow this topic and maybe this one as well.

To install MySQL 5.7:

# cd /usr/ports/databases/mysql57-server
# make BUILD_OPTIMIZED=yes BUILD_STATIC=yes
# make WITH_XCHARSET=all install clean
# ee 'mysql_enable=YES' >> /etc/rc.conf
# cd /usr/ports/databases/<mysql57-client OR mysql-connector-c>
# make install clean

To install MariaDB 10.3, follow the instructions above and replace mysql-57 with mariadb103.

Note: When you install the server, make sure you run service mysql-server start weither it's mariadb or mysql, the command is the same. When you do that, reboot before unpacking anything in /var/db/mysql.

Once you complete all these there are some source modifications Vanilla didn't make, but are required in order to compile in C++17. This source compiles only in C++17, as it uses port libs, and cryptopp (700) which is installed from ports, compiles only in the specific C++ version. If you attempt to compile the game in any other C++ version, you will get a linking error in the end, which will suck bananas :P

Before compiling game and db, make sure you compile the sources in the Internal folder first, and move the compiled files into /usr/local/lib (unless you sprcify a different LIBDIR in your game/db Makefiles). The Internal projects' outputs will be located in the corresponding project/lib directory. For example, the output for libgame is Internal/libgame/lib/libgame.a, that libgame.a, must be copied in /usr/local/lib. Every project outputs a *.a file in the lib folder, except liblua, which outpus 2 files (lib/liblua.a and lib/liblualib.a). Once you're done with all Internal projects, proceed to vanilla_source folder projects.
Note: game does not compile in C++17 by default, in order to do so, go in your Makefile and change the -std CFLAG into: -std=c++1z and that should do it.

If you need any tips and advices on how to convert your source into C++17, I haven't solved all the bugs yet, but my game and db runs, so feel free to contact me in the Messenger, but for both our sakes, please do a research in this forum first.

I hope these are clear enough for averyone with the question "How to start with Vanilla Core r_71480" and "How do I use the latest FreeBSD features to compile Metin2 source code"

Best regards

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.