I'm planning to write a game from scratch (a BIG Game, for commercial purpose). I'm aware that there are certain compute libraries like OpenCL, AMD APP SDK, C++ AMP as well as DirectCompute - both from MS (NOT interested in CUDA) are available in the market.

I'm planning to write the game from the scratch, which includes the following engines...

  1. Physics Engine
  2. AI Engine
  3. Main Game Engine

(... and if anything is missed). I'm aware that, there are some free physics engine libraries in the market. Not sure about free AI engine libraries.

I'm bit confused in choosing between the OpenCL, AMD APP SDK, and C++ AMP libraries (as already mentioned i'm NOT interested in CUDA).

I want my game to be published in Windows/Android/Mac OSX. It means it should be a cross-platform game.

I will be having "one source code" that i'll compile for various platforms like Windows/Android/Mac OSX, and any others if i missed.

Note: Since I'm NOT a Java guy, kindly do NOT suggest me the Java Language.

For Graphics language should i use OpenGL or DirectX 11?

I have heard that OpenGL runs on a single core, and not sure of DirectX 11. Between OpenGL and DirectX which one should i follow?

or else, are there any other graphics language that i need to start with?

I want to make use of the parallelism in GPU as well as CPU.


closed as off topic by doppelgreener, Jari Komppa, Laurent Couvidou, MichaelHouse, John McDonald Sep 17 '12 at 16:35

Questions on Game Development Stack Exchange are expected to relate to game development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here. If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ Don't go so much ahead beforehand, or might drop this idea altogether. Take a step, start with a part of the game... It's going to take lot more effort than you think. \$\endgroup\$ – loxxy Sep 17 '12 at 10:19
  • 2
    \$\begingroup\$ "Which technology should I use?" questions are off topic as defined in the FAQ. @loxxy is right, don't start off with a big game. If you have to ask questions like this you are NOT ready for a big game. Build your way up. Even the Super Meat Boy creator built a lot of games beforehand, and made a SMB prototype. From my own experiences: it's really nice to develop smaller games you can throw away as you learn, because you will want to throw them away rather than have to keep correcting old mistakes (which you made because you didn't know better). \$\endgroup\$ – doppelgreener Sep 17 '12 at 10:21
  • 1
    \$\begingroup\$ Seems like you found many "weird terms" on the internet and you have no idea what they mean. Am I right? \$\endgroup\$ – Ivan Kuckir Sep 17 '12 at 12:44

From your description, it looks like you want to write an engine(s) and not a game.. ;). I'm not going to bring you down telling you about how enormous task you are putting yourself into, because I think having dreams and pursuing them is a good thing (and learning on own mistakes too).

Answer to your question:

Your requirements of begin cross platform ruled out DirectX. If you want Android (or other smartphones), OpenGL is the way to go.

Bonus Answer:

Don't think about writing everything from scratch. Pick an existing engine (free or not) which meets your cross platform criteria and use it to build your game - that alone is not an easy task.


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