I used openGL for 2D and these were the pros:
- HW scalable sprites
- HW transparency (it gives 2d games a cool look!)
- HW dinamyc lights
- HW rotations
- Speed!!! 3d accelerators are able to draw millions of triangles per second when you need (for 2d games) about 1000 per second
And effects like:
- Fade to black! in hardware is a lot faster (using transparent textures)
- Zoom or rotate the whole game area
I'm also thinking about using J3D for 2D, because of its *perfect* timer (I'm bored of J2D timer, and I don't know when Sun will fix it), its speed (3d demos run very smooth), and its platform independency.
I think that a lot of online gamers have installed both J2D and J3D, and all of them have a 3D video card.
If you use J3D you don't need to force users to download any propetary DLL, and you don't need to use OS specific tricks.
I think you can use also immediate mode that is more similar to openGL. It is slower than a good scene graph but if you need only thousands of triangles it shouldn't be a problem
