To answer your 2nd sub-question: A great engine that not only builds on Linux, Windows, OS X and other platforms, but also abstracts away from all the OS-specific build tasks is Unity 3D. It gives you SDK which allows you to build your project for any of those platforms.