Scenes and Layers
Enable users to forego the Scene/Layer paradigm, and just render whatever they want to the screen
Node class and inheritance
Investigate ways to eliminate the need for inheritance (extending the Node class).
This could mean using Nim "concepts", which are very similar to interfaces, to require an object with an update and/or render function that meets a particular function signature.
The user could then use our Node class if they would like, but could also create their own types, inheritance hierarchies, etc.
In doing this, we should think about how we'll want to handle Physics, as requiring certain fields will be necessary (location, velocity, collision shapes, etc).
HUD layer
We currently have a special Layer that exists directly in the Engine class, for HUD purposes. This is a bit weird.
The engine should provide a way to render layers in any order provided by the user, instead of solely relying on the depth (z position) of each layer.
Then we could remove this special HUD layer, and the user could provide their own layer to render above all other layers.
The other use case to think about, is maintaining this HUD layer while still being able to transition between scenes. This could be handled by rendering multiple scenes at once, and letting the user decide the rendering order of these scenes.
Scenes and Layers
Enable users to forego the Scene/Layer paradigm, and just render whatever they want to the screen
Node class and inheritance
Investigate ways to eliminate the need for inheritance (extending the Node class).
This could mean using Nim "concepts", which are very similar to interfaces, to require an object with an
updateand/orrenderfunction that meets a particular function signature.The user could then use our Node class if they would like, but could also create their own types, inheritance hierarchies, etc.
In doing this, we should think about how we'll want to handle Physics, as requiring certain fields will be necessary (location, velocity, collision shapes, etc).
HUD layer
We currently have a special Layer that exists directly in the Engine class, for HUD purposes. This is a bit weird.
The engine should provide a way to render layers in any order provided by the user, instead of solely relying on the depth (z position) of each layer.
Then we could remove this special HUD layer, and the user could provide their own layer to render above all other layers.
The other use case to think about, is maintaining this HUD layer while still being able to transition between scenes. This could be handled by rendering multiple scenes at once, and letting the user decide the rendering order of these scenes.