# Contributing

First off, thanks for taking an interest in contributing to hakka!

Any and all help is most welcome on this project. Rust beginners, Rust intermediates, Rust experts.. even non-Rustaceans. If you're keen to learn Rust, learn 6502 Assembly or just help out in general, there is something for you to do here.

## How can I contribute?

Contributions take many forms.

* Submit a Pull Request.
* Report a bug.
* Suggest an improvement.

...or, the big one: **Create a new level**.

### Submit a Pull Request

Before submitting a Pull Request, it is important that the feature/bugfix/improvement/cleanup is tracked as an Issue. This stops multiple people working on the same item.

So please open an Issue to discuss your intended Pull Request or comment on an existing Issue to let us know that you're planning to work on it.

### Creating a level

If you have an idea for a level, [open an Issue and we can discuss it!](https://github.com/simon-whitehead/hakka/issues/new?title=Level%20suggestion:).

Hakka levels are stand-alone binaries that encapsulate a single scenario. 

The Rust wrapper can have as little or as much control over the environment as necessary to create a fun playing experience. Just how far you go with game-logic responsibility is entirely up to you when creating a level.

#### Level documentation

Perhaps just as important as creating the level, is some accompanying documentation. Hakka levels require some hints where appropriate for players to pass. Unless your level is targeted at seasoned hackers, its probably best that you provide some documentation about the inner workings of the level.

### Report a bug

If you've found a bug, please [open an issue and let us know what we broke!](https://github.com/simon-whitehead/hakka/issues/new?title=Bug:)

### Suggest an improvement

We are always looking to improve the player experience! Please [open an issue and let us know what we can do to make the game better!](https://github.com/simon-whitehead/hakka/issues/new?title=Suggestion:)
Add a basic Contribution file
Add a basic Contribution file
