Since the release of SunwellCore, more and more Wrath of The Lich King private servers are considering to migrate from TrinityCore 3.3.5 to a SunwellCore-based solution. This article will introduce the key differences between TrinityCore (branch 3.3.5) and AzerothCore (the open source SunwellCore-based project).
Where do SunwellCore and AzerothCore come from?
With the release of SunwellCore, the World of Waracraft emulation got a new key-player concerning 3.3.5 server applications. It was originally a closed-source application based on TrinityCore for the Sunwell private server (sunwell.pl), then released to the public from its Polish creators Xinef and Pussywizard when they shut down their private server.
All the detailed info about those improvements are available here. We suggest to read that page before going further in this article.
Because of its fancy features, SunwellCore immediately attracted the attention of several private servers administrators and developers. Its source code was put on GitHub on the Kittnz’s repository, and many others fork repositories of SunwellCore started to pop up on github/bitbucket/gitlab.
SunwellCore source code was served “as it is”, without any kind of support from developers or community. Because of this many private servers were scared of it, despite players were asking to use it.
There was a first attempt of continuing its development as an open source project by Callmephill, but that project had mainly one developer only and it stopped to be active as soon as its creator had health issues and was unable to continue the development.
Few months later a new open source project was created by two Italian programmers Yehonal (who was also the creator of MaNGOS/Trinity Zero, the server application for WoW Vanilla) and Shin (former developer of MaNGOS UDB, TrinityCore and creator of tools like PvPstats and Keira2).
The project was named AzerothCore and it was based on the original SunwellCore source code + the improvements of Callmephill. The new project also received help from other TrinityCore contributors, like Rochet2, Mik1893 and others.
AzerothCore introduced several improvements to the original SunwellCore:
– Included all Callmephill improvements
– Some crashes and stability issues were resolved
– Some game contents were improved
– A new modular system was implemented, allowing to add features without patching directly the core
– A Transmog module (based on the TrinityCore patch originally developed by Rochet2) was added
– The database structure was updated and made similar to TrinityCore
– The localization system was added
– The clang build was fixed
– A PvP statistics system was added (based on the TrinityCore version originally developed by Shin)
– Some ACE deps were replaced with the new C++11
– An installation with Docker was added
– Some features were imported from TrinityCore and CMaNGOS 3.3.5
NEW: with the release of AzerothCore 2.0.0, many other improvements have been added. Read this post for more info about it.
Now that is clear what SunwellCore/AzerothCore is, you are probably wondering if it is better to choose TrinityCore or AzerothCore for your private server.
TrinityCore 3.3.5 vs AzerothCore comparison
AzerothCore inherits from SunwellCore all its game contents and feature improvements (more info at this page). From the point of view of players, it is much more playable and blizz-like style
The modular structure introduced by Azeroth Core allows to add customizations of any kind without patching the core directly. This allows a cleaner and easier way to apply custom changes. Forget about manually importing diffs and resolve merge conflicts.
TrinityCore is very stable since all the crashes caused by the new Boost deps were solved. The original SunwellCore uses ACE (older and more stable deps), but it was always developed on the same platform, this has lead to crossplatform/crosscompiler issues and some crashes. Fortunately, in AzerothCore those kind of issues have been resolved. So both TrinityCore and AzerothCore can be considered stable enough to run a 3.3.5 private server.
AzerothCore inherits from SunwellCore many performance improvements (the original SC had been running with thousands of players): it has a lower server update time diff compared to TrinityCore (expecially with big amount of players).
AzerothCore started with a less clean codebase but the team has been cleaning the original SunwellCore code. Currently there is more code being pushed regularly to the AzerothCore repository than in the TrinityCore one:
Another good point of AzerothCore is the workflow that changes the code: they first open Pull Requests on GitHub, wait that they are tested and after that merge to master. This is different than other projects including TrinityCore where they push directly changes to the production branch.
SUM UP: what’s the best emulator for a 3.3.5a server?
AzerothCore is the winner, especially from what concerns the players and third part tools developers like custom modules. But remember that AzerothCore is based on TrinityCore (and TrinityCore is based on MaNGOS), so they are part of the same family and you can easily import features from one project to another. Also, most of the tools for TrinityCore are compatible with AzerothCore too, and vice versa. They are both valid and great open source projects, and we can only wish the best for them both!
Sample of a modded AzerothCore 3.3.5a with CATA, MOP, WOD, LEGION items and mounts
Video by Maxime Lebel