Fork me on GitHub
Thread Closed 
Contributing & Development
Post: #1
Information 
Contributing to CMaNGOS

There are many ways for members to contribute to the CMaNGOS project and we absolutely want you to! We are a conglomerate of many ages, skills, backgrounds and nationalities and we all have something to add to the community in some way. There are no requirements or restrictions to contributing, just pick a place where you think you can help out and dive in! We have a lot of knowledgeable and resourceful people on board who can help you along the way so don't be afraidto ask questions or reach out forsome guidance.

What follows is a breakdown of the various pieces of the project and community with details and information on how to contribute to them. We've listed these areas in ascending order of difficulty and programming knowledge(1 being the easiest and 8 the most advanced)to make it easier to see where you can best fit in. Each area contains links and contacts to get you started. While you browse, please remember that we do not hold any area of contribution over another as it requires all of these pieces to keep us progressing as a whole. Whether you are a beginner with no programming skills or a senior developer with years of experience: there is room to get involved at all levels as long as you are willing. Also remember that the details of each area and the associated specifications are merely suggestions; anyone is free to chip in however they want to so long as it benefits the community.

If you feel that your particular skills and/or interests are not suited to any of the below suggestions but still want to participate in the project then please reach out to the moderators and we will do our best to provide further details and suggestions.

Note that any contribution to or participation in the CMaNGOS project should be done so in observance of ourCode of Conduct.


Where & How to Contribute:


1. Community Involvement
The foundation of our community is this forum and the IRC channel (#cmangos). We welcome and encourage everyone to post and reply to threads and join us in the IRC channel as it helps us to get to know each other and build up a stronger community.

If you have questions, search the forum and post a new thread if you can't find the answers. If you do find the answers, be sure to thank those who provided them. If you are able to check the forums every so often then read new posts and reply with answers if you know them. No one here will harass or criticize anyone else for not knowing or understanding a concept; we are all here to learn and there is a very wide range of skill levels among our members.

The IRC channel is always active and there are a lot of people watching and chatting throughout the day. If you have simple questions or are looking for someone to walk you through a process or explain a concept, ask in the channel and someone will more than likely be around to help out. Likewise, if you see someone asking questions that you can answer, by all means jump in and do so. We love seeing new members getting involved and offering tips and assistance to each other. Helping out and asking/answering questions is how you learn some of the most fundamental concepts and it can be very fun and challenging.

If you have any questions about the forums or IRC please reach out to one of the below contacts via Private Message:

Recommended Specifications & Requirements:
> A friendly attitude is all you need for this one Smile.

Contacts:
shnibble
Issuntril



2. General Feedback
The forums are not just for questions and answers they are also for discussing ideas and concepts. We also use them for more wordy discussions regarding code that are too long to fit into IRC and merit a thread of their own (as you will see if you browse around the various posts). If you have some feedback regarding any aspect of CMaNGOS then we would love to hear your two cents!

If you have ideas or want to propose changes to either the CMaNGOS repositories themselves or the community in general, post a thread in the applicable forum. Likewise, be on the lookout for new posts on other's ideas and give us your thoughts.

If you are uncertain about where to post your ideas then feel free to reach out to one of the below contacts via Private Message:

Recommended Specifications & Requirements:
> Involvement in the community.
> Ideas and thoughts to share and a willingness to share them.

Contacts:
shnibble
Issuntril



3. Guides & Wiki
There are dozens of threads, posts, wiki entries, guides, blog posts, and instructions posted all over the place and they are generally hard to keep track of and updated. If you have a knack for writing instructions or feel that certain information is missing or not easily accessible then go ahead and change it. We try to keep most of the important stuff in the github wiki (foundhere) or at least a reference to the content from within the wiki so that is a good place to start.

The project is constantly being updated and changed so maintaining our instructions and wiki entries is an immense and exceptionally appreciated task. When making changes please conform the format and style to existing methods and if you are uncertain about making significant changes please reach out to someone for feedback (via Private Message, IRC or a forum post).

If you are interested in helping out on your own then go ahead and get started. If you want to help with guides and the wiki in general but don't have anything in particular in mind then feel free to reach out to one of the below contacts via Private Message and we will do our best to find you something to work on:

Recommended Specifications & Requirements:
> A basic understanding of the English language and grammar.
> Able to write clear instructions others can understand.

Contacts:
Schmoozerd
shnibble
Issuntril



4. Forum Moderation
Forum moderators are necessary to keep cmangos.net updated and moving along with the CMaNGOS project itself. If you have experience in moderating and want to assist with these responsibilities, please reach out to one of the below contacts via Private Message.

Please note that new moderators are not added frequently. When we are looking for more we will typically reach out to users individually or post a recruitment message on the forums. That being said, please feel free to reach out to the below contacts if you are interested.

Recommended Specifications & Requirements:
> People skills and patience.
> Time to commit to moderating.
> A basic understanding of the English language and grammar.

Contacts:
shnibble
Issuntril




5. Bug Reporting
Bug reporting is a significant driving force for any development project and CMaNGOS is no exception. Bug reports lead to patches, updates and new ideas and they give our developers a general idea of what needs to be worked. There are thousands of potential bugs considering the many configurations, cores, player populations and many other variables at play while a CMaNGOS server is running. The only way we will know about a bug is if someone somewhere happens upon the right set of circumstances to produce unintended behavior.

To properly report a bug you must be able to recreate it in a "clean" environment. This means that you must run through a series of checks to be sure that the bug is indeed a real issue and not a product of a bad configuration or customization beyond the control of the current version of the CMaNGOS repository in question. There is a detailed guide for bug reporting located in the wiki (foundhere); however, the below checklist outlines a fairly comprehensive procedure:

  1. Take notes on every possible detail and variable you can think of at the moment the potential bug occurred.
  2. Check theIssues Trackerto see if the problem has already been identified. If so, then feel free to add a message to the existing issue to provide any more details of the problem. If the issue is not already being tracked then proceed.
  3. Review your configurations and settings to be sure everything is absolutely correct.
  4. If you made any changes to the SQL databases or core code, make sure that reverting those changes does not eliminate the bug.
  5. Note all versions and releases for the databases and core in use.
  6. Clone and re-compile the most updated release of the respective CMaNGOS repository.
  7. Attempt to recreate the bug using as many variations of circumstances you can come up with so that you can give a detailed report of your findings.
If you can recreate the bug consistently on acleanserver buildthen go to theIssues Trackerand create a new Issue with all of the details and version information you obtained. If you are uncertain as to if the behavior you are seeing is a bug then you may want to ask in IRC or the forums first before creating a new Issue on the tracker.

There is no specific group overseeing bug reporting as it is a fairly broad topic in regards to CMaNGOS. However, if you have questions about bug tracking or reporting or need help writing your first bug report please feel free to reach out to one of the below contacts via Private Message:

Recommended Specifications & Requirements:
> Either run or have access to a CMaNGOS server.
> Basic deductionandproblem solvingskills.
> Familiarity with CMaNGOS.

Contacts:
shnibble
Issuntril



6. Database Maintenance & Script Development
Scripting and maintenance for the various database providers (listed below) is an excellent introduction to development as it does not require knowledge of C++ programming. Database scripts are written in SQL and manage various pieces of the game such as special events, npcs, gossip, texts, items, objects, and many other entries which fill out the world itself. Writing database scripts takes time to learn the different mechanisms available and an attention to detail. The tools are all there to implement the necessary scripts, it just takes time and a methodical approach to do so.

Although we do not have an in-house database, there are several providers we work closely with who are always looking for help maintaining their respective databases and keeping them up to date with the CMaNGOS cores. If you have some knowledge in SQL and a mind for database management then please feel free to reach out to the below contacts depending on where your interests may lie.

Recommended Specifications & Requirements:
> Knowledgeable in SQL.
> Willing to learn and help contribute in a team environment.
> Able to coordinate with team members to achieve common goals.
> A passion for quality work.
> An understanding that this is a hobby and not a job; there is no pay or pressure and we contribute as time permits.
> Open to mentoring as required to advance your skills.

Contacts:
Silvermoon
YTDB
UDB
ClassicDB
TBCDB



7. ScriptDev2 Development
ScriptDev2 is a close relative to the various CMaNGOS cores and is essential to operating a fully functional server. ScriptDev2 handles the more advanced scripts which cannot be implemented through the databases and covers a broad range of applications throughout the game world (e.g. boss scripts, advanced quests, etc). Scripts are written in C++ but are generally easier to comprehend and work with than core development.

If you just want to contribute on your own then you are free to do so of course, just checkout the repositories on github (located here). However, we encourage anyone with the desire to join our team officially to inquire with the below contacts for more information. Even if you think that you lack the experience or skills necessary to participate, do not hesitate to reach out and get a dialog going as we are absolutely able to teach anyone who is willing; everyone has to start somewhere.

Recommended Specifications & Requirements:
> Knowledgeable in C++ programming.
> Willing to learn and help contribute in a team environment.
> Able to coordinate with team members to achieve common goals.
> A passion for quality work.
> An understanding that this is a hobby and not a job; there is no pay or pressure and we contribute as time permits.
> Open to mentoring as required to advance your skills.

Contacts:
Schmoozerd
Xfurry



8. Core Development
Core development is where structural changes and improvements are made to the various mechanisms and pieces of CMaNGOS. If you want to contribute to core development, checkout the wiki entry on contributing (foundhere) and get involved in the community. There are always new projects and concepts being worked on and discussed and all are welcome to participate wherever and however they wish.

There is a lot of freedom in our working environment and developers are encouraged to focus on what they want to as opposed to being subjected to a task list or anything of that nature. This is an open-source project and the freedom to work in and explore all aspects of it is a critical foundation to our ideology.If you just want to contribute on your own then you are free to do so, just checkout the repositories (located here) and see what needs to be done. We also want to encourage anyone with the desire to join our team officially to inquire with the below contacts for more information. Even if you think that you lack the experience or skills necessary to participate, do not hesitate to reach out and get a dialog going as we are absolutely able to teach anyone who is willing; everyone has to start somewhere.

Recommended Specifications & Requirements:
> Knowledgeable in C++ programming.
> Willing to learn and help contribute in a team environment.
> Able to coordinate with team members to achieve common goals.
> A passion for quality work.
> An understanding that this is a hobby and not a job; there is no pay or pressure and we contribute as time permits.
> Open to mentoring as required to advance your skills.

Contacts:
Cyberium
Schmoozerd
Xfurry



Thread Closed 


Forum Jump:


Users browsing this thread: 1 Guest(s)

Continued MaNGOS | Return to Top | | Lite (Archive) Mode | RSS Syndication