I don't think there is one "good" choice when it comes to engines. Each engine designer creates something different and it is hard to decide what is good and what is not that good.
The only one who can decide that, is the game programmer who uses this engine.
I can recommend you to just try different engines. I mean "use" them and try to create something with them. That way you can quickly find the points that worked well and design your own architecture later.
A good start is OGRE which has some great ideas and is very well documented. I have also enjoyed The Nebula device
structure and code design.
Good Luck !