@noelfb for your ImGui editor with Foster, is your game no longer the "App"? Instead you have a "higher level" app that sets up ImGui and renders the game inside it?
@thefacto basically, yeah. The "game" is a library with a Game class with an update and render. Then there's the Editor app and the Standalone app that each create/update it when necessary.

@noelfb Sorry to bug yah, I'm playing around with my own little editor/engine... In your editor scene, are you actually creating instances of the real "Actors" and they're just idle, then you serialize that to some Map data? Or do you have like a separate lightweight editor version that is created and then interpreted by the Game when it's actually running?

Hope my question made sense. I've learned a lot from your posts, so thank you!

@thefacto yeah that makes sense! It depends on the project, I've done both. For my game "City of None" it does just create the actual game objects but they don't get run at all. In other games (ex. Celeste) they're just data that you edit and then each game object just decides what to do with that data itself when it spawns.
@thefacto for 2D games I generally like the separation (the stuff you edit is just the pure data that later spawns the game objects when you play) but for 3D it feels like editing a "paused" scene can be better...

@noelfb Nice! I watched some of your old stream archives for City of None and it looked like you had some lightweight preview objects at that time (I think it was a function that returned some sort of editor metadata).

Your streams have been super helpful to a noob like me that has a lot of gaps of knowledge to fill.

@thefacto Yeah I think when it was C++ it maybe worked that way? In C# I ended up just using the same class as the ones that are instantiated in-game. It's nice because it reduces the amount of code, but also has the downside of basically not being able to use the constructor during gameplay.
@noelfb I see 🤔 Though, a little fuzzy on why that would prevent you from using the constructor during gameplay. Is that just because of the deserialization?
@thefacto mostly just that the object doesn't know if the constructor is being called in the Editor, part of normal deserialization, or during actual gameplay. It's the same reason (I assume) why Unity objects don't have constructors