I am looking for a starting place to develop a crossplatform OpenGL game that runs on Mac, PC and potentially Linux. The difficulty is that I don't want to use an existing graphics library.

I've done a lot of work with OpenGL in C++ for Windows. I have never developed anything for Mac. I plan to develop most of the Windows game and leave my project open with abstraction so that I can later implement Mac-specific code.

Is there anything that works radically different in Mac and Linux than in Windows? With Windows for example, I use DirectInput and XInput to capture controllers and keyboard, window messages to capture mouse and typing. Where can I find some type of "translation guide"? Also, do I still need to consider endianness?

How can I design my project so that I can load it up in Visual Studio 2008 and easily compile it in OSX and Linux IDEs? Since I own Visual Studio, I'd like to use that for my Windows development, rather than switch to a cross-platform IDE.


closed as off-topic by MichaelHouse Oct 28 '13 at 20:45

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about "how to get started" or "what should I learn next" cannot reasonably be answered with anything other than opinion polling and therefore are off topic for the site. For more information on how to ask a better question, see the help center" – MichaelHouse
If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ I'm a 12 year veteran of ecommerce systems on the JVM, and I'm getting into games programming right now by targeting web browsers using WebGL and Dart (see learningwebgl.com). Implementing Tetris now ;-) \$\endgroup\$ – opyate Dec 28 '13 at 23:27

I don't know if this worth to be an answer but as it's too long to be a comment... here are some informations that might help you.

  • You should take a look at this small article.

    It enumerates 10 rules to write cross-platform C/C++ code. And one idea that particularly pushed me to change my development organization, is that it would be more "optimized" (from his experience) to develop all platforms at the same time instead of porting to other platforms later.

    So I decided to apply this idea (among others) with my game, and despite the fact that it was a bit long to configure the 3 operating systems to make them compile my code (and to feel good using them), it's now really easy to test each new version on the 3 platforms. All the others ideas in this article are indeed very interesting, but this one is the most important to me.

  • As for the endianness question, as far as I know, it depends more of the processor architecture than of the operating system: Endianness and operating systems on architectures

  • \$\begingroup\$ That is an excellent article full of great points. And thank you for the endianness Wikipedia article. It looks like I am fine if I only support modern computers, but not if I plan for consoles. \$\endgroup\$ – Josh Brown May 29 '11 at 0:06

Not the answer you're looking for? Browse other questions tagged or ask your own question.