Actually, this is much easier to say than to do. In reality, when you have worked on Windows platform for too long, it *is* difficult porting to other platforms. OpenGL is nice, but its initialization differs (unless you use GLUT or similar helpers, which have its own problems - for one, they are not readily available on Windows and are outdated). Sockets (anything beyond trivial) are considerably different due to WinSock specifics. Other helpers such as temporary path folders, registry configuration, dynamic libraries, etc. all all different too.
Also, you need to be very careful with the code you write to keep it portable.
To resume, for some very basic or crippled games/applications that will work and look poorly on all platforms - sure, it is relatively easy to acomplish, but as soon as you start working on features beyond trivial you *have* to start using platform-specific routes, which makes the code considerably more complex by adding many different code paths. Just take a look at actual LCL source code to see the real scope of a cross-platform project.
However, it is still a good idea to pursue multi-platform PGD challange and it will help people to work out issues in their code. Making and running your applications on different platforms is an ultimate challenge for writing applications, that requires discipline and experience to make proper architectural decisions.
Bookmarks