If I understand this correctly, I think the problem is understanding what a camera really is. A camera is just a transformation matrix (aka view matrix) that you must calculate the inverse to and apply to all objects in your world. gluLookAt() is a fixed function method that will set the transformation matrix for the current matrix stack. Typically you call this once, then push the stack, then render all your objects by first pushing their individual matrices on the stack, rendering the object, then popping the stack so those object transformations don’t effect future renders.

I don’t know how the Box2D rendering sample works (or if you rolled your own), but I would say stop what your doing immediately. Fixed function programming is deprecated. You should be using programmable shaders (minimum OpenGL 2.x API) and performing your transformations on the GPU. I don’t know of any sites where you can start, but try opengl-tutorial.org. Alternatively, consider an engine suited for 2D gameplay, such as Torque 2D, which I just now found out is open-source.

A colleague of mine shops there. Personally I just stick with Steam. Not always the best price (often competes with Amazon and g2g), but if I’m going to buy something I do it with the mentality of supporting the devs.