@theludovyc i am conflating "engine" with "proprietary commercial game engines like Unity, Unreal, Game Maker, etc" to simplify my point under the common understanding of the term.
@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
@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.
@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...