Contributing to an Open Sourced Game

One way to learn game development, especially on a large scale, is to contribute to an open sourced project. Recently I’ve been contributing to the Project Porcupine, a project to build a base building game set in space, similar to Rimworld or Dwarf Fortress. So far it’s still in the really early stages, which allows for setting the direction of the game. Currently, the game looks like this:

So, what are some things you need to know in order to join an open sourced project? The first task is to find one. Search for one, look for an existing project, get a group of people of similar minds to start one, or even start one yourself! In my case, I’ve been watching Quill18’s videos I previously mentioned learning Unity by making an early version of this game.

Okay, you’ve found your project, now what? You might be tempted to start making changes right away, but if there are a lot of people on the project, you probably don’t want to do that. Most large projects, open sourced or not, have some guidelines for contributors. Project Porcupine has a few things to note, depending on if you are doing artwork or code. Code has its instructions in the Contributing.md file. Code has style guidelines that are enforced, along with unit tests that must be passed, for any change to be accepted. It also include instructions for how to get your change in to the main baseline, which I won’t rehash.

There are other ways to contribute. Project Porcupine is hosted on GitHub. Github has anIssues page. You can test the latest build, and find and report bugs. Report bugs by opening a new issue. Issues don’t require any programming knowledge! These are open for a large variety of issues, including game design, bugs, proposed new features, project management style guidelines, and more! Feel free to contribute to them, or open your own.

You can also test proposed Pull Requests (PRs). A pull request is a set of changes that someone is proposing to include in the main build. The wiki has instructions for how to do so, so I won’t re-hash. Look at a PR, test it per the instructions. If it works good, or doesn’t, let everyone know by adding a comment to the PR.

These projects can take a long time, but can teach you basic project management. I’ve learned a lot about managing large software projects, many cool programming tricks, and principals of game design, all in a matter of a few weeks of working on the project. I hope to see you contributing to projects soon, be it this one or others!