Skip to content
/ Godot-GameTemplate Public template

Template for top-down shooter, with solutions for tough problems.

License

Notifications You must be signed in to change notification settings

nezvers/Godot-GameTemplate

Repository files navigation

Godot Game Template

A starting point and reference project for creating games with the Godot Engine, particularly suited for top-down shooter games. Project is located in addons/top_down to keep project conflicts to a minimum. It showcases recommended project structure.

This repository also includes addons/great_games_library, a collection of scripts that offer general-purpose solutions applicable across various games.

Additionally, for task organization, the project includes a simple Kanban Tasks - Todo Manager plugin.

⚠️ CAUTION:
Due to an issues with a custom AudioBusLayout resource locations in Godot, I've kept the audio bus layout at its default location and name as default_bus_layout.tres.

NOTE:

  • This template is not recommended for beginners who may need a guidance.
  • It serves as my personal project template and will continue to evolve as I develop my own game. Updates will be made until the project starts to go beyond the needs of a generic top-down shooter and into game-specific content.
  • All assets are made by me and are free to be modified and used for inclusion in commercial products, but not sold as your creation. Soon will be released as a separate package on nezvers.itch.io

PREVIEW

Main Features

  • Menu system
    • Full Screen
    • Audio (Master, Music, Sounds)
    • Button state style tweaning
  • Pausing system
  • Frame by frame debug pausing (P - pause and advance, [ + P to unpause)
  • Scene transition using shader on a screenshot
  • Node reference managment ReferenceNodeResource
  • Easy instancing with configuration callbacks and dynamic instance pooling InstanceResource
  • Static functions for threaded loading ThreadUtility
  • Sound effect system SoundResource with autoloaded SoundManager
  • Resource saving SaveableResource
  • Data transmission system used for damage, pickups, obstacles AreaTransmitter
  • Scene central data collection ResourceNode
  • Enemy AI Astar grid path finding
  • Enemy wave spawning

Recommendations

To have easier learning experience on how project works I would suggest to start with these scenes:

  • Menu - addons/top_down/scenes/ui/screens/title.tscn
  • Rooms - addons/top_down/scenes/levels/room_0.tscn
  • Actors - addons/top_down/scenes/actors/actor.tscn
  • Weapons - addons/top_down/scenes/weapons/weapon.tscn
  • Projectiles - addons/top_down/scenes/projectiles/projectile.tscn