In terms of Unity since you mention scriptable objects, a singleton is like using [RuntimeInitializeOnLoadMethod]
not to be confused as using DontDestroyOnLoad();
(I'll come back to this) and .tres files are assets/resources such as materials, physicsmaterials, environments, etc. To make a new resource type or scriptable object, use the key word class_name
followed by it's name.
extends Resource
class_name my_new_resource
Right click in the file system tab and select new resource and the script will show up amongst all the other inbuilt resources.
A .tscn file can double up as either a scene or prefab depending on the top node of the scene. Using any node with a transform as the scene's root means it can be loaded into any other scene like a prefab; usually for maps I personally use a plain Node as the root. Because of this scenes in Godot don't use a scene manager, they essentially behave like DontDestroyOnLoad();
until either queue_free() (Destroy())
is called or the scene tree, which is like the game's instance itself, is told to load a specific scene using get_tree().change_scene("path/to/scene")
.