C# project template for Godot 4 ready to use for game development.
  • C# 73.5%
  • C++ 16.1%
  • Python 9.4%
  • GDScript 0.9%
Find a file
2026-10-27 09:32:54 +01:00
.gff/commands feat: automatically detect reference language from Godot project settings. 2026-10-27 09:32:54 +01:00
.vscode fix: replace call to nox command to new gff commands 2026-07-06 22:20:53 +02:00
project fix: windows callstack being spaced by a blank line. 2026-07-22 12:16:07 +02:00
prototypes style: change repository nomenclature 2024-11-08 14:53:47 +01:00
resources feat: improve blender export script to export whole object hierarchy 2025-02-28 14:09:52 +01:00
tests feat: move from dotnet 8.0 to dotnet 10.0 2026-07-07 22:41:29 +02:00
.editorconfig chore: deactivate rule IDE0130 2026-07-16 18:31:42 +02:00
.gitattributes feat: add wav files to git lfs 2025-08-05 12:16:57 +02:00
.gitignore feat: add argument to edit default text editor on setup script. 2026-06-14 17:34:48 +02:00
.pre-commit-config.yaml fix: adapt urls to domain name changes. 2026-08-24 11:54:21 +02:00
global.json feat: move from dotnet 8.0 to dotnet 10.0 2026-07-07 22:41:29 +02:00
pyproject.toml chore: normalize ruff rules over projects 2026-07-07 22:29:39 +02:00
README.md fix: adapt urls to domain name changes. 2026-08-24 11:54:21 +02:00
StarterProject.sln fix: missing path case changes 2024-11-26 18:26:28 +01:00

Godot Starter Project

This project sets up a base Godot .NET project ready to use for game development. It define the architecture of the project in an opinionated way along with a selection of ready to use tools.

Usage

To create a new project from this starter, use Godot Frog Framework CLI (gff). Follow the initial configuration guide: here

Then, open project\project.godot with Godot

Features

  • Automation scripts for setup, build, export and publish.
  • Commit hooks that enforce conventional commits guidelines and code formatting (run pre-commit run --all-files to check it manually).
  • Export presets for Windows and Linux.
  • Unit test project.
  • Explicit SourceGenerator files.
  • Dotnet project template.
  • VS Code configuration (extensions, debug configuration, build, export and test tasks, default settings).

Automation

A collection of automation tools is available through the command line tool gff.

Enter gff --help in the root folder of your project to see the list of available commands.

To see the documentation of a specific command, use the --help option. For example: gff setup --help

Architecture

Repository

Path Description
.gff/ The automation scripts used by Godot Frog Framework CLI
project/ The Godot Project
prototypes/ Base folder containing prototype projects
resources/ Base folder containing files used to produce the game assets
tests/ The Unit Test Project

Godot Project

Path Description
.builds/ The output folder of export script
.publish/ Cache folder for publish scripts
addons/ Base folder containing godot extensions
locale/ Base folder containing localization files
sources/ Base folder containing game source code
ui/ Base folder containing ui assets
view/ Base folder containing view assets

UI/View folders contains per feature folders. Each folder contains the associated scene with all related assets.

Note: folders named tests are automatically excluded from the export process.

Singletons scopes

The application is structured with two scopes of singletons:

  • App: The application singleton, initialized at the start of the application, released before quitting.
  • Game: The game instance singleton, initialized when starting or loading a game, released when going back to main menu.

Each scope contains Services that can be accessed from anywhere.

Naming convention

Godot Style Guide

Unit Test Naming Convention

Commit Style Guide

Unit Test

A test project is setup to test code with no Godot dependencies: tests\Tests.csproj. This project uses NUnit to orchestrate unit tests.

NUnit Documentation

TODO