A 3D engine to me is a program that can be call to render form on a screen. So the 3D engine can render a square on x position. And camera, which is another program of the 3D engine can move on xyz location.
So now, I can send a command to the engine. Render square at xyz. And another place camera at xyz. And another, w for moving the camera ahead 0.5 feet for 400ms push.
Now like if I'm going to write this in command line. Now another program that look like 3DMAX will do this job in graphics command instead of using command line. So 3DMAX is a program that write the command line and when it write command line it has receive graphical order such as push on buttons.
Now I'll call my 3DMAX, ENGINEC, for control. All the enginec need to be like I was doing program with visual basic. So when he push the form square on the toolbox, the user than hover over the main screen of the enginec and place the square on the centre of it. So enginec send a command line to the 3D engine and receive than a file in real time that is the directive to render on screen. I guess this real time file from the engine need to be send to the video card and the video card will send a signal to the screen.
Now enginec have another function to program just like visual basic instead of doing some 3DMAX stuff. This is where goes the IA that I just posted on my blog.
And finally all this is compile by the enginec to make an installer for the client.
Man this is easy to say I know.