In order to work on this project, you MUST install these tools.
- Unreal 4 4.15 to develop the game in - available here
- Visual Studio 2015 Community Edition to develop C++ code and compile for the project - available here
- SourceTree used for providing a UI interface for Git - available here
- GitHub for Source Control - you're already here!
- Slack for keeping up to date with all of the team tasks and chat - link available for existing and new members on request.
- Trello for helping with task organisation - link available for existing and new members on request.
Please follow the naming conventions as closely as possible:
- Blueprints - BP_BlueprintName.
- Maps - MP_MapName.
- Materials - MAT_MaterialName.
- Meshes - MSH_MeshName.
- Physics Materials - PMAT_PhysicsMaterialName.
- C++ Classes - C_ClassName.
-
C++ Standard
- Member Variables:
- Start with a lower case letter. e.g.
variable_a_
. Butvariable_a
orvariableA
is incorrect.
- Start with a lower case letter. e.g.
- Temporary Variables:
- Variables that are used just within scope of a function for example, start with a lower case letter and DO NOT end with an underscore, e.g. 'variable_a'
- Enums:
- Start with an E_ prefix then the name of what that enum represents, e.g. E_AffectedPlayers.
- Member Variables:
-
Getters and setters are up to the programmer. If the variable is needed for blueprints, please use the UFUNCTION property to provide access to the variable from blueprints:
- E.g. UFUNCTION(BlueprintCallable, Category = "Category Name")
- Set the category name to something that is associated with this class object.
-
To provide access to C++ variables in Unreal 4 please use the UPROPERTY field:
- UPROPERTY(EditAnywhere, Category = "Category Name in Details Pane")
-
Comment at the top of a file if you've worked in it using the block comment headers:
/* * Class Name * ========== * * Created: date time * Class Name: Name of the class. * Base Class: (If applicable) Name of the base class. * Author(s): Name of the people whom have worked on this file. * * Purpose: The purpose of this file. */
-
Use block commenting (/* */) for summaries on objects. Follow this specific commenting convention for methods:
/* * Function summary here * @param param-name param-summary * @return the value it returns */
- This can be used to generate documentation.
-
Use C++ style casts and features. For instance, dynamic_cast<>/static_cast<>.