Extern

It is the source folder containing 3rd party libraries used by the client and server.

In projects where large teams work together, it is practical to collect 3rd party libraries in a folder.

In this way, each team member can easily set up the project and when edits are made on these external libraries, all team members can easily be informed about these changes.

All libraries used are 32 bit. Nowadays, the current versions of the libraries used have been leaked. In this way, 64-bit studies are becoming widespread.

3rd Party Libraries

Boost (Client + Server)

https://www.boost.org/

Boost is a very large collection of libraries created by collecting many C++ libraries together.

The boost libraries used on the Client and Server side are completely header based. Therefore, boost libraries do not need to be compiled.

The libraries developed and widely used in the boost library are included in the C++ language over time.

Boost was required for some container classes used in the years when the game was developed. However, since these classes are now included in the C++ language, boost can be completely removed from the project. If the language standards of the project are raised, boost can be completely removed.

CryptoPP (Client + Server)

https://www.cryptopp.com/

CryptoPP, included with 40k files, is a cryptology library. It contains many known cryptology algorithms.

Some algorithms are used in m2 to increase security.

LZO (Client + Server)

http://www.oberhumer.com/opensource/lzo/

It is a compression library written in C language.

It is used both client and server side.

DevIL (Client + Server)

https://openil.sourceforge.net/

DevIL is a C++ library for developing applications with powerful image loading capabilities. It supports many image formats.

This library is used both client and server side for processing guild icons.

LibJPEG (Client + Server)

http://www.ijg.org/

It is a C library for processing image files with JPEG extension.

GoogleTest (Client + Server)

https://github.com/google/googletest

GoogleTest is a C++ unit test library based on the xUnit architecture.

MySQL C Connector (Server)

https://dev.mysql.com/downloads/connector/c/

It is a C library that allows Server to communicate with the MySQL database.

DirectX SDK (Client)

https://www.microsoft.com/en-us/download/details.aspx?id=6812

It is the graphics API used on the client side. This library is also used in various input controls.

SpeedTree (Client)

https://store.speedtree.com/

The SpeedTree library used on the client side is a library that allows the creation of tree and plant models.

It is a closed source library and one of the reasons why we have kept the client on 32 bit for many years.

Granny 3D (Client)

https://www.radgametools.com/granny.htm

The Granny 3D library used on the client side is the library used for animation and model processing. Humble Granny.

Lua (Server)

https://www.lua.org/

It is the building block of the quest system on the server side. Lua is an integrated programming language.

The LibLua project in the server is the original lua library.

Python (Client)

https://www.python.org/

It is used as a script language on the client side. Thanks to C++ integration, the module created using this library performs many operations on the client.

It is a separate programming language like Lua. In M2, it is used on the client side through C++ integration.

Miles (Client)

http://www.radgametools.com/miles.htm

Like Granny, it is a sound library developed by RAD Game Tools. This library is used in all sound operations in the game.

Article taken from RTFI Wiki ===== EDITOR NOTES ===== This text will not show up in the rendered page. You can use it to leave notes for yourself and other editors.