Yeah, you've got the right idea.
I know theres no "right" way to do it, but I can't believe I couldn't even find suggestions compiled up leading me to this point, or a similar point, or any point, yknow?
So the GameExport class basically holds an update function that is compiled by your game logic (or script engine), and sends it to whatever engine part gets it first... In my case, all logic will hit the resource manager first..
For all "Game" entities (this is in your game logic part, right?), you basically set them up like a scene graph as well, they all have update functions, which modifies what is finally sent to the first part of you engine.
You've set your scene_graph up so it culls out things, I would assume that this would be much faster than sending things to the renderer that it doesn't need, and then sorting them out there.
This is precisely how I am writing my game (same with quake, doom, half life, any game that has an sdk)...although, just having this setup doesn't mean you can't use scripting, but to be honest I find trying to write an elaborate scripting engine overkill because the amateur games I see posted on here and gamedev aren't complicated, and it just seems horribly, horribly limiting for the way I am implementing AI (fuzzy logic networks for decision making)...script-written AI is still, ultimately hard coded AI as far as I can tell.
An alternative to writing a scripting engine is to write your engine as a library (instead of a framework) and write your games as driver programs for your library. That way no game specifics are hard coded into the engine. The downside is that games will have to reproduce a lot of the same code to use the library.
My answer: quite easily. I create my own home-grown entities and simply place them in the map editor. QERadiant has an entity definition file which you can edit...you can add the name of an entity and the parameters it accepts, and the map maker will let you place these entities in the world. It's cake. The game engine deals with stuff that never changes, and the game itself is pretty much just the definition of the entities from the programming side and how they behave. But, keep in mind, I'm writing a pretty basic game right now, for something more elaborate you'd need scripting, but otherwise I don't feel it's absolutely necessary.
You guys are missing one important facet. You must have a script system. Otherwise how are you going to create levels, actions, events, and so forth?