Skip to content

Project template for any Godot 4.0+ project. It comes with several robust core systems and thorough documentation. Currently under development.

License

Notifications You must be signed in to change notification settings

ljmcclean/godot-game-template

Repository files navigation

Godot Game Template
In Progress

Static Badge Static Badge Static Badge

Summary

Includes:

  • Player

    Basic movement state machine with idle, moving, jumping, and falling states already setup.

  • State Machine

    Basic finite state machine for managing anything with single active states. (e.g. player, enemy, crops, etc.)

  • Save & Load System

    Uses encrypted binary serialization to provide security, a smaller save file, and a custom save structure. This system is highly customizable for more complex projects. Also contains methods for saving and loading user preferences (controls, volume, etc.).

  • User Preferences

    Save and load system specifically for user preferences. Completely modular for custom game settings.

  • Scene Manager

    A simple scene manager to provide additional utilites such as a loading screen and simple pause and resume functions to abstract and simplify basic processes.

  • Basic Menus

    Simple main menu, loading screen, and settings menu. They are purely functional and will require sprucing up. They have built in scene changes and buttons for necessary interaction. The settings menu interfaces with necessary systems and can update and save user preferences.

  • Simple Audio System

    This system includes some basic convenience functions and a prebuilt bus layout integrated with the settings system.

This template provides all of the necessary systems to get started with a new game right away. Unlike some other options on GitHub though, these systems are designed to be extremely customizable and modular. Most, if not all, of them can be easily modified or completely removed.

Getting Started

There are two options to get started:

1. GitHub Template:

  1. Create a new repository using this template
  2. Clone the repository on your device
  3. Open the project in Godot

2. Local Project:

  1. Go to the latest release (not yet active)
  2. Download the source code zip
  3. Unzip the project
  4. Open the project in Godot

Setting Up

Now that you have the project on your device you will need to do a few things before you can get going.

  • Set the projects Default Bus Layout to "res://common/audio/default_bus_layout.tres"

    This settings can be found via the Project tab > Project settings... > General > Audio > Buses > Default Bus Layout

  • Set the Main Scene to "res://scenes/main/main.tscn"

    This settings can be found via the Project tab > Project settings... > General > Application > Run > Main Scene

Further Information

For specific details about each of the systems you can reference the docs or you can use Godot's in-editor class reference (learn more).

For notes on coding style you can reference the style guide and for notes on the project structure you can reference the file structure documentation.

Autoload Roles:

  • Scene Manager

    Scene Manager Documentation

    • The scene manager is used for handling scene changes and transitions. It comes with several methods for handling loading screens, additive loads, etc.
  • Audio Manager

    Audio Manager Documentation

    • The audio manager serves the role of abstracting low-level interactions with Godot's AudioServer while simultaneously ensuring consistent transitions for volume and effects.
  • Events

    Events Documentation

    • The events singleton provides a single point for global signal handling.
  • Save & Load

    Save & Load Documentation

    • This class is used for saving and loading the game with encrypted binary serialization. This means that this class is likely the most flexible but also one of the most complex of all of the autoloads. If you feel lost, NightQuestGames has a wonderful resource that covers all of the intricacies of the process thoroughly.

Resources, Credit, & Licensing

This project is free to use, modify, or redistribute (see LICENSE). Credit is not required but it is appreciated. If you would like to credit me feel free to link my GitHub account.

Godot Download: Download

Thank you to...

Discord Community

If you're interested in joining a Discord community – to give feedback or help on development of this project or to learn from and share with other devs – check out Developer Nexus | Godot.

If you appreciate the project, give it a star!

About

Project template for any Godot 4.0+ project. It comes with several robust core systems and thorough documentation. Currently under development.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published