A Realtime Distributed Object Server
Based on Astron (Modified BSD 3-Clause)
Ardos is a highly-distributed networking suite designed to power large-scale MMO games. Inspired by the in-house OTP (Online Theme Park) networking technology developed by Disney Interactive Studios, which was used to power MMOs such as Toontown Online, Pirates of The Caribbean Online, Pixie Hollow Online, and The World of Cars Online.
Ardos is first and foremost designed to be a first class citizen of the Panda3D game engine (developed by Disney and CMU), which has built-in, production ready support for this server technology. However, through tools such as otp-gen, it's possible to use Ardos via other game engines/languages.
It's highly recommended to view the Ardos wiki for build instructions, configuration examples, deployment strategies, networking topology, and help on determining whether Ardos is the right fit for you.
Ardos uses CMake and vcpkg for dependency management. vcpkg is included as a git submodule, so you do not need to install it separately.
- CMake 3.22 or later
- C++20 compatible compiler
-
Clone the repository and its submodules (this includes vcpkg):
git clone --recurse-submodules https://github.com/ksmit799/Ardos.git cd ArdosIf you already cloned without submodules:
git submodule update --init --recursive
-
Configure CMake using the bundled vcpkg toolchain:
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=libs/vcpkg/scripts/buildsystems/vcpkg.cmake -
Build:
cmake --build build
To build with MongoDB database server support, ensure ARDOS_WANT_DB_SERVER is enabled (it's ON by default). The MongoDB C++ driver will be automatically installed via vcpkg.
Ardos supports building in "legacy" mode, which makes the cluster compatible with original Disney clients. Generally, this shouldn't be used for new projects. To enable legacy mode, compile with ARDOS_USE_LEGACY_CLIENT.
Helpful for understanding the internal architecture of Ardos and its usages.