Why not wrap OpenGL 2.0 calls to implement a fully compatible OpenGL|ES 2.0 API on the desktop and use it as the underlying graphics framework for the engine?
Here are some examples:
http://www.malideveloper.com/tools/software-development/opengl-es-20-emulator.phphttp://developer.amd.com/GPU/OpenGL/Pages/default.aspxThis way, on every desktop os that supports OpenGL the engine will work with minimal effort and also it will work on almost every embedded device that has a 3D accelerator: iPhone, Android Phones etc. Another perk is that -correct me if I'm wrong- PSP and PS3 uses OpenGL|ES too..
This lefts us with Wii and Xbox360 support. I guess we would have to develop an OpenGL|ES wrapper on top of Direct3D and whatever Wii uses..
Of course some might think that "why not port the game engine itself to the other platforms instead of wrapping the underlying graphics framework?"
Well, IMHO there are 3 important reasons for that:
1-Extensibility. If you don't like how the engine does things you can always access to the low-level OpenGL|ES API and do the things your way.
2-OpenGL|ES has the widest range of platform support out of the box -assuming that an OpenGL wrapper is possible-
3-Emerging OpenVG implementation on mobile devices. This can open new doors on mobile game development. Hardware accelerated vector graphics and svg rendering , phew, even the idea of it makes me smile.
There are of course other things to worry about when it comes to cross-platform game engines such as windowing, threading and input. There other Khronos standards to cover these such as EGL and KHR but I can't seem to find any implementations except that some half-ass EGL implementation on Android SDK and a reference implementation from Khronos on top of "GLUT", yikes.
Open source implementations that would help the project:
Open source OpenGL|ES 1.1 implementation on top of OpenGL 1.5
http://dgles.sourceforge.net/Open source OpenVG implementation on top of OpenGL:
http://sourceforge.net/projects/shivavg/Well, what do you think? Is this realistic?