Skip to content
jabsatz edited this page Jul 19, 2022 · 3 revisions

Godot Scene Manager

Welcome to the wiki! As the plugin grows, this wiki will replace the README.md file, which is already getting too big to manage.

About Scene Manager

This plugin was originally made to serve a few use-cases in our team's workflow. It's purpose is to have a simple library that solves problems related to Scene changes. Right now, this means easy transitions and keeping references to unique nodes, but that may change in the future.

Our main goal is to provide a general-use, focused and simple API. This means a couple of things:

  • All functions of this library should be related to issues related to changes in scenes.
    • This is subjective. Discussions regarding what should or should not be added are always up for debate.
  • All API parameters that are not strictly necessary should be optional.
    • For example: If I want to reload the scene, I should just need to call SceneManager.reload_scene(). We can add an options object or something, but using it without parameters should work with some default values
  • No overly specific functions, to keep the library easy to maintain.
    • This is obviously subjective. If enough people request a feature we believe is overly specific, we will add it.
  • Always prefer inversion of control.
    • Instead of implementing a very specific solution to a problem, give the user more control so they can do it themselves.
    • A good example of this is the Custom Animations feature: we could've added more animations ourselves, or make a preset AnimationPlayer file that the user would need to change, but instead we opted for any user to just make the AnimationPlayer by themselves (following a couple of rules). This should in theory allow for future problems to be solved by the users and keep the library cleaner.

Contributing

We accept and encourage code contributions. Make sure to create an issue beforehand detailing the changes you want to make, since they may or may not align with our goals for this library. Anyone who shares our goals and contributes can become a maintainer if they wish to.

Godot 4 support

We currently have a second branch dedicated to supporting Godot 4. As the engine is still in alpha and quite unstable, we're not actively supporting it yet, but if you find an issue and have a fix for it, feel free to open a Pull Request. It will most likely be merged without issue.

Clone this wiki locally