Search Unity

[Official] Request for Unity Android platform feedback

Discussion in 'Android' started by Vilmantas, Jan 8, 2015.

  1. Vilmantas

    Vilmantas

    Unity Technologies

    Joined:
    Jul 24, 2013
    Posts:
    29
    Hi all!

    We would like to hear your thoughts about our Unity Android platform i.e. Unity Android player. Please take a moment to answer the following questions to help us make Unity Android runtime the best it can be. We want to get more context for your feedback, so please also answer the questions about who you are, what games you make targeting this platform. Please talk about things which are specific to this platform: it could be some issues specific to this platform, some features missing in Android player and even some functionality needed in Unity editor related to Unity Android player.


    The intent is to use this information for our future roadmap planning.

    Who are you?

    What kind of game are you trying to build or would like to build?

    How does Android player fit into that? What use-cases do you have?

    What are the GOOD things about Android player that you like?

    What are the BAD things about Android player that you dislike?

    How can we make it BETTER? What use-cases, features, workflows would like to see?


    Thanks for your time providing this feedback and helping us to improve Unity.

    Vilmantas
     
    John3D and rafimagsi like this.
  2. rafimagsi

    rafimagsi

    Joined:
    Oct 27, 2014
    Posts:
    14
    I think people are not serious about their Android development. As no one yet replied to this post.
    Well,
    1. I am Muhammad Rafi, From Pakistan, Lahore.

    2. I am working with a company and we are making 2d and 3d games in Unity3d. Mostly Kids Games and Racing games.

    3. You know what Android is ok with out any plugin, but when we try to include a plug in its going to horrible thing ever in game development. Unity own scripting does well on Android or takes a little bit time to fix for android. We also have compatibility issues as some plugin works well but when the unity is updated then plugins are not going to work at all, for example AdMob is not working with Unity4.6.1, that's not a good thing for developer who has almost completed his game and then AdMob came with crash. I don't like this. But what we can do instead of waiting for a fix.

    4. There is only one thing I like about android that it takes less space then the IOS game size. Android takes less space for graphics while IOS take upto 3 times graphics space.

    5. As I already said its not easy to add a plugin for android its going to take your lot of time. We can't waste our time with fighting with the silly crashes and unexpected working of Unity with the plugins.

    We love Unity3d but I want one thing from Unity3d that please test everything and every plugin before giving an update as much as you can or advice and provide instructions to the plugin creators to update their plugin according to new Unity3d.

    Thanks So Much Unity3D.
     
    John3D likes this.
  3. azrialelf

    azrialelf

    Joined:
    Jun 1, 2012
    Posts:
    9
    I am very serious about my android development! We've ported our 2 year+ project from Windows Mobile to Android using Unity and it's yielded massively improved performance, aesthetics and device support.

    1. I am Tristan Mitchell, from Ontario, Canada.

    2. We are not building a game. We are building an in house solution for maintenance and inspection routines. The interface is entirely 2-D.

    3. The android player has allowed us to port our Windows Mobile 6.5 solution that was dated and slow with very limited device support to a faster, more powerful OS with much better device support.

    4. We like:
    - Being able to program for android in C# (as our original product was written in C#, so this made the port much faster)
    - Broad feature support, including lots of addons in the Unity Store (we use dfGUI for our entire 2D interface and love it)
    - Cross platform deployment support. We don't have any iOS deployments yet, but we do have several PC deployments so being able to simply switch the build target from an android .apk to .exe for PC is very useful.
    - Good test environment. Being able to test the full-featured app in the Editor is very useful. We were not able to do that when developing for WM6.5 because of the device-level .dlls that we struggled to deploy to the emulator, so we had to test by building directly to a device.

    5. Lack of support for device-level features. The plug-in support is at least useable, but it would be so much more convenient to have an easier to use interface to device-level services. We currently are using a plug-in to detect device power levels and when the device is docked (plugged into a power source).
    Our software will eventually need to support RFID readers, which I dread having to implement as I'm certain that will need to be done using a plugin.

    6. An immediate improvement that would help us is improving the webcamtexture class. The current implementation is great for streaming to texture, but it would be useful to be able to take full-resolution snapshots (instead of saving a 2dtexture to png) and being able to activate the camera flash.

    We love Unity. We've made a much, much better product in the 6 months we've spent porting our project than we did after the 2 years spent developing it for Windows Mobile 6.5
     
  4. Aurigan

    Aurigan

    Joined:
    Jun 30, 2013
    Posts:
    291
    Who are you? Currently a solo indie dev, previously a tech director managing a dozen mobile devs making many apps per year using Unity and other technologies.

    What kind of game are you trying to build or would like to build? Currently an iOS/Android/web game called Tap Tap Infinity (https://play.google.com/store/apps/details?id=com.scarybee.taptapinfinity etc.)

    How does Android player fit into that? What use-cases do you have? It's been live for Android for several months, for tablets and phones.

    What are the GOOD things about Android player that you like? Getting one code base working across three platforms has been genuinely amazing. Time to port the game for web was in hours rather than months.

    What are the BAD things about Android player that you dislike? The obb downloader asset on the store is hideous, integration with the file system required writing a plugin to deal with the fact that persistent data path ... isn't.

    How can we make it BETTER? What use-cases, features, workflows would like to see? GIve API choice over where data gets written to, clean and polish the obb downloader asset to be usable in production, test sample apps against a wide variety of popular current devices and publish the results, provide some way to switch targets without having to re-import every asset (currently takes half an hour to do a one line code fix/rebuild for iOS/Android because of the reimport time). Build a Unity API (or integrate one of the popular ones from the asset store) for core platform features. Like IAPs.

    Making the created app sizes smaller is always a huge win as well and resources load for images just seems crazy slow.

    Thanks for asking ;)
     
  5. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489
    Who are you?
    Tony, Brisbane Australia. Part-time indie developer.

    What kind of game are you trying to build or would like to build?

    Platformer and Word game.
    https://play.google.com/store/apps/details?id=com.zoneoffun.ropez
    https://play.google.com/store/apps/details?id=com.zoneoffun.wordsnatch

    How does Android player fit into that? What use-cases do you have?

    The Android player is a great fit.

    What are the GOOD things about Android player that you like?

    - It is a solid platform. Just click the compile button and it works.
    - We never had any platform specific problems running our games on Android.

    What are the BAD things about Android player that you dislike?

    - The bad things are not specifically about the android player, more so the manual setup that is peculiar to Android. It took a long time to work out how things worked, including:
    a) AndroidManifest.xml
    b) OBB Downloader
    c) Finding a good plugin for IAP, Leaderboards, etc. (Prime31 is fantastic)
    d) Touch screen controls

    How can we make it BETTER? What use-cases, features, workflows would like to see?

    a) Unity control over AndroidManifest.xml. It would be great if this was controlled through the build options.
    - 3rd party plugins could provide extra info to include
    - The version number could be updated directly into the xml file from the Build settings.
    b) Simplify the OBB dowloader. It took me months to get confirmation if this was required or not.
    c) Simple, Clear, Instructions on how to deploy your app onto key stores (Google Play,Amazon, Ouya)
     
  6. goat

    goat

    Joined:
    Aug 24, 2009
    Posts:
    5,182
    Who are you?

    I mess with Unity as a hobby but I did publish one game in 2 Android stores to go through that process and to expand my hobby. I have been a programmer professionally but try to avoid it as much as possible with regards to Unity and app / game development.

    What kind of game are you trying to build or would like to build?


    The game I published is an Infinite Runner that is almost 100% turnkey built from Unity Free and the Unity asset store. I've only one review (LOL, that isn't mine) and few downloads but the reviewer was complementary on the graphics and the game so that is good news on Unity and the asset makers' part. I'm not advertising as I will expand the game to be something more original. The important thing I learned from this is the Unity can handle the game I'm planning on building without a boatload of 'optimization' tricks and likewise with myself not being too demanding in what I expect from Unity.

    How does Android player fit into that? What use-cases do you have?

    Android actually wound up being the easiest platform to publish with. Honestly, I don't see much for Android on Google Play as 75% of those downloads were not from customers actually interested in playing the game but had other motives. I only had 6 downloads, lest you think there are hundreds or even thousands of sites downloading games with no interest in actually playing them (as was the case for many years for search engines visiting web sites), but then Unity I'm sure knows more about that then me.

    So, given that, hobby wise for me Android and the ever increasing sophistication of the sub-$100 tablets is very important as I see I can eventually have a very nice and original game I create without unreasonable amounts of time spend to optimize it. Now eventually, I will create me own art using lots of my own time but for not for coding. I can honestly say 2 years ago, Unity wasn't up to that task at all.

    What are the GOOD things about Android player that you like?

    The ease of publishing. The ease of building. Choosing the API level. The overall functionality of Android tablets. Being able to target Android from Windows or os X.

    What are the BAD things about Android player that you dislike?

    Once I finally decided to publish a game rather than just mess around in the Unity Editor, it took some experimenting with 2 year old Android HW to find out I needed new Android HW. Lucky the new HW was cheap and very capable. I had computer science and computer graphics in college a long time ago so I understood at a high level the problem I was seeing weren't bug but then the problem is not isolated to the Android platform.

    How can we make it BETTER? What use-cases, features, workflows would like to see?


    Built in generalized use of various social scoreboards and services from Apple, Microsoft, Google, Amazon.

    An option to use networking locally and easily for games and apps based on proximity and local network.

    This isn't platform specific but my icons, despite being imported at 512 x 512, are so jagged. I've set them to be UI Sprites too.

    I already mentioned this in the Unity Ad forums but I'd like to see Asset Bundles capability to be part of Unity Free.

    Thanks for your time providing this feedback and helping us to improve Unity.
     
  7. liortal

    liortal

    Joined:
    Oct 17, 2012
    Posts:
    3,562
    Who are you?
    Lior Tal - Game developer at Moon Active

    What kind of game are you trying to build or would like to build?
    Working on Wonderball Heroes - a casual 2D game released on Google Play and iOS App Store.
    The game has already over 1M downloads (combined on both platforms).

    How does Android player fit into that? What use-cases do you have?
    We usually juggle between Android and iOS releases, working on 1 platform at a time. The Android versions are usually easier to do, but that probably is related to the fact that i have prior native Android experience.

    What are the GOOD things about Android player that you like?
    Usually we just have to hit BUILD and that's it, very simple. Also, since it's a stable and mature platform for Unity, there aren't too many weird bugs we've encountered, once in a while we get a rare bug that seems to be Unity related on a specific GPU type, but most of the times we notice it's already fixed in a newer version (we're currently on 4.5.4).

    What are the BAD things about Android player that you dislike?
    Integration with 3rd party or platform specific stuff can be a hassle.
    The whole workflow of editing the manifest and organizing the plugins under plugins/Android is very messy.
    We also have our own custom library + activity for the Android version, but since Unity generates .meta files, we cannot directly place this project under the Unity project folder since it will make our IDE crazy.
    Other pains are occasional breaking of the Unity build for Android due to changes in the android sdk tools.

    How can we make it BETTER? What use-cases, features, workflows would like to see?
    Provide an easier way to integrate plugins, align with how modern Android libraries are built (.aar libraries, allow better workflows of placing library code inside the unity project folder), provide better APIs for interoping with the underlying Activity.
     
  8. larku

    larku

    Joined:
    Mar 14, 2013
    Posts:
    1,422
    Who are you?

    A random Indie developer.

    What kind of game are you trying to build or would like to build?

    Sports, puzzle and casual games.

    How does Android player fit into that? What use-cases do you have?

    We target mainly mobile devices as such Android plays a large part in that.

    What are the GOOD things about Android player that you like?

    Good consistency between all platforms - we don't really need to consider 'Android' much - if it works on iOS it typically works just fine on Android too - significantly increases productivity.

    What are the BAD things about Android player that you dislike?

    1. The removal of antialiasing for mali 400 GPUs with 32bit frame buffer (worked fine in Unity 4.2, but all versions since lack this support) Utterly frustrating seeing our game running on any tablets that use this GPU. It's gone from looking awesome to utterly horrid (AA is needed on tablets, it's shocking without it). I can't believe Unity refuse to allow us to turn AA back on and live with any other issues that may cause (though I never had any issues with it as it was in 4.2). So we have a choice - no AA and hideous jaggies everywhere or AA with hideous colour banding everywhere :(

    2. Inability to do runtime changes to Quality settings - with any non trivial project, altering the quality settings at runtime on any Android device will either make the screen totally black, create significant graphics corruption or crash the game. This means that we must either exit the game for every quality change or leave the user to try and work out what to do (ie kill the app and restart). This has been an issue since before Unity 4.2. I've created bug reports but they've never been addressed. This also mean we are unable to do apply some heuristics to determine the best quality setting for a device and change to that setting at runtime. A very limiting bug.

    3. No source code obfuscation built in and no option to compile to native code (to eliminate the need for obfuscation). I know a lot of people will argue that this is not necessary, but sometime you do have trade secrets or novel implementations of things that you'd like to keep from prying eyes. I also understand the severe limitations of obfuscation but sometimes some protection is better than none (let's face it, locks do not make it impossible for people to enter our houses without our permission, yet we still have locks on the doors and use them regularly).

    4. No AOT or IL2CPP to take advantage of native performance like iOS has. This would eliminate issue (3) but also give (I assume) some significant performance boost for those games that are pushing the limits a bit too hard.

    5. EDIT ADDED: Better Permission control - http://forum.unity3d.com/threads/android-better-permission-controls-request.303647/ (thanks MrEsquire). Having to edit the manifest after build (which is tedious) is not a good workflow.

    How can we make it BETTER? What use-cases, features, workflows would like to see?

    Fix the items 1 - 5 listed above :)
     
    Last edited: Feb 27, 2015
    Zaddo67 likes this.
  9. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489
    +1 for obfuscation. But also, protection for other assets, models, sound, etc. (On all platforms)

    It is far too easy for your valuable IP to get stolen. Releasing a Unity project is like parking your car in the worst suburb in town and leaving a sign on the windshield "Please don't steal my car, but the doors are unlocked and the keys are in the ignition"
     
  10. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
  11. LunaticLabs

    LunaticLabs

    Joined:
    Feb 16, 2014
    Posts:
    1
    Who are you?
    Tom Ketola - CTO at LyteShot Inc and game industry veteran

    What kind of game are you trying to build or would like to build?
    At LyteShot, we are building an Sensor based mobile gaming platform, basically trying to gamify the IoT. We are also seeding our platform with games for mobile devices of all kinds.

    How does Android player fit into that? What use-cases do you have?
    We have released one iOS and Android gaming title, and are working on a few more.

    What are the GOOD things about Android player that you like?
    The Android player hides many of the complexities of developing for the Android player. It is *much* easier to port to multiple devices, and gives me the opportunity to create a unified code base between the iOS and Android versions of our products. It is also much easier to code games using C# than dealing with many of the complexities given by Android's Java SDK, as well as abstracting the very large variety of phones/screen sizes/OS versions that exist in a relatively fragmented Android market.

    What are the BAD things about Android player that you dislike?
    The major issue that I have with the Android player is support for native code. We often end up having to integrate with either 3rd party native Android plugins, or having to create native plugins for our own projects. An example of this is a library we created to allow us to communicate with Bluetooth and Bluetooth LE devices. I find the code around dealing with native libraries to be needlessly complex compared to your other platforms.

    How can we make it BETTER? What use-cases, features, workflows would like to see?

    1) There is a large amount of scaffolding that is required to make and handle those calls, and a large portion of it is similar enough, that it seems that it could be wrapped in such a way that we wouldn't have to write it. Getting handles to named instances or classes and then calling the methods, with the additional code to cache the instance or class handle so that it can be re-used for performance reasons. This sort of code gets written repeatedly, and it would be nice to just have it wrapped, since it seems to happen in a relatively standard way.
    2) Because of the requirement to integrate with native plugins, and debug the code written for such plugins, we often build into an eclipse project. This also makes the signing of the build through our CI server quite a bit easier. However, since Eclipse has been deprecated for Android Studio, I would really love support for Android Studio projects. I would find this support to be rather necessary, something akin to the support for XCode that Unity provides.
     
  12. johnnydj

    johnnydj

    Joined:
    Apr 20, 2012
    Posts:
    211
    Please just enable live wallpaper support again so we can use the Uni2Lwp plugin to create awesome live wallpapers.
    this would be a huge thing that you could do!
     
  13. seaders

    seaders

    Joined:
    Oct 28, 2014
    Posts:
    29
    Do a check to see if your project exists within a folder, or parent folder that starts with a ".", ie. the common CI program, Jenkins' home folder ".jenkins", and if it does, at the very least popup a warning about trying to build in there, because Android libraries don't get found, or packaged correctly, and you end up with a broken, unstable bundle.
     
  14. Vaupell

    Vaupell

    Joined:
    Dec 2, 2013
    Posts:
    302
    Who are you?
    Martin Vaupell, developer.
    I develop parts for games, programs and dynamics engineering software.

    What kind of game are you trying to build or would like to build?

    I build games, applications using multiple development tools.
    Visual net, Dev-c++ bloodsheed, Unity3d 5, Delphy, even still use Borland 5 on ocasion.

    My last app, is a "private" reporting tool i made using unity, even though it would have been
    more clean to use .net :p but within a few hours and a few patches i got a android app that was
    sending and receiving data between multiple phones and 2 servers as needed. :D

    How does Android player fit into that? What use-cases do you have?
    Well, primary i use unity for extremely rapid prototyping of apps, and visualize concepts.
    And on occasion minor games for fun.

    What are the GOOD things about Android player that you like?

    Fast and very easy to build once setup, utilizing things from the unity engine.

    What are the BAD things about Android player that you dislike?

    1)
    Unity builds are so heavy!
    Example, make a blank screen using "unity's OWN build in UI" with nothing but
    a text line that says "Hello world!" and a close button. Compile it
    Problem 1 - It's OVER 13mb, thats insane, it includes so much unneeded stuff.
    Problem 2 - Load heavy, it's insanely slow to load that simple screen.
    Problem 3 - It's memory intense, that 1 screen app.

    2) AndroidManifest.xml

    How can we make it BETTER? What use-cases, features, workflows would like to see?

    Being able to build actual "LIGHTWEIGHT" APP's instead of games.
    For that i would buy the Pro addon for my Allready pro unity 4 pro and unity 5 pro license(s)
    very often i find myself wanting to make small easy apps, and i use unity because it's really fast
    to compile even with the AndroidManifest.xml bullshit.

    But then after testing and prototyping, i ALWAYS have to convert my projects to another compiler
    simply because of
    1) File size
    2) Unity .apks are really slow/heavy working
    3) A lot of free compilers dont have the splash screen, but requires extra work instead.
     
  15. PedroDuran

    PedroDuran

    Joined:
    Aug 19, 2014
    Posts:
    32
    First of all PLEASE fix the android splash screen for the unity free users that looks horrible !
     
  16. JasonOrtinskid

    JasonOrtinskid

    Joined:
    Jan 6, 2016
    Posts:
    22
    Who are you?
    Developer.

    What kind of game are you trying to build or would like to build?
    We use Unity for multiplayer games.

    How does Android player fit into that? What use-cases do you have?
    Mobile is a great market to monetize and spread our fun games.

    What are the GOOD things about Android player that you like?
    Everything works great, almost!

    What are the BAD things about Android player that you dislike?

    It doesn't support c++ very well yet, it's unstable.

    How can we make it BETTER? What use-cases, features, workflows would like to see?

    Definitely need IL2CPP for Android to become stable.
     
  17. AdrienC4M

    AdrienC4M

    Joined:
    Jan 7, 2013
    Posts:
    7
    Who are you?
    Developer at C4MPROD. We made games like Tekken Card Tournament or Bulba the Cat on mobile devices..

    What kind of game are you trying to build or would like to build?

    We are making all sort of game, card, platform, stratégie, etc...

    How does Android player fit into that? What use-cases do you have?

    Android is a huge part of the mobile market and we are proud to be able to make game for it.

    What are the GOOD things about Android player that you like?

    The simplicity to build game with the same code as other platform.

    What are the BAD things about Android player that you dislike?

    The plugin managment.

    How can we make it BETTER? What use-cases, features, workflows would like to see?

    Today, we are using a lot of plugins. Now plugins can be used as jar, android library, aar, and it became very difficult to handle conflict.
    In most case, the error logs when building are truncated and it's impossible to tell where is the problem.
    It should be possible to tell the plugins conflicting or the lib(jar) that contain the conflict.
    We are using Unity since the version 2 or 3 and we are losing a lot of time to debug this king of conflict.
     
    Last edited: Feb 10, 2016
    C4M likes this.
  18. GeodeLX

    GeodeLX

    Joined:
    Nov 28, 2013
    Posts:
    7
    Who are you?
    I'm an independent developer.

    What kind of game are you trying to build or would like to build?
    I'm writing a medical app.

    How does Android player fit into that? What use-cases do you have?
    I'm using Unity3D to manipulate the human/animal model.

    What are the GOOD things about Android player that you like?

    Ease of use, portability.

    What are the BAD things about Android player that you dislike?
    It doesn't work in a fragment. That's pretty much it... I just can't get the Unity3D view to show up inside an android fragment. NOTE: I'm a seasoned low-level developer and would LOVE to help fix this!

    How can we make it BETTER? What use-cases, features, workflows would like to see?
    Umm... make fragments work?

    Thanks for your time providing this feedback and helping us to improve Unity.
    Thank you for Unity3D... and for making it so easy to use!
     
  19. n1gth

    n1gth

    Joined:
    May 6, 2015
    Posts:
    16
    Who are you?

    Independent developer team of 3

    What kind of game are you trying to build or would like to build?

    We build utility/sports app, the latest is a sports app with 3d visualizations.

    How does Android player fit into that? What use-cases do you have?

    The android player lets us create 3D content quickly and then display it in the app in its own activity. Ideally, the player would run in its own fragment (see GeodeLX's reply above for the same!), allowing Android UI around the 3D window.

    What are the GOOD things about Android player that you like?

    Easy export to Android Studio, works nicely in an app. Runs fast on mobile.

    What are the BAD things about Android player that you dislike?

    The player is not well-behaved with permissions (bug 800896), if you have other permissions declared in the manifest, such as camera permissions, the activity will ask for them when the activity starts, despite not needing them.

    No fragments support yet.

    When you export to Android Studio you have to create a brand new directory to export to, otherwise the existing one is not cleared and the app crashes when you run.

    How can we make it BETTER? What use-cases, features, workflows would like to see?

    Fragment support for the player.

    Faster loading when the player starts (perhaps a hook to allow some early initialization on startup on a separate thread).

    A call somewhere to cause the activity to pop from the stack, at the moment we have some ugly code that handles a back click.