🎮 Check it out in your browser 📺 Watch the demo
Template repository for getting started with a new Godot game quickly. Godot Skeleton handles the boring stuff like main menu, pause menu, settings that persist and load from disk, and structuring your project.
Support the continued development of Godot Skeleton.
Godot versions supported: 4.0+
- Main Menu, Settings, Gameplay, and Pause scenes
- Mouse, keyboard, and controller support by default
- Sensible defaults
- Convention over configuration
- Easy to change
- Uses the Compatibility renderer by default for maximum compatibility; change the renderer as needed!
- Ship quickly, ship often
- Developed with all platforms in mind
- Minimal yet stylish
- Each scene has its own folder
- Preconfigured exports for Web, Linux, macOS, and Windows
- OS-aware menu options & settings
- Build script for exports (requires Ruby and untested on Windows)
- Automatically upload to itch.io if butler is installed
- Web builds load slowly in Chrome and Firefox on macOS and don't work in Safari at all; this is an issue with Godot 4.0, see this issue for more details
- Go to https://github.com/brettchalupa/godot_skeleton and click "Use this template"
- Or download the source, unzip it, and you're good to go!
- Add a title to your game and change the credits
- Configure exports
- Change the bundle identifier for the MacOS export
- Add or modify based on your game's needs
- Set up the
[itch]
section inexport.cfg
for your game on itch.io
- Don't worry about keeping your game up to date with Godot Skeleton. It's intended to just be a starting point. When you use it again, it may have some improvements!
- Gameplay defaults to a 2D scene, but you can easily change that for your game's needs.
- Keyboard controls:
- Config I:
- Directional input: WASD
- Confirm: J
- Cancel: K
- Pause: P
- Config II:
- Directional input: Arrows
- Confirm: Z
- Cancel: X
- Pause: Esc
- Config I:
- Joypad controls: Xbox config where bottom button is confirm
- Settings config gets written to the userspace, see the docs for details on the per-OS location
- Play sounds with
Sound.play_sfx(audio_stream_instance)
so that it respects the player's settings - Play music with
Sound.play_music(audio_stream_instance)
so that it respects the player's settings - Add nodes to the
debug_ui
group to toggle their visibility in debug builds with the 0 key
More to come as I make more games with Godot!
You're welcome to contribute fixes and improvements to Godot Skeleton. If you find your needs differ widely, fork it and maintain your own template! That way you'll have it for your own future projects.
Here are my preferences when working on Godot projects and organizing files and nodes.
- Name all files (scripts, scenes, etc.) using snake case -
main_menu
- Name all nodes in a scene using Pascal case -
MenuOption
- Use
snake_case
for all GDScript variables and functions - Use
SCREAMING_SNAKE_CASE
for all constants - Prefer static typing over dynamic typing
I try to follow these the best I can.
Godot Skeleton is dedicated to the public domain. Use it for your own projects with no need for credit or attribution or anything. View the Unlicense for more details.
Delete above and fill out your own README!
[describe your game]
- Install Godot 4
- Clone the repository
- Open up
project.gdot
The export
script uses Ruby for now (sorry). Run it with:
./export
godot
must be present in your environment as an executable for the script to work.
If you configure [itch]
in export.cfg
with user
(your handle) and game
(your game slug) and have butler installed, your builds will automatically get pushed to itch.io.