So you are suggesting that i check if the entity has changed location and if it has i'll update the vertices for location? And same goes with the texture. That's all i ever need to update, drawing location and texture-coords.
How much performance are we talking about? Lower than using immediate mode?
When I load the game, I create a VBO for every type of object in the scene. For example, if there is a certian type of enemy in the game, then I create a single VBO for that enemy, load it in, then reuse the same VBO every time I draw an enemy of that type.
But each enemy hold it's own copy of it? Right?
VBO's are pretty much the same as your normal vertex buffers in OpenGL the only difference is that they are stored in GPU memory instead of System memory.
So you create a buffer object for each VB you want to have on the GPU and then you fill it with the vertex data for that object, because this stuff is now in GPU memory you want to avoid having to dynamically update these buffers each frame as that is a costly operation.
You should most definetly not create a new VBO each frame only create them once when you create the object that needs it.
I understanding right now is that i create a VBO when a (lets say) enemy is created. I then store this with the enemy until it's destroyed (how do i unload a VBO?).
You're saying that i should't update the data, is it ok to update the texture and vertex buffer? That shouldn't be a problem right? Because i need to be able to do that every frame.