Skip to content

coffeebeats/godot-project-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

godot-project-template

A template repository for a Godot 4+ project.

Development

Setup

The following instructions outline how to get the project set up for local development:

  1. Clone this repository using the --recurse-submodules flag, ensuring all submodules are initialized. Alternatively, run git submodule sync to update all submodules to latest.
  2. Follow the instructions to install gdenv. Then, install the pinned version of Godot with gdenv i.
  3. Install the tools used below by following each of their specific installation instructions.

Code submission

When submitting code for review, ensure the following requirements are met:

  1. The project adheres as closely as possible to the official GDScript style guide.

  2. The project is correctly formatted using gdformat:

    bin/gdformat -l 88 --check **/*.gd
  3. All gdlint linter warnings are addressed:

    bin/gdlint **/*.gd
  4. All Gut unit tests pass:

    godot \
        --quit \
        --headless \
        -s addons/gut/gut_cmdln.gd \
        -gdir="res://" \
        -ginclude_subdirs \
        -gprefix="" \
        -gsuffix="_test.gd" \
        -gexit

Tools

Translation

Translation is supported using gettext tools. A messages.pot template file is located at project/locale/messages.pot and contains messages used by the template. Translations to english have already been added, so new language support is as simple as creating a new po file with the translations.

Finally, CI/CD runs check that translations are accurate; any changes to template files will result in fuzzy messages, blocking releases.

Fonts

MSDF rendering is recommended for fonts, but many fonts contain overlapping contours which render incorrectly in Godot. This can be fixed using FontForge's removeOverlap utility. This process is not automated, so if font artifacts are seen when using MSDF rendering, they must be fixed manually.

Releasing

Semantic Versioning is used for versioning and Conventional Commits is used for commit messages. A release-please integration via GitHub Actions automates releases.

Secrets

After instantiating a project from this template repository, the default GitHub actions and workflows require the following repository secrets to be set:

  • BUTLER_API_KEY - Used to authenticate the butler CLI tool with itch.io; required when publishing to itch.io.
  • ACTIONS_BOT_TOKEN - Used to commit formatting fixes to pull requests.
  • GODOT_SCRIPT_ENCRYPTION_KEY - Used to encrypt the export Game artifacts; recommended to create one per platform,channel pair.
  • Various - Update code-signing and notarization secrets once the project is ready for release.

Customization

In addition to Secrets, the following files should be customized for the instantiated repository:

Version history

See CHANGELOG.md.

License

Important

After instantiating this repository, consider removing this license if the project isn't intended to be open source.

MIT License

About

A template repository for a Godot 4+ project.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •