- C# 73.5%
- C++ 16.1%
- Python 9.4%
- GDScript 0.9%
| .gff/commands | ||
| .vscode | ||
| project | ||
| prototypes | ||
| resources | ||
| tests | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| global.json | ||
| pyproject.toml | ||
| README.md | ||
| StarterProject.sln | ||
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-filesto 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
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.
TODO