Contributing to Azurite

We want to make contributing to this project as easy as possible for everyone. We love community contributions, after all, this is a community built game engine. Whether you are opening a pull request, or submitting an issue, we ask that you please follow these guidelines in order for your contributions to be easily incorporated into the engine.

We Develop with Github, Trello, and Discord

We use github to host code, to track issues and feature requests, as well as accept pull requests. We use Trello to track development tasks. We use Discord for communication.

All Code Changes Happen Through Pull Requests

Pull requests are the best way to propose changes to the codebase (check out this YouTube Video about git if you aren't familiar).

  1. Fork the repo and create your branch from main.
  2. If you've changed classes, fields, and/or methods, update the JavaDocs.
  3. Document all code that you write using javadocs, including class descriptions, all fields and methods that aren't 100% self explanatory.
  4. Create a new pull request, and wait for the project maintainers to review it. 

If you plan on making large changes to the engine, please consult with the project maintainers to make sure that it is a change we will be willing to work with you on.

Use a Consistent Coding Style

Please follow the Azurite Java Style Guide when styling all of your code. It is important to keep the style consistent across the codebase so that other contributors can read your code.

Contribution Criteria

When reviewing a pull request, we look for one or more of these criteria to be met. 

  • Does the PR resolve a problem or defficiency in the engine?
  • Does the PR add a meaningful new feature?
  • Does the PR modify in a helpful way existing code as to make it simpler to use?

We also look for one these criteria to be met. 

  • Is the code relatively straight forward to make use of without prior knowledge?
  • Does the code follow the Azurite style guide?
  • Is the code properly documented?

How to format a pull request

  • Write a description of the most important changes you have made, and of things you have added.
  • Include a basic use case of your code inside of an empty scene class if applicable (please comment if necessary, this will be added to the documentation site).

Any contributions you make will be under the MIT Software License

In short, when you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern.

Report bugs using Github's issues

We use GitHub issues to track public bugs. Report a bug by opening a new issue; it's that easy!

Write bug reports with detail, background, and sample code

Great Bug Reports tend to have:

  • A quick summary and/or background
  • Steps to reproduce
    • Be specific!
    • Give sample code if you can.
  • What you expected would happen
  • What actually happens
    • Including error logs if applicable
  • Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)