Search Unity

  1. Unity Asset Manager is now available in public beta. Try it out now and join the conversation here in the forums.
    Dismiss Notice
  2. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  3. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Windows 10 speech recognition API and some thoughts about new Unity features and APIs

Discussion in '5.4 Beta' started by bdovaz, Jan 16, 2016.

  1. bdovaz

    bdovaz

    Joined:
    Dec 10, 2011
    Posts:
    1,042
    I have seen it in Beta 2 as a new feature.

    There is something I don't understand about Unity. I have seen many times. There is some new feature that we know that there are equivalent APIs on more platforms but they only release it to one platform or two. Examples:

    - iOS GameCenter (There is no Play Game Services on Android)
    - iOS Local/Remote notifications (There is no equivalent API on Android)
    - iOS Plugins can have an inspector where you set which frameworks depende on (There is no equivalent inspector for Android "play-services-*" and "support-*" and we have to include all of it with our plugin).
    - WSA Toast class (There is no Toast equivalent on Android)
    - Mobile Input touch APIs (It doesn't work on Windows)
    - And there are more cases:
    * File/Folder Open/Save Dialogs (excluding iOS because of it's restrictions) that there is Editor API but not runtime API,
    * There is iOS namespace but not Android namespace (you can have an idea about which platform has more "priority")
    * No Mobile MovieTexture.
    * And so on...

    If Unity it's always talking about "cross-platform", make your APIs cross-platform!!!

    Thinking of that it seems that this new feature of speech recognition is something that has been requested from a very important client or something like that for a specific use case.

    And specifically on Android is a pain in the *** to deal with the AndroidManifest.xml merges and the "Assets/Plugins/Android" different plugins mix where you can't know which code is from which plugin (I know that in Unity 5 you can have your own structure but there are many plugins that are not updated or want to be compatible with Unity 4.X) so it would be nice if some "common" APIs would be built-in by Unity.
     
    Last edited: Jan 16, 2016
    MrEsquire likes this.
  2. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    Thats why I still use Prime31 plugins, I have bought many different ones on the Asset stores and to be honest they all been poorly coded and confusing way. Prime31 they are rip off price but do the job. Unity as part of there Services Team started doing InApps for cross platforms, I wait abit longer until its mature and I know in 5.4 we see more progress. But I keep saying we need Amazon support, always one thing they do not add to piss someone off, so got buy separate asset for Amazon.
     
  3. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,644
    You kind of hit the spot here. Speech recognition is a vital part of HoloLens, so implementing it brings us one step closer to supporting HoloLens. Since it's running Windows 10, the implementation of the speech stuff is identical on all platforms that run on Windows 10, and we saw no reason to artificially limit it to just HoloLens and enabled it anywhere it could work.
     
    ImpossibleRobert and MrEsquire like this.
  4. Alex-Lian

    Alex-Lian

    Guest

    Well, it often starts with a feature that one platform team manages to expose. Assuming it's a non-specific platform feature, making sure they're cross-platform and consistent often comes as a later pass. Trying to unify/make consistent multiple platforms is the hard problems we take on to solve, but they're not often straight forward and take time to do. Sometimes some underlying APIs simply might be incompatible and making them consistent is rather hard. Making all 100% APIs always 100% cross-platform is a lofty goal we hope to achieve, but reality will likely have us short of that. We're constantly pushing towards it though.

    For example, note the webrequest class was done initially in a subset of platforms, but should be rolled out now in 5.4 to most of the rest of the platforms. So, we do try, but it's not always easy to get done. In the case of the Input related items you pointed out, we're trying to address the base input system before moving forward on various platform implementations else we get to do twice the work.
     
  5. Prodigga

    Prodigga

    Joined:
    Apr 13, 2011
    Posts:
    1,123
    Web request was/is being swiftly rolled out to all platforms. But, for example, Local/push notifications and social API implantation have been iOS only since I've started using Unity years ago and there does not seem to be any plan to implement these on any additional platforms anywhere on the horizon.

    In contrast to this, when the new Web API was announced, I could check the roadmap to see when it would roll out to other platforms.

    These missing platform specific API implementations are not even on the roadmap.

    Is there any details the Unity team can go in to, explaining various platform specific API's are taking so long to implement? Plugins exist for all of these problems but knowing Unity half-supports the functionality you and having to find a 3rd party plugin to finish the job is really disappointing.

    Maybe we can have these missing API's added to the 'development' roadmap category if they are indeed being worked on?
     
    Last edited: Jan 19, 2016
    Deleted User likes this.
  6. Prodigga

    Prodigga

    Joined:
    Apr 13, 2011
    Posts:
    1,123
    Bump. @Alex Lian are you able to respond to my previous post regarding missing API implementions?

    Is it correct to say that Unity currently has no plans on updating the aforementioned API's to be truly cross platform? They are not mentioned on the roadmap. This suggests they are recieving no attention. The fact that the social API and the notifications API has lacked cross platform implemention of these features for years now backs up this fact.

    We are making do with custom in house local notifications for android and we've manually incorporated Google Play Services using the plugin that Google had to put together because Unity never got around to it. This all works fine, but it isn't ideal. Ideally we would only have to use nativate Unity functionallity when putting together a simple mobile game. I shouldn't have to deal with plugins and other crap for a simple mobile game. In this day and age, local notifications and social services (Google play) are commonplace. Infact, it seems like you can't even get featured on the Play Store unless you implement Play Services. We need to resort to using 3rd party plugins to get this basic/core functionality working.

    My post only deals with parts of the mobile API. @N3uRo mentioned some other parts of the API that were missing cross platform implementions.
     
    Deleted User likes this.
  7. Alex-Lian

    Alex-Lian

    Guest

    Right now we don't have plans to roadmap API implementations. However, it's worth the conversation internally, and I'll see about that.

    Regarding the rest, there's a lot of various reasons and considerations as to why some APIs are cross-platform and others are not. Some things just don't make sense yet as per platform implementations might make wildly different assumptions on how to utilize the API. Sometimes there are also technical dependencies, where some platforms offer features that others don't. Though, there's the simpler answer of we keep prioritizing other aspects higher: like bug fixing, working on stripping mobile packages to slim them down, better performance, etc. Right now, even though a pain, you can use plugins or implement the rest on your own. We're heavily focused on making sure the rest of the engine does what you expect it to do.
     
  8. bdovaz

    bdovaz

    Joined:
    Dec 10, 2011
    Posts:
    1,042
    The bottom line... You are not going to change anything...

    I really don't understand why you don't consider this because it's something that is used by almost all Unity mobile developers... And instead of giving attention you go for things like: "Director: Sequencer", "MonoDevelop and Unity REST Integration"... And many other things that it's for a very exclusive developer segment (that I think they are more valuable customers than we are so they get more attention) or it doesn't have so much priority (monodevelop, really??).
     
  9. Prodigga

    Prodigga

    Joined:
    Apr 13, 2011
    Posts:
    1,123
    Hey, thanks for replying Alex.

    Bug fixed and performance optimisations are on going tasks, and those things have not stopped Unity from swiftly pushing out new API's and features like the WebRequests API and implementing huge changes like Enlighten.

    Think about that for a second - The entire purpose of this thread is to point out things that the engine doesnt do that we, as developers, expect it to do.

    If the engine did what I expected it do it, I wouldn't be using a plugin.
     
    Last edited: Feb 3, 2016
  10. HaimBendanan

    HaimBendanan

    Joined:
    May 10, 2016
    Posts:
    28
    @Alex Lian , about the speech recognition - I was currently working on implementing a wrapper around Microsoft dlls so thank you!
    Is it supposed to work on phones running windows 10?
    And do you know if there are plans to add android support too? Here you can find native code from Microsoft for android as well as for windows, maybe you could support Android too without too much effort?
    Thanks again :)
     
    Last edited: May 10, 2016