Me and my team are looking for a graphic library for C++. Unfortunately, until now we were not able to find a suitable libary.
What is our situation?
We programmed a game in Java using the JMonkey Engine 3.
Due to some technological reasons we decided to re-write the game in C++.
What are our skills?
We have already wirtten a small engine on top of OpenGL and worked with other graphic libraries. Still, we don't want to mess around with programming a 3D engine. Also, we don't have enough experience (and time/people) to programm a library that can keep up with modern graphic engines.
What do we need?
Simple answer - a modern graphic library. Features like physically based shading, tessellation, deferred shading, etc.. would be nice to have. We want to build the game engine by ourself - so we are combining several modules to our own engine that fits our needs. Some of them (like graphics and physics) should be handled by 3rd party libraries and others (like networking) are programmed by ourself. This is very important to us, since we can modify the engine later and change the graphics library in the future, for example. So we don't need a complete game engine - we need a seperare graphics library. Or an engine that lets you use only the 3D library of the whole package.
We don't want to set a maximum limit for the pricing - the cheaper the better. OpenSource would be best.
What do we have looked at already?
We have seen that the CryEngine and the UnrealEngine 4 offer fair licencing prices for indie-developers (from 10-20 € / month). Now, I don't know how these engines work. My fear is that they require you to use the shipped SDK to build your games with the engine. What we want is to develop our game in-code only, and write our own SDK/Editor for the game. Also, I doubt that you can only use the 3D part of the Cry/Unreal engine sepperately from the rest.
Libraries like Ogre3D and Irrlicht would have the structure that we are looking for (simply including the 3D library and using it), but I don't think it can keep up with modern graphic engines.
We also looked at Torque3D, Panda3D, Leadwerks and PixelLight (which seems quite promising but the last github commit is 2 years ago and no stable version was released so far).
Searching through the web I got really confused about todays game developing. I couldn't find a graphics library that could reach the rendering standards of engines like the Cry- or UnrealEngine. (I know the showcases of these engines have top-assets and so on, but there are some features like physically based rendering that would be so nice to have in a pure graphics library). Is this just the modern way of game developing? Choosing an engine and building the game on top of an SDK? I would feel deprived of my freedom, when I have to decide on an engine and content myself with its features. We want to build the engine ourself - and provide a useful interface that fits the needs of the game. These SDKs seem so straight forward - building a game out of the box. Doing a few clicks to create an FPS game. No freedom, no uniqueness. Might be that I'm wrong, this is just how these engines appear to me (no doubt that it still needs a lot of talent, training and work to actually create a good game with these SDKs).
So, what are my questions (finally)?
*Is there any graphics library out there that provides a C++ API that is not bound to an SDK (except to convert files into the right format, etc..) and is at the state-of-the-art (or at least, almost)?
*Is is possible to use the Cry- and/or UnrealEngine in-code only, so that we can abstract all functionalities into our own engine that isn't dependent of an SDK?
*Is our way of thinking really that outdated? Would it be better to just go with a complete engine?