I'm pretty fluent in OpenGL, I did the went through the whole 'make a vertex/fragment shaded, LOD enabled terrain engine' phase. My experience with OpenGL was good, it's a very straightforward API, I'd even venture to call it elegant. Now I'm trying DirectX, and it's a bit tricker. First, I was all sorts of puzzled with their flexible vertex format and what not, but then I found out about multiple vertex streams and vertex declarations. Those happen to be closer to the way OpenGL deals with things, so that was nice. I'm still not used to all the vertex buffer locking though. Makes me wonder what DX10 is like, I've heard good things.
On another note, 2D game development is so much easier to deal with than 3D. That extra third dimension adds tons more to deal with. Frustum culling is building and checking against 6 planes, instead of just a square. The content problem is even bigger with 3D (textured models vs. 2D sprites). 3D model animation is many times more complicated than animating sprites (not to mention loading in the damn models). And that's not even the half of it - the list goes on. I had forgotten why I dealt primarily in two dimensions, and now I remember why. 3D game development is definitely more of a challenge, but I think I'm up for it.