How to Contribute
Are you the kind of person who likes to contribute to a community where you belong? You came to the right place: GC is a NON-profit project, based on AzerothCore.
If you want to help the project, you do not need any special permission or access, can already start contributing. Being that our project codebase and communication channels are completely open, everyone can just start learning and contribute.
The open-source is not only our philosophy: it is our strength.
And, there is actually a lot you can do even if you are not a programmer. As we will explain here, there are different roles you can choose to make GC a better project. Both technical and non-technical roles.
People who contribute regularly to the project that show professionalism and dedication may be considered to become GC Staff.
Game-Master applications
Thank you for your interest in contributing to our project. While we always look for active contributors, who can help us to raise the quality of AzerothCore and GC even further, our GMs will be recruited from our Contributors. All our GMs earned their state by fulfilling one or more of the roles below.
Non-technical roles
Bug reporter
Reporting bugs in our bug tracker is of course a way of helping our project. Just make sure to:
- avoid reporting duplicates: always search among the existing bugs before opening a new report
- make sure what you are reporting is actually a bug – checking bug reports takes us time, help us save it, and double-check your reports before submitting them
- make sure you fill the template of the report and include enough information so it is easy to understand and reproduce the bug
- always include reproduction steps: developers cannot fix a bug if they cannot reproduce it first
- include links to any items/NPCs/Spells/etc… related to the bug, you can use wowgaming or similar search engines
- attach images or videos to the bug report, you can easily drag-n-drop (or copy-paste) images directly into the GitHub report
- if you think some game mechanic should work differently than it currently does, you have to include relevant sources that demonstrate it
Advertiser
Help our community grow and find new users and contributors by advertising our project around the web.
Videomaker
Creating videos about playing on GC and publishing them on YouTube helps our project to get more visibility and gives our advertisers great tools to better do their job.
Make sure you include “GC” in the video title and our website URL in the video description.
Graphics Designer / Artwork creator
If you have image editing skills, you can help us by providing graphic content for our website.
You can also help the project by providing nice screenshots of the game that include the GC logo, so we can include them in our website posts. For more info about this, check the #artworks channel of our Discord server.
Supporter
You can help other users who need help with installing and accessing the game or simply need some generic guidance by answering their questions on the #support channel of our Discord.
Moderation
Help us keeping GC a friendly community. Report to the Moderators or Admins whatever needs to come to our attention.
Always act to turn off any drama instead of feeding it. Encourage people to use the ignore feature of the game instead of feeding the troll.
Be a peacekeeper. This will make you a good candidate to become a Moderator.
Technical roles
Don’t let the word “technical” scare you. There is a huge amount of tasks you can perform by just getting a local AzerothCore server running on your computer.
This guide can give an overview of how to achieve it as well as giving extra hints on how to learn further: Getting started with AzerothCore.
The technical roles are listed from the easiest role to the most complex. Per every role some requirements are listed, every role implicitly requires the requirements of the previous role(s).
1) Bug triaging
Requirements:
- basic knowledge of the game
- NEW: using local AzerothCore server (of a recent version) installed in your machine [recommended]
- a free GitHub account
Nice to have :
- good knowledge of GM commands (but you can learn them along the way)
Players report bugs to the AzerothCore bug tracker on GitHub. We receive many bug reports, however, not all of them are valid or properly reported. So contributors have to triage the bug reports and link the valid ones to the AzerothCore GitHub repository, dividing them per category (e.g. generic bugs, 1-19, 20-29, etc…), where all the technical discussions happen, so developers can focus on them.
Bug triaging is very simple and extremely important for our project. If you are able to install a local AzerothCore server on your PC, you can help with this.
2) Game Tester
No (additional) requirements.
Nice to have:
- having a good understanding of the basic git command can help
At AzerothCore no one pushes fixes directly into the master branch. Not even admins. We care about stability, so we first require every developer to open a Pull Request (PR) containing the code changes, which must be properly reviewed and tested. We mark the PRs that require to be tested with a [Waiting to be tested] label.
Contributing as a Game Tester is also relatively easy, and it is so important that we have published a dedicated guide for it: How to test PRs at AzerothCore.
Helping the project by testing PRs will give a boost to our project development, allowing fixes to be approved faster and get to the GC live server sooner.
3) DB Fixer
(Additional) requirements:
- use applications such as Keira3
- understanding of how the tables of the AC world database are structured
- basic understanding of the SQL language
SELECT
,UPDATE
,DELETE
andINSERT
statement
Nice to have:
- a deeper understanding of the SQL language can help
If you want to learn how to fix bugs in WoW, this is your starting point. This point is well explained here so there is no need to repeat it.
4) Core Developer
Requirements:
- Knowledge of the C++ programming language
- – OR – knowledge of other object-oriented programming languages and be willing to learn C++
If you want to learn C++ and help with core development, we recommend getting some programming knowledge first. Unlike the other tasks, this is not something you can figure by just experimenting with your local server. There are plenty of tutorials online about C++ programming, like this for example.
Also, it is good to get a good IDE so you can easily do debugging, such as Visual Studio (Windows-only) or CLion (cross-platform). You can try CLion for free for 1 month, then we can give you an open-source license.
Bugs lifecycle and where to find reports
In short, the lifecycle of a bug is:
- 1) the player finds a bug and reports it on the AzerothCore bugtracker
- 2) a contributor triages the bug report and link it to AzerothCore
- 3) a contributor creates a fix and submit it via PR
- 4) the PR is then reviewed and tested
- 5) the PR is then merged into AzerothCore
master
and so the bug solution will get to GC at the next server update (check #changelog on Discord to know when the server gets updated)
Bug reports coming from GC that have passed the triaging step are divided into GitHub “projects”. Every project contains all the bugs of different contents, for example: “generic bugs”, “1-19”, “20-29”, etc… You can pick a bug that is in TODO and does not have any open solution or assignee yet and work on it. When you have a solution ready, send your code via PR.
Contact us
If you need any assistance while contributing, just poke us on the GC Discord.
Any development-related discussions about AzerothCore should take place in the AzerothCore Discord instead. Public conversations are preferred to private messages, unless really necessary,
For technical questions such as programming, installation, troubleshooting, or usage of AzerothCore, it is better to use StackOverflow rather than directly ask on Discord (read this).