Quote Originally Posted by User137 View Post
It's not that difficult when you are making apps with Lazarus Simplest requirement is not to include Windows in the uses list. Second is converting all paths to fit operating system. For this there is a internal constant PathDelim, which is \ or / depending on OS. But also you can get tips from nxPascal FixPath() function

That should be all there is to crossplatform. Use OpenGL, not DirectX. Some differences with dll libraries, but that's a problem outside of compiled executable.
From personal experience (I develop on a Mac exclusively now.) setting up your project from Windows to a Mac takes a lot of IFDEFs or a separate unit to handle resource paths (like what I use now) and some extra configuration in the Project Options to account for multiple platform compilation and bundling. It's not impossible or so complicated that it's barely doable without a rocket scientist degree, but it is a wee bit involved (you need to know Lazarus well!) and you might need some extra guidance from someone that has done it themselves often enough before.

It took me a good month or so to get Lazarus working for me on my Mac and to convert some of my projects so that they'll compile and run in the IDE and debug properly.

Sadly with the removal of X11 as standard in the latest version of Mac OS X (Mountain Lion) you now require a 3rd party (open source) project version of X11 for Mac to run my games. I still haven't weeded out X11 linking from my projects yet it seems. I have yet to figure it out.

So there is a lot of know-how involved when developing across platforms...