Skip to content

GGTE – Extended template for Godot Engine 4.x, streamlines intricate tasks, empowering developers to effortlessly create exceptional games.

License

Notifications You must be signed in to change notification settings

yudinikita/godot-game-template-extended

Repository files navigation

GGTE logo

GGTE

Boost your game development with the "Godot Game Template Extended"! Simplify intricate tasks and unleash your creative prowess with this all-encompassing template for Godot Engine 4.x.
Template on Itch.io »

🎮 Godot Game Template Extended

Elevate your game development experience to unprecedented levels with the "GGTE" (Godot Game Template Extended)! This all-encompassing template is meticulously crafted for Godot Engine 4.x, aiming to streamline your game development workflow. With its user-friendly design, it simplifies complex tasks, allowing you to channel your creative energy without distractions. From project structuring to seamless debugging, exhaustive testing, and comprehensive code coverage, this template covers every aspect of game development.

Designed to empower both seasoned game development veterans and aspiring enthusiasts, the "Godot Game Template Extended" is your ultimate companion for game jams and personal projects. Embark on your game development journey with unparalleled confidence, knowing that this template has your back. Unleash your imagination and effortlessly create extraordinary games with ease and efficiency.

GGTE logo

🔨 Built with

  • Godot Engine - v4.x or higher
  • Release Please - streamlines the process of generating CHANGELOG, creating GitHub releases, and managing version updates
  • Godot Export - automates the exporting of your project
  • Awesome Splash - a collection of animated splash screens
  • Scene Manager - a tool for managing transitions between different scenes. Taken as a basis and refactored.
  • Credits - rich credit scrolling scene. Taken as a basis and refactored.

✨ Features

  • Continuous Integration

Automatically manages version changes and generates CHANGELOG. Automatically builds desktop versions for Linux, Windows, and OSX using the export_presets.cfg file. Seamlessly deploys HTML5 versions to itch.io. Creates a dedicated release branch and smoothly merges Git commits into it.

  • Scene Manager

The Scene Manager is an invaluable asset for developers seeking to optimize scene management and enhance transitions between scenes. Its robust and adaptable tool menu structure empowers users to efficiently organize and categorize scenes, ensuring a seamless navigation experience. Enjoy the flexibility to go back to previous scenes and customize scene categories to suit your specific needs, all within an intuitive and user-friendly interface.

  • Custom Bootsplash

Personalize your game's bootsplash by selecting either the default Godot bootsplash or creating your own unique logo bootsplashes. Customize the code and effortlessly modify the logo, title, and description to align with your vision. Take advantage of advanced animation capabilities to bring your bootsplash to life.

  • Basic Menu Navigation

Includes a basic menu navigation system. Navigate between in-game scenes, the main menu, loading scene, confirmation panel, credits, and game pause. Enjoy transitions between ready-made standard game sections.

  • Pause and Resume Gameplay

Enhance your gaming experience with a built-in pause feature that allows you to temporarily pause the game. Take control of the gameplay flow and easily resume where you left off with a user-friendly pause menu.

  • Game Settings

Utilize the fine-grained control over audio levels, including master, sound, and music volumes, to ensure an immersive audio environment. Empower players to select their preferred game language, toggle fullscreen mode, and optimize performance by managing vSync. Enhance visual quality by adjusting the render scale for 3D scenes and enabling 2D and 3D anti-aliasing for smooth and polished visuals. Take advantage of these customizable game settings to create a captivating gaming experience.

  • Save Game Integration

Implemented game state saving functionality with automatic saving upon exit. Ensure a clean slate by overriding the existing save game when starting a new game. Enable convenient autosaving and loading of settings to enhance the user experience.

  • Localization Support

Leverage our built-in localization capabilities to easily support multiple languages in your application. Benefit from a collection of pre-defined translations that can be easily extended to accommodate additional languages. Empower your users by providing a localized experience that caters to their language preferences, enhancing accessibility and user satisfaction.

  • And more...

This template goes beyond the mentioned features and ensures adherence to official GDScript guidelines, verified through rigorous testing with gdlint. It seamlessly integrates with other Godot addons, allowing you to leverage its functionality alongside your existing tools and extensions. With this solution, you can confidently expand your project's capabilities while maintaining code quality and compatibility with the broader Godot ecosystem.

record.webm

📝 Getting started

1. Installation

  1. Create a new repo using this template or Click Use this template in Github (learn more about Template Repositories)
  2. Clone the new repository locally
  3. Open the project in Godot Engine 4
  4. You're all set!

2. Usage

  1. Customize the template according to your specific requirements and preferences.
  2. Update the bootsplash to reflect your game's branding and visual style.
  3. Modify the authors' information in the project\credits.ini file.
  4. Update the version number in the project\version.gd file to reflect the current version of your game.
  5. Open the project\src\scenes\game_manager\game_manager.tscn file to access the game manager scene and begin building your own unique game.

Happy coding!

3. Build

To build your project, follow these steps:

  1. Set up the project export by referring to the instructions provided in the official documentation on Exporting projects.
  2. Trigger an automatic export of the project by making a commit that changes the version. This will initiate the build process using the .github\workflows\release.yml file. The automated workflow will handle the export and create the necessary artifacts for your project.
  3. Alternatively, if you prefer manual control over the build process, you can manually trigger the project build using the action located at the following path: .github\workflows\export-dispatch.yml. This gives you the flexibility to initiate the build whenever you choose.

❓ FAQ

Here you will find the most frequently asked questions relating to the project answered.

How can I change the scene?

To modify scenes, you can leverage the power of the SceneManager global class. This class provides comprehensive functionality for managing scene-related operations. For detailed instructions and usage examples, please refer to the extensive documentation available for the addon.

SceneManager.change_scene(scene: String or PackedScene or Node, fade_out_options: Options, fade_in_options: Options, general_options: GeneralOptions)
How can I change the scene using a loading scene?

To utilize a loading scene for changing scenes, you need to create the loading scene first. Here's an example of the code to create the loading scene:

extends Control

@onready var progress: ProgressBar = find_child("Progress")
@onready var progress_label: Label = find_child("ProgressLabel")

func _ready():
  SceneManager.load_percent_changed.connect(Callable(self, "percent_changed"))
  SceneManager.load_finished.connect(Callable(self, "loading_finished"))
  SceneManager.load_scene_interactive(SceneManager.get_recorded_scene())

func percent_changed(number: int) -> void:
  progress.value = number

func loading_finished() -> void:
  loading.visible = false
  next.visible = true

func _on_next_button_up():
  SceneManager.change_scene_to_loaded_scene(fade_out_options, fade_in_options, general_options)
How can I skip the start bootsplash?

By default, the start bootsplash can be skipped by clicking anywhere on the screen. This functionality is enabled by default to provide a seamless user experience. If you wish to disable the start bootsplash completely, you can customize this behavior in the project settings or the relevant code section. Make the necessary modifications to ensure that the start bootsplash is skipped without requiring any user interaction.

How can I skip or speed up the credits?

To skip or speed up the credits, you can utilize the keyboard arrow keys. Pressing the up arrow key will accelerate the credits, while pressing the down arrow key will slow them down. This functionality is implemented through the ui_up and ui_down events, which are initially configured in the Credits settings. If you wish to customize this behavior, you can modify the corresponding scene to define your desired key mappings or adjust the speed settings according to your preferences.

How can I display the game's version number?

To display the version number of your game, you can refer to the project/version.gd file. This file contains the version constants that define the current version of your game.

Here is an example function that retrieves the game version:

static func get_version() -> String:
  var v = load("res://version.gd")
  return "v{major}.{minor}.{patch}".format(
    {"major": str(v.MAJOR), "minor": str(v.MINOR), "patch": str(v.PATCH)}
  )

By using this function, you can retrieve the game version and display it in your user interface or wherever it's needed within your game.

Can I use this template for both 2D and 3D games?

Of course. This template is designed to be versatile and flexible, allowing you to create both 2D and 3D games. It has intentionally been kept open-ended to support a wide range of game development needs. Whether you're working on a 2D side-scroller, a 3D action-adventure, or anything in between, this template provides a solid foundation for your game development journey. So go ahead and unleash your creativity in either 2D or 3D, the choice is yours.

💬 Note

If you have any suggestions or encounter any problems when using the app, please feel free to contact us by email. I am ready to help you and solve any of your problems.

❤️ Acknowledgments

This project drew inspiration and gained valuable insights from the following sources:

I express my gratitude for their contribution and influence on the development of this project.

🔐 License

The source code of this project is licensed under the MIT license, which can be found here.


Site yudinikita.ru  ·  Email mail@yudinikita.ru  ·  GitHub @yudinikita