Tech Selector

So what technology should I use?

There is a wealth of different technology for games development available at the moment - to include it all would simply be overwhelming. At we're going to focus on just three options (but more may be added if other people want to take on a new section of the site) .

  • C# with Unity - Great cross-platform potential, including web deployment, and a relatively friendly development environment, but ties you in to Unity's game engine (obviously!).
  • C++ with OpenGL - C++ is all-powerful, but a bit fiendish to get started. OpenGL is still the cross-platform 3D standard of choice. All your code will be your own!
  • C++ with Direct X - Same caveats about C++ apply here, but combined with Microsoft's 3D rendering API - which is arguably more powerful than OpenGL, but only supported on Microsoft platforms.

No Brainers

OK - lets get the 'no brainers' out of the way:

  • I want to deploy my games to my Microsoft XBox 360.
  • I want to deploy my games to my Microsoft Windows Phone 7.

If you answered 'yes' to either of these questions at the moment we *believe* that XNA remains your only option for now. None of the discussion on this site will be directly relevant to you - head over to Microsoft's App Hub for more information.

  • I want to deploy games to non-Microsoft platforms as well as Windows 7/8 (such as OSX, Linux, Android, iOS, Raspberry-Pi etc.)

If you answered 'yes' to this question, you can definitely cross C++ with DirectX off your list - DirectX is only supported on Microsoft platforms.

But now it gets a bit trickier...

Do any of the following apply to you:

  • I am new to programming & want to use games as a way of learning how to program.
  • I want to produce commercial games quickly with the minimum of technical overhead.

If the answer was 'yes' to any of the above, then we would recommend the C# with Unity route (notwithstanding the final caveats below). You will find that general programming principles and patterns will be easier to see and understand in the 'friendlier' world of C#. The Unity API is powerful and provides a fully game engine capable of producing most existing genres, right out of the gate.

That just leaves...

If you've got this far, you are probably going to answer 'yes' to one of the following:

  • I want to learn C++, and games are fun way to do it.
  • I want to know how 3D graphics and game engines *really* work
  • I want to make a truly unique game.
  • I need to maximise performance on hardware with limited resources.
  • I have an unusually high performance game in mind.

In this case go for one of the C++ options. Your choice of graphics API (OpenGL or DirectX) is entirely dependent on whether or not you want to work on non-Microsoft platforms (see above).

You are here: Home Tech Selector