I noticed that almost every game engine has its own way of representing numeric data (matrices, vectors etc).
After looking at some example code there wasn’t or at least I couldn’t find any code that translated these specialized formats into either opengl or directX’s numeric formats,
“so how do game engines communicate with the hardware if they all have different methods
of representing data?”.
Well, maybe, “in much the same way that Blender does!” :yes:
Operating systems ordinarily provide high-performance 2D and 3D interface layers – OpenGL, DirectX, and so on – which are designed for use by games. Applications communicate with this layer and rely upon it to correctly transfer their intentions to the underlying hardware of “this particular machine.”
Yes, game engines use sometimes-proprietary formats to represent their so-called “assets,” but open standard formats also exist with import/export capabilities.
Ultimately, it is the logic of the game-engine itself that is responsible for interpreting its data and issuing the correct instructions to the interface layer.
A game engine can support as many formats as you like.The only
thing to watch out for is the license of those formats.You have to choose the appropriate license for the game engine you are making.