# Contributing to Tomatenquark

You have already accomplished the first step by reading these contribution guidelines. Congratz!

The second step is only slightly harder by joining us in Discord (opens new window).

Tomatenquark is a meritocratic organization:

Meritocracy is a political system in which economic goods and/or political power are vested in individual people on the basis of talent, effort, and achievement, rather than wealth or social class.

If you invest effort into the project it will be anticipated, and your changes will most likely be included in the game, given you can convince enough members they are an improvement. This usually isn't an issue since contribution is a dynamic process involving feedback from others.

# Organization

The Tomatenquark organization is structured into a multitude of repositories which are briefly described below:

repository Description
sauerbraten_code A read-only mirror of the SVN of sauerbraten (opens new window)
code Contains the code for the Tomatenquark game
essential Contains essential media assets to run the game
tomatenquark.github.io The website of the project
.github Community related files

# Types of contributions

Contributions generally fall under two categories:

We'll briefly cover both of these points.

# Fixing bugs

In any project bugs are anticipated. If you would like to help resolve those, please pick up an issue. We have good first bug (meaning small Tomatenquark related preknowledge is required) issues to help you getting started.

# Adding new features

# Presteps

  • Always helpful: Speak with the other Tomatenquark people about your feature idea.
  • Take some time to document a roadmap for yourself. Which features would you like to work on or help implementing them?
  • You have a new idea for which we don't have an existing issue? (Use the search first!)
    • Positive feedback from a Tomatenquark team member will verify you the feature fits into the big picture

# Submitting your changes

If you are not familliar with git and GitHub you might read the official GitHub tutorial (opens new window) before continuing with this section.

  1. Fork the repository (opens new window) and clone your fork (opens new window)
  2. Create a new branch
    • The master branch represents the stable game that is released to the public
  3. Develop the feature in your branch
  4. Create a pull request (opens new window)
    • You don't need to be completely finished with your work. You can create Pull Requests to get early feedback.
    • Members might comment your work in a constructive fashion to guide you through the process.

# Experiments welcome

Experiments are allowed and encouraged.