No, you can enable/disable most (all?) components. If you have stuff offscreen then make sure to send a “disable” message to the game object! If you simply move a gui offscreen it will still be rendered. If you disable it it will have almost no impact on performance.
Spawning and deleting things generally have very little impact in Defold. If you use dynamic resource loading it could have a greater impact when the ref count reaches zero and stuff gets unloaded. The next time you spawn an instance the resources will have to be loaded again.
You could turn it into a one-liner:
self.gui_menu2 = collectionfactory.create("loader#gui_menu2")[hash("/gui_menu2")]
I should add an option to not add a screen to the stack (Add option to not add a screen to the stack · Issue #26 · britzl/monarch · GitHub)
What do you mean by this?
Indeed! It’s a great way to learn Lua and the engine. I don’t discourage it at all!
Doesn’t really matter. It shouldn’t have any effect on performance. By the way, there’s DefSave from the Asset Portal if you don’t want to deal with save states yourself.
Yes, use it often! If your game is gui heavy you really need to keep draw calls in check (use layers to reduce draw calls). Every time you add new content, double check the draw calls in the profiler to ensure that they are what you expect (excellent post on draw calls: Draw calls and Defold).