Skip to content

kastrbl4nik/gmtk-2024

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gmtk-2024

GMTK Game Jam 2024 entry made in unity in under 96 hours.

Theme

Built to scale

Working Title

Mushroom Moments

Concept statement

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.

Made by:

Folder structure

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

Naming Conventions

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

Team agreements

  • (!) 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 and Strategy 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 and Factory 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published