Jump to content
  • Advertisement
Sign in to follow this  
kerosennin

Objective C + Java + XNA Vs C++

This topic is 1944 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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

 

 

 

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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


 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!