How to contribute content to METRO? Read this and find out 😉


You are a programmer and wants to contribute code? Check out how to do this and what to note.

Contribute code


You are a composer or know how to create sounds and music? Great! Read about adding music to the project.

Contribute music or sound


You are good in creating or editing images? That's very good, METRO needs someone like you!

Contribute images

General things

(please read first)


I only work with the github repository of METRO, so if you want to contribute something, you better know how to commit and create pull-requests (there're enough git-tutorials out there 😉 ).

It generally doesn't matter if the content contains music, code, correction of spelling mistakes, bug reports, images,


I always appreciate your help 🙂


If there're any questions left, feel free to contact me under


Contribute code


I know that the code is not perfect and some people would really kick me if they see this, but I don't want to implement huge patterns only to sole one tiny thing a bit more elegant. So if you contribute code just hold it easy, write comments and be sure you follow the code-convention.

  • All variable and method names beginn with a small letter and are written in "camel case"-style
    • e.g.: thisWouldBeAValidName, this_would_not_be_valid, thiswouldneitherbevalid
  • Variables
    • (static) private: _<variableName>
    • (static) public: __<variableName>
    • local: <variableName>
  • Methods
    • private/public: <methodName>
    • public static: __<methodName>
  • final variables consists of capital letters only
  • Braces in own lines
  • getter/setter for fields (I don't make them for instance variables I need reeeally often (s. METRO-class))


Create tickets

You found an error, a bug, a spelling mistake or any other issue in the game and you cant/don't want to solve it? Please create a ticket and describe the issue as detailed as possible. If you don't know that to write are here some tips:

  • Where did you found it (e.g. "In the dialog where you can buy trains.")
  • When it appears or steps to reproduce the issue (like "Simply by using the buy-button." or something like "1.) click on button X, 2.) minimize window, 3.) reopen window, 4.) ...")
  • Whats exactly wrong (a bit more than "button duz not work lol" but "After clicking on the buy-button two trains get bought.")
  • What did you expected to happen (e.g. "Expected the button to buy one train")

These "rules" also apply to spelling mistakes and other issues (not only bugs).


Pull request

You made a commit with new content? Just create a pull request on github to contribute the changes.

First you need to fork my repository, clone it, change or add stuff, commit and push it into your forked repository and then create the request. I'll check it as soon as possible and then merge it with the project.


Adding music/sound


To accomplish a certain feeling of the game, I seek for music that's minimalist (like other parts of the game) and kind of a slow melancholic/jazz thingy (like the existing pieces). The music should be about 2-3 minutes long and encoded as mp3 (or any other standard like wav). It shouldn't be to loud and not to silent, simply as loud as background music should be 😉

I try to create music that only uses the piano but some other instruments are ok as well (but not to many, think of the minimalism).


Adding images


Currently I don't need images because most things are just colored areas. But feel free to create and commit your works if you have even more beautiful images (for e.g. the main-menu buttons or the title image).

Also feel free to create new symbols or images (e.g. a money- or train-icon, image for buy-button, ...).