Build Status:
Linux
Windows
Codacy Status
WRATH OF THE LICH KING BRANCH
A World of Warcraft server for Wrath of the Lich King
Mangos is open source project, built in C++, it's fast, runs on multiple
platforms, can store game data in MySQL and PostgreSQL. It also has
optional support for SOAP, and aims to be 100% compatible with World of Warcraft
in its WotLK version, namely patch 3.3.5a.
If you liked the third incarnation of World of Warcraft and still want to play
[WoTLK WoW][4], this is the branch for you. We provide an authentication
server where you can manage your users, and a world server which serves game
content just like the original did back then.
On top of that each update is built by Travis CI as you can see by the
image next to the chapter's heading! We do love green builds, and working things.
To complement this, we push builds through Coverity to find and fix any
possible security issues.
World of Warcraft, and all World of Warcraft or Warcraft art, images, and lore are
copyrighted by Blizzard Entertainment, Inc.
Requirements
The Mangos server supports a wide range of operating systems, and various
compiler platforms. In order to do that, we use various free cross-platform
libraries and use CMake to provide a cross-platform build system which
adapts to your chosen operating system and compiler.
Operating systems
Currently we support running Mangos on these operating systems:
Windows, 32 bit and 64 bit. Windows Server 2008 (or newer) or Windows 7 (or newer) is recommended.
Linux, 32 bit and 64 bit. Debian 7 and Ubuntu 12.04 LTS are
recommended. Other distributions with similar package versions will work, too.
BSD, 32 bit and 64 bit. FreeBSD, NetBSD, OpenBSD and
DragonFly are recommended.
Of course, newer versions should work, too. In the case of Windows, matching
server versions will work, too.
Compilers
Building Mangos is currently possible with these compilers:
Microsoft Visual Studio (Express[^1]), 32 bit and 64 bit. Both
Visual Studio and the Express editions of Visual Studio are
supported. Only Visual Studio 2012 and above are now officially supported.
Microsoft Windows SDK, 32 bit and 64 bit. The Windows 7 SDK is
recommended, as older versions lack compiler features required to build
the server.
Clang, 32 bit and 64 bit. The Clang compiler can be used on any
supported operating system.[^2]
Dependencies
The Mangos server stands on the shoulders of well-known Open Source
libraries, and a few awesome, but less known libraries to prevent us from
inventing the wheel again.
Please note that Linux and Mac OS X users should install packages using
their systems package management instead of source packages.
MySQL / PostgreSQL: to store content, and user data, we rely on
MySQL/MariaDB and PostgreSQL to handle data.
ACE: the ADAPTIVE Communication Environment aka. ACE provides us
with a solid cross-platform framework for abstracting operating system
specific details.
Recast: in order to create navigation data from the client's map files,
we use Recast to do the dirty work. It provides functions for
rendering, pathing, etc.
G3D: the G3D engine provides the basic framework for handling 3D
data, and is used to handle basic map data.
libmpq: libmpq provides an abstraction layer for reading from the
client's data files.
Zlib: Zlib (Zlib for Windows) provides compression algorithms
used in both MPQ archive handling and the client/server protocol.
Bzip2: Bzip2 (Bzip2 for Windows) provides compression
algorithms used in MPQ archives.
OpenSSL: OpenSSL (OpenSSL for Windows) provides encryption
algorithms used when authenticating clients.
Lua: Lua 5.2 (Lua 5.2 for Windows) provides a convenient, fast
scripting environment, which allows us to make live changes to scripted
content.
ACE, Recast, G3D and libmpq are included in the Mangos distribution as
we rely on specific versions.
Optional dependencies
Doxygen: if you want to export HTML or PDF formatted documentation for the
Mangos API, you should install Doxygen.
Lua: if you want to test drive how Mangos feels with Lua as
scripting language instead of the scripting library, you will need Lua 5.2.3
installed. Although an internal version is included.
Discuss
If you need help with building and installing Mangos there are thousands of
users out there already running Mangos and many more you can find on our
project website and discussion forum to assist with any issues you may have.
License
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
Street, Fifth Floor, Boston, MA 02110-1301 USA.
The full license is included in the file License.md.
In addition, as a special exception, permission is granted to link the code of
Mangos with the OpenSSL project's OpenSSL library (or with modified
versions of it that use the same license as the OpenSSL library), and distribute
the linked executables. You must obey the GNU General Public License in all
respects for all of the code used other than OpenSSL.
[^1]: Visual Studio Express versions prior to the 2012 release can only
build 32 bit applications, unless you install the Windows SDK.
[^2]: Clang support for Windows is experimental. Failure to compile MangosZero
may also relate to the experimental state of the port.