technical architecture - Nicky-Nice-Games/ggk-UnityProject GitHub Wiki
Our team is going to be using Discord for communication. Everyone on our team is already familiar with using Discord, and most of this project involves something new, so having something that everyone knows how to use will help. Using other options would need onboarding or new accounts, which is not ideal. Additionally, Discord has custom emojis and encourages a tight-knit community, which will help everyone feel comfortable and work together well.
We will be using GitHub for version control. It is an industry standard, and everyone on the team has experience working with it. Other alternatives require payment and/or onboarding time. It also offers features such as issue tracking, projects, and wikis.
We will be using Unity as our game engine. It's much better for low fidelity games than other engines. Most of our team is already familiar with using it, which means we don't need as much onboarding. Additionally, Unity supports multiplayer, controller support, and data transfer, all of which are great for this project.
- Variable names must be in camelCase (no delimiter, first word in lowercase, subsequent words capitalized)
- Properties and Methods must be in PascalCase (no delimiter, all words capitalized)
int myInt;
bool myBool;
float myFloat;
static void myMethod();
public int myInt {get; set;}
- Classes and Structs must be their own files (don’t have more than one class or struct defined in one file)
- Uncompiled and Runtime error code must not be pushed to any repo, unless it is commented out and doesn't run.
- XML comments should be used to describe functions and methods. They can be made by putting three “/” before any declaration of code.
- Descriptive names lessen the need for comments but any complex behavior must be commented and described.
//THIS CODE DOESN'T WORK
//public private string myInt(bool myBool)
//{return bool + 17.0f; }
///<summary>
///This is an XML comment! I can put down paramenters and return types
///</summary>
/// <param name = "num1"></param>
/// <param name = "num2"></param>
/// <return> result of num1 * num2 </return>
public int multiply (int num1, int num2)
To make finding files easier, files are sorted by type and used in the Asset folder of the unity project. Images and models contain files respective to their name like png, jpg, fbx. Scenes contain unity scene files. Scripts contain C# scripts and are further separated into more folders to keep scripts of similar use together.
Comment and describe on your commits. Title them the general change and describe what actually happened towards the change. This also apply to names and titles branches as well.
Pull requests should be descriptive of the feature added or change made to the branch you are merging into. Large changes must be checked by a GSP lead before going out.