AscEmu is an independent MMORPG server framework. The goal of the project is to provide a solid foundation for users to build on whilst also providing control over most aspects of the game.
AscEmu does not dictate to users to how the game must run, but instead provides a level of customisation that allows users to deliver the experience they want to deliver.
Whether you wish to mimic what once was or create something entirely new, AscEmu aims to provide the tools to do this.
"Welcome to 2017 and with it, modern C++"
We dropped support for Visual Studio versions older than Visual Studio 2015 Update 3 (see this thread for instructions on how to set up Visual Studio correctly Link).
Our goal for this year is to replace as much legacy code as possible with modern C++.
"What is Legacy Code?"
Legacy code refers to all code prior to the creation of the AscEmu project. This code represents over a decade of community efforts and is licensed under the Affero General Public License (AGPL). Going forward, all new contributions will be licensed under the MIT license, which permits use of the source without restriction. Link
"What is the AGPL?"
This license is designed to force all users of the software to release the source if they provide access to the program in any form. This includes providing access to a hosted service via networking. This is more restrictive than the GPL (a license preferred by many other open source projects), which requires source disclosure only when providing the binary itself.
"Why not simply release AscEmu under the new license?"
There are two main reasons for this. The first reason is that we simply do not believe we have the legal rights to do so. The second (and arguably more important) reason is that we do not believe it is ethical for us to do so. Previous contributions were made to the project under the knowledge that the project had a GPL-style license - a license that developers often use for various ethical and political reasons, rather than simply out of pragmatism. As we cannot possibly contact all previous developers to ask permission, even if we had permission to relicense the project doing so would be incredibly disrespectful as we would be disregarding the wishes of past contributors. AscEmu would not exist without their work, and we are extremely thankful for it.
"What is modern C++?"
C++ is a very old language, but is still being actively developed. Ever since 2011, C++ has made huge improvements to make the language safer and more readable. In light of this, we will be keeping up with the latest version of C++, and our code will reflect this through use of features such as type deduction and smart pointers. This means that going forward, you will be required to use a modern C++ compiler in order to compile AscEmu - this will often mean using the latest version of MSVC, GCC or Clang.
"How can I update my custom server?"
First of all, you should check out the commits made between your version of AscEmu and the current public version. We highly recommend that you document your changes. We also recommend that you use the "AdditionalTable" feature and move your custom spawns and properties to another table. You should check out the db updates (especially the structure changes).
You should ALWAYS set up a test server if you decided to switch to a newer version of AscEmu and TEST your custom scripts/db-changes there before doing anything else! While we support custom modifications of AscEmu as best we can, changes to the public repository are made only with the public repository in mind, meaning that occasionally our changes WILL break your custom code. You are responsible for checking this before updating.
"Will you be developing game content (instances, spells etc)?"
We accept pull requests aimed at developing game content, however the focus of the AscEmu developer team is currently on improving the core systems in AscEmu. Once we are happier with the state of the core systems in AscEmu (or if we get more contributors :)) we will revisit the idea of officially focusing on game content. Remember, AscEmu is powered by community contributions - if you want something improved, you have the power to change it!
Finally, an immediate change we are making is to types used - do NOT use old typedefs such as uint32, uint8 etc - use the new fixed-size types such as uint32_t and uint8_t for all new code.
The AscEmu Team
We wish you a merry christmas and all the best for the year 2017.
The AE-Team is driving home for christmas. Our n...
AscEmu is a big project with nearly 840K lines of code and 2 supported versions. Currently w...
We will move the logonserver files to a submodule
git submodule update --init --recursive