Learn how you can contribute to OpenRPG too


Contributing Issues

Before Submitting an Issue

First, please do a search in open issues to see if the issue or feature request has already been filed. If there is an issue add your comments to this issue.

Writing Good Bug Reports and Feature Requests

File a single issue per problem and feature request, do not file combo issues.

The more information you can provide, the more likely someone will be successful reproducing the issue and finding a fix. Therefore:

Contributing Fixes

First and foremost check the Issues page to see what needs to be done. Once you’re ready to start programming see the Programming Standards section.

I have broken the goals and needs by the “Difficulty” of the task. Beginner tasks will be more specific, such as working on a certain function or method. Intermediate tasks will be a little broader, such as creating a specific class or utility. Advanced tasks will be major milestones that need to be completed. And should only be attempted by someone that understand the language.

Pull Request

For something to be considered for merging into master it must be submitted as a Pull Request to a current developement branch first. Pull requests must follow the format found in the Issue Template file.

Programming Standards

File Naming


Code Blocks

  * @desc function description here
  * @param arg bar - what purpose this arg will serve
  * @return function - what does the function return and why
function Class::foo(arg bar) {
    // do stuff
    // 4 space tabbed indent

Function and Variable Naming

  * @desc function description here
  * @param arg variableName - what purpose this arg will serve
  * @return function - what does the function return and why
function Class::my_function_name(arg variableName) {
    // do stuff

Class Naming

class ClassName {
    // private variables and functions here

    // public variables and functions here

Switch Statements

/* this should be the standard method for
    writing a switch statement unless switch
    scoping is required */
switch(c) {
case 'a': {
    // case a code here
} break;

case 'b': {
    // case b code here
} break;

case 'c': {
    // case c code here
} break;

default: {
    // catch all code here