Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
84 lines (61 sloc) 5.02 KB


Reporting Bugs

If the game stops working, it usually displays a SIMULATION BROKE :( message in an editor that automatically opens, or in a cb_last_error.txt file in your system's temporary directory.

First look if your issue has already been reported:

If not, create a new issue.

  • Please provide details
    • what platform you're on
    • what you were trying to do or what you expected to happen
    • what actually happened
    • the detailed error information
  • Ideally: If the game is still running, take one or several screenshots (camera controls continue to work in many cases)
  • Perfect: Provide precise instructions on how to reproduce the problem (if possible)

Contributing to the Design Doc

The Design Doc outlines the philosophy and decisions that I follow when implementing Citybound.

You can make suggestions of every kind:

  • typos/formatting/clarification
  • feature requests
  • complete system design proposals

All existing design proposals

  • If you have some rough ideas, it is probably best to discuss them in the official community first, where people can give you first feedback and point you to existing relevant Design Proposals
  • If you have an original and detailed proposal, start editing relevant documents of the Design Doc, or add new ones
    • Small tutorial on how to do that in the GitHub Web interface
    • Please give your Pull Request the DESIGN PROPOSAL label
    • Invite people from the official community or authors of other Design Proposals to comment on and suggest improvements/clarifications to your pull request
    • I will take a look at your pull request and give it a detailed review if it meets minimal quality standards
    • We will iterate on it together, a process in which you have the opportunity to explain your motivation and potentially convice me to do things in the way you suggested
    • Make sure to sign the Contributor License Agreement.
    • In the end, we either
      • fully agree with your proposal and merge it into the official design doc, or:
      • we identify a compromise of a subset of the proposed changes and merge that, or:
      • if our disagreement is too large, the pull request gets closed, but with a thorough explanation from my side

Contributing Code

Compiling and running Citybound yourself

Please note, newest commits on master might temporarily be broken or represent work-in-progress state.

Recommended setup:

  • Install the current version of nodejs and git
  • git clone
  • cd citybound
  • npm run ensure-tooling
    • Follow instructions
  • Start the server with npm run dev-server
    • Might take long the first time - installs and compile dependencies
  • Start the browser packager with npm run dev-browser
    • Might take long the first time - installs and compile dependencies
    • It should show you which address to open in your browser
    • If you encounter any weird exceptions in the browser, first try stopping the dev-browser script, deleting the .cache folder in game_browser and re-running dev-browser script`


  • Make sure to sign the Contributor License Agreement.
  • Have a look at the documentation
  • Citybound uses trunk-based development, meaning a very recent work-in-progress state of the code is always in the master branch. The repository owner usually commits directly to master, or uses short-lived feature branches. Contributors use the common fork/pull-request flow and everyone involved tries to get the changes into master as quickly as possible. The newest commits in master might sometimes be broken and not run.

Conforming to style

  • Run npm run lint and fix at least formatting issues that couldn't be fixed automatically. If you have time, adress any best-practises issues it raises.

Have a question? Want to discuss something?

Join me and the other contributors in the Gitter community for Citybound and ask/discuss away!