Welcome to 2017 and with it, modern C++
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 visit this 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. visit this 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
Merry Christmas and a happy new year!
We wish you a merry christmas and all the best for the year 2017.
The AE-Team is driving home for christmas. Our new team member Octoplush will answering your support requests (Do not expect any wonder)
Looking for new staff
AscEmu is a big project with nearly 840K lines of code and 2 supported versions. Currently we stuck between database and feature development on 4.3.4 and there is a lot to do.
We need some new people to get back on track so feel free to step in.
- C++ development
- MySQL development
- Content management
- Testing and reporting
- Support and verification management
- Spellsystem (3.3.5/4.3.4)
- Backport from 3.3.5 to 2.4.3
- Synchronize table structure (4.3.4/3.3.5)
- Documentation LuA-Engine
- Proper npc AI
- ... a lot more
Feel free to post your content on our forums.
Organized Github repo
We will move the logonserver files to a submodule
git submodule update --init --recursive
To receive all files from our submodule(s).
- creature_names and creature_proto going to be in one table creature_properties
- Rename: event_names -> event_properties
- Rename: gamobject_namse -> gameobject_properties
- Rename: items -> item_properties
- Rename: itempages -> item_pages
- Rename: items_extendedcost -> item_extended_cost
- Rename: items_linked_itemsets -> itemset_linked_itemsetbonus
- Rename: quests -> quest_properties
- Rename: teleport_coords -> spell_teleport_coords
- Rename: localized tables:
-- creature_name_localized ->locales_creature
-- gameobject_names_localized -> locales_gameobject
-- items_localized -> locales_item
-- itempages_lacalized -> locales_item_pages
-- npc_monstersay_localized -> locales_npc_monstersay
-- npc_script_text_localized -> locales_npc_script_text
-- npc_text_localized -> locales_npc_text
-- worldbroadcast_localized -> locales_worldbroadcast
-- worldstring_tables_localized -> locales_worldstring_table
We will list the major .sqls here for simple update your world db.
Currently we are working on chat commands.
Check out the command documentation on our wiki pages:
visit this link
We finally changed the transport system with the following features:
- Player can logout on transports, after relog they are still on the transport.
- npcs react to players (e.g. Snack-O-Mat or simple gossips)
- player orientation is now saved to the characters table (Check out the updatefiles and char_db_version!!!)
- creatures won't disappear on map change
All instance related stuff will be committed in the near future.
These changes are available on our develop branch and will be merged into our master branch as soon as possible: visit this link
Special thanks to Aaron02 and Evilfairy.
Good bye HackFixes.cpp and enGB dbcs only
Some of you had noticed that we have changed a lot in HackFixes.cpp
We discussed the content of this file internal and we are going to replace these "hackfixes" in a new file called SpellCustomizations.
If you notice that some spells are not working anymore, please create a new issue with the following content on our github page:
- ID: (Use the Addon "SpellId")
- Describe "how should it work":
- Describe "the problem, how it currently work":
If we are done with these changes you can use dbcs from other client languages too.
We clean up some tables in the database
creature_proto_difficulty -> link difficulty with creature entry in table creature_difficulty.
itemnames -> redundant data, see items table.
itempetfood -> merged into items table (column food_type).
- Removed column difficulty (had never worked correct)
- Added column dungeon_difficulty (now it is saved)
- Added column raid_difficulty (now it is saved)
The Wiki is already updated.
Since this commit: visit this link world is worldserver.
Best regards Zyres
New year is coming
A short overview for the year 2015
Since we moved to open source, a lot of things happened to the framework. Here is a short overview what we have done:
- 875 commits in closed source (eventmgr was implemented here)
- over 900 commits in open source
- over 100 issues fixed reported by you on our github branch
- Style changes everywhere
- 939 issues fixed reported by static analytics coverity scan
- dbc loader is nearly completly rewritten
- database is developed by us and not by an external dev team (we changed a lot in our database)
- and a lot more...
We are a small group of people and we can be proud of ourselfs and our work we have done in 2015.
What will happen in 2016?
That's a good question and I can't answer it. It depends on you (and your creativity and skills). Feel free to work on an subsystem, discuss functions and create some awsome code to improve AscEmu.
What should happen in 2016?
Noting speciall, we should work on the issues on github and maybe do some promotion to grow our team and be more flexible/faster in writing code.
The next few days we will clean some random stuff so be patient with us, it is christmas and we visit our families and friends too ;-)
Thank you for your support
New dbc loader
A few months ago we implemented a new dbc loader system. Now we moved most dbcs to this system.
If you have any issues/crashes, please report it as detailed as possible, so we can resolve the problems.
Now it is done.... "one logon" has arrived.
- logoncomm allowing clients with build 12340 and 8606.
- Send only the realms which matches client build
- complete update of the logonserver
- added all new features for logoncomm (packet handling)
- Send only the realms which matches client build
Please update your realms.conf (see: visit this link )
Currently our 2.4.3 repo is still only for MSVC compile. If you like to help feel free to report issues or create pullrequests.
RBG honor in world.conf
We applied the contributed patch from master312.
This patch fixed the missing honor values for random battlegrounds.
To use it add the following lines to your world.conf:
For more information see the latest commits on github.
If you wonder about the commits on github (including these mysterious CID XXXX) here is the answer.
Coverity-Scan is a static analytic tool and finally we reached a Defect Density of 0.42
For more information click visit this link
Good job together! We are on a good way ;-)
Happy Birthday AscEmu #1
The first year of development is done.
Good work and special thanks to our contributors:
Special thanks to Tulba for reporting (mostly) detailed issues.
3.3.5 logon changes
Tonight we changed/removed the password column. (AscEmu/AscEmu not in our TBC repository)
If you setup a new ascemu server you can create a new account in the logon console:
account create name password email
Setting the gm level:
account set gm name gmlevel
See this wikipage: visit this link
If you are updating you server you will need to execute sql/logon_updates. (Not for new users)
We started the 2.4.3 TBC project: visit this link
- MSVC compilation (done)
- Full db (done)
- new move maps (extractor) included and old map-system updated
After we start with this project (end of August) we finished some of the big points:
- Random Dungeonfinder
- GameEventMgr (all old ArcEmu sql data are ported)
Currently we try to clean up the source for future works.
We need feedback and detailed bugreports to plan the next steps.
Opening the gates
Currently the source is available on GitHub. (since 14/03/2015 ;-).)
We would appreciate contributions and some helping hands.
NOTE: We are not high level pro magician... things need time.
As you can see we are still under construction.
Our goal is to create a small community to keep up the "Antrix-Ascent-Arcemu" way of MMORPG framework.
We are a couple of hobby programmer and designer, try to do the best with our knowledge and creativity.
If you don't like what we do "don't flame us"! If you think something is wrong, make a suggestion or start a discussion on our forums.