/server

MangosBot for mangos-zero (Classic WoW)

Primary LanguageC++

Come and join to the Single Player Project Discord Server!

logo


Build Status:
Linux Windows Codacy Status

VANILLA WOW BRANCH

A World of Warcraft server for Vanilla WoW


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 vanilla versions, namely patch 1.12.1 and patch 1.12.2.

If you liked the first incarnation of World of Warcraft and still want to play vanilla WoW, 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 (Express1), 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.

Footnotes

  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 Mangos may also relate to the experimental state of the port.