is this even tested?

creat326
creat326 ✭✭
edited January 2018 in Photon Voice
Hi

Ok, I've implemented Photon Voice on Unity and I must say, I seriously wonder if this package is even tested by photon. The list of bugs is ridiculous and I had to change so much code I doubt someone even tested this on real environment aside from a basic setup.

1) You can change whatever settings, it doesn't matter. It will go to the default values because the unity scripts has a onRuntimeLoad section that will create a singleton for you, before your code is even called. So it will be instantiated with all default values and ignore anything you place.

2) The push to talk examples are buggy. For instance they don't mention that you need to have photonview on objects even if you are not using it for anything. And that those photonview has to be synchronized even if you are not using the transform positions/rotations/scales, because otherwise the system doesn't know which player is talking.

3) UWP build is non existent. It uses speedxdsp.dll which is not clear if it's x86 or x64. If you try to create a master build it will fail. There is also no arm speexdsp.dll so basically you can only make a x64 build and hope it works.

4) Build and run for iPhone x... enjoy while all your sound goes into the headphones and nothing on the iPhone speakers. You won't hear any of your game sounds.

5) Build and run for mac, uwp, pc... you'll get conflict duplicated dlls. You have to manually fix all those because the package was setup wrong. On UWP it won't even try to compile because the script has code that doesn't run on UWP, you have to also manually go and fix those.

and the list goes on and on. I mean seriously. All I had to do was switch between platforms with the demos and try to build and run and you would get it to fail. It seems nobody even bothered to do that.

Comments

  • JohnTube
    JohnTube ✭✭✭✭✭
    edited January 2018
    Hi @creat326,

    Thank you for choosing Photon and for your feedback!

    What Unity version did you use?
    The package has been uploaded using Unity 5.0.4f1 and tested on some Unity versions and as many platforms as we could.
    There are issues and we apologize for that.
    With your help, we can fix them and improve Photon Voice in its current state before we release Photon Voice 2.

    1) I think that's the intended usage, right? We create a ScriptableObject singleton asset (if none exists) which should persist between scenes and sessions. Correct me if I'm wrong.

    2) Photon Voice 2 will be decoupled from PUN. So you can use Voice -standalone- without PUN. Some customers already do this with current Voice after getting their hands dirty with the code.

    3) see 5 below.

    4) While this is a Unity issue we are constantly looking for a good solution for our customers.

    5) Sorry about that.


    it is a matter of plugins import settings per platform and configuration...

    I thought we have fixed this in v1.13 but maybe the meta files are not the same between Unity 5 and Unity 2017 or we missed something.


    Here is a snippet from an old post:

    - "Assets\Plugins\WSA\x86\opus_egpv" should have platform "WSAPlayer" only and CPU: "X86".
    - "Assets\Plugins\WSA\x64\opus_egpv" should have platform "WSAPlayer" only and CPU: "X86_64".
    - Set target from Unity Inspector of "Assets\Plugins\AudioIn.bundle" and "Assets\Plugins\libspeexdsp.bundle" and "Assets\Plugins\opus_egpb.bundle" to "Standalone" and "Editor" only and OS: "OSX".
    - All files under "Assets\Plugins\x86" should have platforms "Standalone" and "Editor" only and CPU: "X86".
    - All files under "Assets\Plugins\x86_64" should have platforms "Standalone" and "Editor" only and CPU: "X86_64".

    We are a small team and we will need to automate the process of platform compatibility checks and maybe Unity versions checks.

    For UWP compatibility keep an eye on this thread.
    For iOS speakers issue keep an eye on this thread.
  • Answering your questions:

    First, I always use the latest Unity stable build. Which is 2017.2 or .3 at this writing. But it doesn't matter since the issues i found are not unity related but your code. As for the settings for compilation, you should upload with unity 5.5, not unity 5.0 which is ... 2 years old? at the very minimum.

    1) I think that's the intended usage, right? We create a ScriptableObject singleton asset (if none exists) which should persist between scenes and sessions. Correct me if I'm wrong.

    Answer: yes, this is wrong. It's not that you generate an instance the first time it's called. The problem is that it generates an instance even if we don't call it. You may feel this is ok, but it then ignores all our settings. Example: Place a photon service script into your scene. Change the default settings, things ilke you don't want autoconnect or autodestroy. I mean, just get ANY of your demo scenes and change the default settings. In the documentation you even explain you can change those default settings. WRONG. Since your code instantiates BEFORE anything is even called, it will instantiate with the default settings and when your scene loads it throws an error: instance already exists, ignoring. Done. No matter how much you change your settings they are ignored. And this is for default photon PUN and for the voice system. Amazed nobody caught this.

    2) how can i decouple it already from PUN? i have no problem getting my hands dirty with code. In fact I had to change lot of your code since it wasn't working as documented so it would be great if you can point me at the direction on how they decoupled it since I don't need PUN right now for anything at all aside from getting voice to run.

    5) Uploading for unity 5.0.4 is ridiculous. That's prehistoric unity at this point. Minimum should be unity 5.5. Also I followed the instructions you listed there and it'snot complete since dlls are not listed in there (you will find on that post that people didnt' get a master build). I got it working by changing several files, code on several places and platform settings. In any case, the errors I found would make it fail even on Unity 5.0 so obviously nobody in there tried to make a UWP build and upload to the windows store.
  • JohnTube
    JohnTube ✭✭✭✭✭
    1) I think maybe you are doing it wrong since you mentioned this yourself "Amazed nobody caught this". And I'm also surprised you are adding PUN's way of handling the PhotonServerSetting ScriptableObject to how Photon Voice is managing the PhotonVoiceSettings MonoBehaviour Singleton.
    It's just easy, you need only one instance at all times. When Photon client needs one if it's there is uses it if it's not it creates a new one with default values.

    2) I recommend you wait until Photon Voice 2 is out.

    5) As I mentioned before we will try to automate the process of testing our packages and demos on multiple unity versions and multiple platforms. in the meantime, we rely on the patience and understanding of our good community. Any suggestions, advice or ideas are welcome.
  • JohnTube
    JohnTube ✭✭✭✭✭
    Hi @creat326,

    I want to let you know that Photon Voice 1.14 is out and it should include a fix for the singletons issues you mentioned.
    Sorry we missed those cases and thank you for your report and patience.