I was programming 2D in Slick for a while and loved the way it worked with the init(), update(), and render() methods.
Now, looking at 3D engines I realize most of them are not implementing a render() method but just rendering a whole scene automatically instead. You just have an update loop most of the time and the render function is called automatically after the update and draws the scene.
XNA seems to implement a draw() method, though.
What is the reason that 3D engines are working this way? Is there a reason not to implement the render loop like in slick in an engine? I'd have to call .render() on each object then, which gives me more control on what objects I want to render.