Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I use C++ to create windows games and now I want to step into another other OS like Android or iOS. I'm totally familiar with C++ so I tried to create app for iOS using objective C it was working awesome. However, I also want to publish games for Android but not by using Java.

I don't want to create a single game 5-6 times for other platforms. Is their any way that if I create game for Windows then it will work in Android and iOS ? Or should I use Action Script 3.0? If I use action script 3.0, will it require Flash player to run the game in Windows, Android, iOS?

share|improve this question
This is a "which technology to use" question. See the FAQ about these types of questions. They're off topic because they just end up generating lists of answers (as you can see is already happening), that are then voted on like a popularity contest. That's not what this site is about. –  Byte56 Dec 5 '12 at 20:50
I don't really think it's "which technology to use" - it's framed in a more general "how do I make a game that will run on these 3 platforms" manner, with a bit of "which technology" alright, but only in so far as it could contribute to an answer. Maybe removing that element from it could make it a more appropriate question with no need to close? –  Darth Satan Dec 5 '12 at 21:39
@mh01 It's framed that way now. I edited it a bit to make it a little better. Though, I'm sure you can agree that the way the answers are heading, people are answering it as if it was a "which technology to use" question. The true answer of how to create a game for all those platforms is "find an engine that supports them all, and use it". The answer is not to suggest engines that might work. –  Byte56 Dec 5 '12 at 22:28
Yale a look at Haxe/NME. It compiles down to C++. –  ashes999 Dec 5 '12 at 23:27

9 Answers 9

Find an engine that runs on all three platforms (i.e., is cross-/multi-platform) and meets your requirements. The latter will vary with time and only you know all the requirements you need, so finding the correct engine is left up to you.

share|improve this answer
The only exactly correct answer, and also the reason why questions like this are more suited to discussion forums instead of Stack Exchange. –  Eric Dec 6 '12 at 7:57

Since you are familiar with C++ I would recommend looking at Cocos2d-X. It's a 2d cross platform engine. I've successfully used it to target Android and WindowsPhone7 devices. It also has support for Windows, Mac, iOS and WindowsRT.

Here is a SO question that has a ton of reference material.

It's pretty simple to use (specially if you have programmed in ObjectiveC because it started as an iphone 2d engine)

If your game is 3d the most popular engine is Unity3d.

share|improve this answer

The world of cross-platform is a pain. The most convenient way is to create your game using OpenglES, and then try to do specific ports to other devices.

With android you have to pretty much hack to get it going but it might be worth it. Even if the NDK gives you the ability to use c++, it still is really hard to get it going with a simple cross-platform engine.

For android you have to use NDK, and for iOS you can compile c++ with objective-C.

So finally, it all comes down how you want to do it. Either you do it really easy and rewrite your game to Java, C++ and Objective-c ( might be awfully slow, but it´s easier than the rest). Or if you want to go with C++ on all devices and do special libraries for every devices and so on.

share|improve this answer

Using Unity could work.

Also PlayN although that's still java, but should allow you to publish games to all those platforms.

share|improve this answer

SDL2 works for Linux, Mac, Windows, iOS, Android, and many other platforms. Such as the Dreamcast. If you're familiar with SDL 1.2, it shouldn't be that hard migrating to SDL 2.

share|improve this answer

You can also use C++ based Marmalade SDK.

share|improve this answer
These are the kind of answers we like to avoid. This site is not for generating lists. This answer is just adding to a list. –  Byte56 Dec 12 '12 at 21:06

You can try out http://gameplay3d.org/api.php which is a cross platform C++ framework developed by RIM. Its very very new, so you should carefully evaluate its features and your requirements before diving in.

Also, check out answers from this question Android game development in c++

share|improve this answer

I use OpenTK (the OpenGL bindings for .net/mono). On Windows you can go with vanilla .net, on Android use Mono for Android, and on iOS use MonoTouch. Since OpenTK (almost) has the same interface for all platforms, you can share the rendering code between platforms.

I prefer this over Unity and other game engines, because you have direct access to the platform API on each platform, and can very easily do platform specific processing without having to create esoteric interfaces like you have to do in Unity.

This is as low level as you can get, short of writing everything in C/C++.

The main drawback is that Mono for Android and MonoTouch are not free (as in beer), but are definitely worth the investment if you're serious into making multiplatform games.

share|improve this answer

I would look at libGDX. You can target Android, Desktop (Windows/Unix) and even HTML5 applications. The only platform which does not seems to be natively supported is iOS but it looks like they are working on.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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