Sign in to follow this  

Unity Pros and Cons Unity for Android

This topic is 1042 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

Hi,

 

I would like to start Android game developement. Apparently there are several ways to do this. The Android Studio seems to run with Eclipse and seems to be pure Java. And there is also Unity, which also enables one to develop Android games. Now I am a little confused. Does Android Studio have any advantages over Unity?

 

Here I read the following:

 

 

Unity3D uses very unique approach for doing things, most of knowledge acquired while using it, would completely non transferable to other engines. Advanced Unity3D programming is really dealing with Unity3D bugs, and finding loopholes around engine issues, nothing to do with graphics, etc - skills which would be valuable with other engines.

 

This seems to be a great disadvantage to me, or is it?

 

Is Android Studio maybe more system affiliated with Android devices or does it have richer libraries?

 

If it is not, Why would anybody pick Android Studio over Unity in case of game developement? Originally I am a C# .NET developer but I am also very comfortable with Java. So what should I consider when making this decision?

Edited by Prot

Share this post


Link to post
Share on other sites

Depends on what you want to do.

Learning purposes, technical programming: Not Unity

Learning purposes, gameplay programming: Unity

Finishing a game and reuse the code for something else: Not Unity

Finishing a game in a reasonable time: Unity

Share this post


Link to post
Share on other sites

I don't know much about Android Studio, but as far as what you learn in Unity not being useful anywhere else....I'm not buying it, at least not like that.  Unity itself can do much more than Android games, including the new WebGL export, windows, etc...  I think it is like 23 different platforms now.  That in and of itself makes Unity worth learning way over Android Studio, which would only be useful for exactly that....just Android.

 

Also, consider how much stuff Unity is bringing with it.  The disadvantage there is the size of the builds because of all that comes with it, but if you are intersted in games, you would need much of these things anyway.  Would you want to code your own model loading in Java?  How about animations?  Collision detection?  Unity does all that and much more in a nice package, which is even better with the free 5.0 personal edition.

 

The only other thing I would consider, is if you are only interested in 2d games, you might want to check out GameMaker Studio.  It has 2d capabilities beyond what Unity's 2d can do, but no real 3d capability, at least compared to Unity.  It also exports to tons of platforms so it is worth it in that sense too.  The catch is that the free versions don't export to most of the platforms, so you have to pay for it if you want to use it properly.  But you would likely be able to get 2d games out faster with it than with Unity, and better made too most likely, so it could be worth the price to you.

Share this post


Link to post
Share on other sites

Originally I am a C# .NET developer but I am also very comfortable with Java. So what should I consider when making this decision?


I'm the same as you - Originally a C# .NET developer (WinForms and XNA, mainly) who is currently working on Unity games.

I have not used Android Studio for much (just rebuilding some plugins that another team wrote).

Unity on Android works great and is my opinion easier to deal with than the other three mobile platforms we support (iOS, WP8 and Metro). Code size problems are not as bad as it is on iOS, but Android's primary download limitation (not counting the OBB) is only 50 megs. sad.png

For decision making purposes: If you want to just make a game, use Unity. You're not going to suddenly decide to stop using an engine one day - there are too many good ones available that save a ton of time. You won't need to worry about writing your own renderer, and if you decide to, you will have ideas from Unity to lean on.

kburkhart84 is right that Unity's runtime libraries are pretty large. Rough sizes (some are out of date since I have an older version of Unity here at home):

Android: libunity.so, libmono.so and libmain.so add up to roughly 14 megs.
iOS: Your code will be AOT compiled and statically linked to Unity's libs. Our game is HUGE and has a ~30 meg iOS executable (this includes our code so it's hard to tell how much is Unity and how much is us). This will get DRAMATICALLY worse once Apple starts enforcing their ARM AArch32/AArch64 combined fat binary mandate.
WP8/Metro: Several DLLs of different sizes and flavors (ARM/x86, debug/master) - varies between 7-12 megs or so. The current downside on these platforms is that the build process is horrifically Frankenstein'd together and will explode at the drop of a pin.

Textures will likely be your #1 size problem though for an ambitious game. We have a seriously massive codebase at work (we have about every single type of software system you can imagine included in our game), and while code size is pretty depressing, it STILL isn't as bad as textures. Edited by Nypyren

Share this post


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