Objective C + Java + XNA Vs C++

Started by
6 comments, last by frob 10 years, 10 months ago

Me and my friend are interested in mobile gaming. We had released few small flash games before. Before diving into mobile platforms, I would like to know the choice of programming languages. We want to develop for iOS, Android and Windows phone. Which of the following solution will be ideal for developing?

1) Using XNA for Windows phone, Objective C for iphone, Java for Android

2) C++ for all platforms

We gonna develop 2D games only. We need to use APIs like Admob and other hi score APIs. Can they be accessed using C++ native calls? Will it take more time using C++ than separate languages for each platform? Please tell the advantages and pitfalls in both. Thank you

Advertisement

Monogame will take you on all of those, in C#... of course there is a price tag on the iOS and Android versions.

Same with Unity.

C++ could be the solution that will allow to share more code among platforms.

I think rewriting the project 3 times in 3 languages is just silly.

Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni

My friend writes code in C++, they use Java & ObjectiveC wrapper to load C++ program on Android and iOS, however he ended up rewriting it for Metro.

you can use C++ but you will write 10x more code then using a Game Engine that can be Cross-Platform like Unity

i heard that you can build games free for Android and iOS

i have here a link with all the mobile game engines

you can use C++ , it actually depends on your experience , you told us that you've used AS (ActionScript) that is High Level.

C++ is Low Level and every project you're making you have to optimize it for you device.

you can create a framework that can call the Files to create a cross-platform game.

and besides creating a cross platform game in C++ you also need experience in DirectX (Windows Phone 8) and OpenGL ES (Android , iOS)

my advice is if you have the experience in C++ , try it why the hell not

if you don't have the experience ? Do Not use C++, use Unity it's easier and faster to create a game same as flash by using Adobe Air biggrin.png

or you can use HTML5.

i hope you can do something with the information i gave you.

P.S XNA is a framework not a language :D


Java is still fast enough by being JIT compiled for your processor and having a memory manager on top of the operating system.

Java's biggest bottle neck is that it only support object orientation so that functional programming look messy.

Java also have a lot of obsoleted things in the framework for backward compability.

For a beginner allocating and destroying many objects, Java will give you a more efficient code by not fragmenting the memory since C++ assume that you write your own memory manager.

C++ is multi paradigm, have many libraries supporting it natively, don't require JVM to run and the language is very flexible.

C++ is very hard to debug if you get pointer errors that randomly write to the wrong memory locations.

For a beginner that use table driven programming C++ can be made quite safe if you use references instead of pointers, don't use C-style casting and always check array bounds.

Thank you everyone. I feel C++ is a better option for us as we know it already. smile.png

Monogame will take you on all of those, in C#... of course there is a price tag on the iOS and Android versions.

Same with Unity.

C++ could be the solution that will allow to share more code among platforms.

I think rewriting the project 3 times in 3 languages is just silly.

Unity just gave away the mobile versions for free so unless you need the pro features or have a turnover above $100k allready it is a fairly decent option for mobile development, especially for 2D games since the limitations on the free version of Unity don't really matter for those.

[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
If your heart really is set on C++, I'd go with an existing set of libraries like Marmalade or Dragonfire.

If none of those, Cocos2d-x and LibGDX are both free and cross platform, in C++ and Java respectively.

If your goal is to make a game rather than building your own engine, go with Unity. As was just mentioned, Unity for Android and iOS now follows the same basic pricing as their PC version. As long as your annual sales are under 100,000 you don't need to pay them, and if you do have that much in annual sales the cost is pretty reasonable.

This topic is closed to new replies.

Advertisement