Skip to content

Starting To Contribute

Matthew Marshall edited this page Aug 15, 2018 · 1 revision

Woohoo! You've got the SoA repositories downloaded and building, you've read the standards on how to contribute and you've read how to use Git to actually do the contributing, and now you're ready to do your first bit of coding.

Wait, you're not sure where to start? Don't worry, no one expects you to immediately have an idea of everything going on in the codebase. Here are some ideas of where to start:

Code Style Conformance

The code that was written prior to SoA becoming open-source was written in a whole host of different scenarios as the team grew and shrunk and development style changed with experience. As a result a lot of the code is in various styles and states. If you want to make a lot of other contributors incredibly happy, why not have a go at bringing sections of code into alignment with the standards written up on the wiki?

This will be a great way to firstly get quick PRs firing off, giving you experience with the process of contributing, but also an amazing way to get a good idea of the structure of the codebase. Of course, the biggest reason is you'll become popular very quickly for it!

Documentation Improvement

This is a big one! It's nice and easy but to do it would make you the champion of the code base. Simply put, we have a real lack of good documentation on classes, functions and variables. Adding this in a lot of cases is not too hard, as the functions are doing reasonably obvious things.

This is similar to the standards conformance in that it's not going to make the game any different immediately, but it will hugely improve the quality-of-life of contributors going forwards - including yourself!

Tackling Unused Parameters

A lot of parameters in the codebase have been tagged with VORB_UNUSED, this is a temporary measure which needs resolving as laid out in this issue for SoA and this one for Vorb.

For now you could go through and catch the particularly easy cases, where functions (particularly lambdas for events - the Sender parameter is usually unused - and virtual function overrides in Screen classes - gameTime is often unneeded) have been well-defined and some parameters were never going to be used. In these cases, making those parameters anonymous and removing the tag would be a nice easy start to contributing!

Compiler Support

If you are fairly experienced, or want a challenge, another great place to work would be in extending compiler support of the game and particularly the Vorb engine. This work would be no small undertaking so make sure you understand what it means to do this! Should you succeed however, great reward and fame awaits!

To see which compilers are currently supported, you can look at this list.