#Code of Conduct:
-
Every function, variable or input action must be in snake case standard (https://en.wikipedia.org/wiki/Snake_case).
-
Enums are data types and should be written in Camel Case (https://en.wikipedia.org/wiki/Camel_case), where every word is starting from capital letter and no underscores between.
-
Members of Enum types are de-facto constants and should be written all in capital letters with underscores between words, ie: enum ExampleEnum { OPTION1, OPTION2, }
-
All constants must be written in capital lettesr just like members of Enum types: const DUMMY_CONSTANT := 0
-
File names are using naming conventions from point 2.
-
Numbers must be separated by comma and space which means Vector2(1,1) should be written as Vector2(1, 1) or in case of Godot use built in constant: Vector2.ONE
-
Every mathematical operator must be separated by space instead of 2+2=4 write 2 + 2 = 4 or 6 / 2 = 3
-
We must always default to built in engine futures before implementing our own in GDScript. Engine build in functions are driven by C++ and are extremely fast.
-
We must try to implement custom game functionality in GDScript as it is portable without hassle between all platforms supported by Godot.
-
When performance of code is issue we must first try to optimize GDScript (why look at 9). If it wont solve problem then we will use GDNative (Rust/C++ preffered).
-
We wont use Singleton (Autolad) for game state, instead we will use shared resource as an inject dependency to all scenes that require that kind of data.
-
Godot doesn't have structs, we will use Resources instead.
-
Artists will separate their raw (project) files from production files to different folders. Blender (*.blend) files shouldn't be in the same folder as files exported from 3d software. We can have "raw_assetes" folder for files used by artists and "assets" folder that is used by game internally.
-
Node "Pointers" / References shouldnt be stored in arrays (only for iterating purposes) -> use groups instead (https://docs.godotengine.org/en/stable/classes/class_scenetree.html?highlight=group)
Any suggestions?