GMTK Game Jam 2024 entry made in unity in under 96 hours.
Built to scale
Mushroom Moments
Guide the Sutlebs, short-lived mushroom creatures with a shared consciousness, as they race against time to escape their dark cave in search of the legendary sunlit world. Manage the scale of time and limited lives to help Oyster achieve his dream of freedom.
- kastrbl4nik - Developer
- kilativ-dotcom - Developer
- tab4she - Sound designer / Artist
- _bykeksik_ - Artist
- izonia - Artist
Assets
+---Art # Anything art related
| +---Materials
| +---Models
| +---Textures
+---Audio
| +---Music
| \---Sound
+---Code
| +---Scripts # C# scripts
| \---Shaders # Shader files and shader graphs
+---Docs # Wiki, concept art, etc.
+---Level # Anything related to game design in Unity
| +---Prefabs
| +---Scenes
| \---UI
Type | Naming | Examples |
---|---|---|
Images / Sprites / Textures / Sounds | kebab-case | female-child.png / main-theme.wav |
Classes / Scripts / Folders | PascalCase | AudioManager.cs / AudioManager |
Interfaces | PascalCase prefixed with I |
IWalkable.cs / IWalkable |
Game Objects / Prefabs | Capitalized first letters | Main Camera / Audio Manager |
Use .editorconfig suggestions for everything else
-
(!) Inject dependencies via
Awake()
method when the dependency shouldn't be configured to avoid setting up the dependencies in the inspector:// good private RigidBody2D rb; private void Awake() { rb = GetComponent<RigidBody2d>(); }
// bad [SerializeField] private RigidBody2D rb;
-
(!) Avoid working on the same scene simultaneously to avoid merge conficts in meta files. If something needs to be tested on the scene create a demo scene and make changes there.
-
Remove any
Debug.Logs
before merging -
Remember about
Single Responsibility
principle andStrategy
patterns.public class PathFinding { [SerializeField] private pathfindingStrategy; // any pathfinding algorithm can be put here private List<Node> grid; public List<Node> GetPath() { return pathfindingStrategy.GetPath(grid) } }
-
(!) Don't overuse the prefabs, instead make use of the Unity
Scriptable Objects
andFactory
pattern.public class Shop() { [SerializeField] private ItemData itemToSell; public ItemData Sell() { return itemToSell; } }
-
(!) Merge pull requests yourself, if you're confident about the changes, to save up time.
-
Use conventional commit messages.