I have created my own C# binding for OpenGL and in doing so learned a lot about VAOs and VBOs, shaders and everything between them. Now I would like to create a game engine rendering with shader-based OpenGL. Now, I am a little bit confused on what would be the best way to abstract all those buffers and shaders to make them more easily usable. Some questions I have are:
What are the game development implications of treating the OpenGL concepts "VBO", "VAO" and "Shaders" as classes in my engine and how should they interact with each other?