Choosing a graphic library
Your needs seem odd. Let me see if I've got this straight.
You are going to write:
- math libraries
- memory managers, pools, and related systems
- file packing/unpacking, caching, and more
- input managers, mouse and gamepad and joystick systems
- Utilities, logging, scripting
- Networking, streaming, lobbies, connections, topologies with partial meshes, host migration, fault tolerance,
- UI frameworks with widgets, windows, and more
- controller systems that let you run scripts and handle messgaes locally and remotely
- Animation systems, which usually tie into audio, streaming, physics, and more
- Audio systems, that need to be synced up with multiple other systems
- physics systems, which usually tie into AI, world management, data systems, and more
- world editors, script editors, animation editors, resource packagers, fonts, and much more.
- ...
- and then you need to build a game out of it.
But you're fine doing that, instead you're just looking for a graphical rendering component?
If you have the capacity to do all the other things involved with building a modern game engine, hooking up D3D or OpenGL should be a relatively minor exercise.
And that makes sense - graphics spans _far_ more areas of game development than just the rendering and file conversion. Your entire content pipeline is built around it. The animation system integrates with physics and game logic. The choice of scene graph depeneds very heavily on the game, how content is created for the game, and how you want to support in-game modification (think of a 3D-tile engine like NWN versus something like Battlefield - totally different beasts). Fundamental portions of rendering, audio, etc. are far more game specific than most people think.
Graphics middleware is generally best off supporting one small aspect of rendering (Umbra, Enlighten, PopcornFX, Granny, etc.) rather than being a complete drop-in renderer.
I think your evaluation of Unreal is way off, though. You can write custom game code in it just fine. You get full source code access and modify it to your heart's content. There's some very good reasons for games to not choose Unreal but the reasons you listed aren't one of those.
http://urho3d.github.io/ is another possibility. It integrates a lot of the different parts together (sound, physics, networking, 3d, etc), but you could certainly take the graphics capabilities and glue your own systems together with it. That would of course re-invent what is already there in this package, but it does meet your requirements, I believe.
Thanks for your answers!
But you're fine doing that, instead you're just looking for a graphical rendering component?
Yes. We are using libraries for rendering, physics and audio that take away the low level work from us. We are hooking this parts together by ourself in our engine - and only the parts that we really want to be included in the engine. Some points that you listed simply aren't needed in our project. We are only looking for a library that takes care of the rendering.
Urho3D is worth a try. I didn't have time to take a look at it but I will do so as soon as I can.
Yesterday, I read that Ogre 2.0 is currently WIP but there will be a first stable version soon. From what you can read in the forums it sounds very promising. If there are no other alternatives, I think we will go with Ogre.
Here are some links for those interested in Ogre 2.0.
http://www.ogre3d.org/forums/viewtopic.php?f=4&t=80576&start=25