Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Turbo Switch PRO - Fast and save platform switches

Discussion in 'Assets and Asset Store' started by Stefan-Laubenberger, Oct 5, 2016.

  1. Aurigan

    Aurigan

    Joined:
    Jun 30, 2013
    Posts:
    291
    I love this asset but had to stop using it as it was caching out of date versions of json files (Unity 2017.2.0p2) which meant game data was regressing when I switched platforms.
     
  2. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi

    I'm here to help!
    Can you please elaborate a bit more what exactly happened?

    Thank you!


    Cheers
    Stefan
     
  3. Aurigan

    Aurigan

    Joined:
    Jun 30, 2013
    Posts:
    291
    Er, not sure what else to add ... I have some json files (unit costs, game dialog etc.) in Assets/Resources. If I edit these then use TPS to switch platforms (Android/iOS) then I end up with older versions of the json files.
     
  4. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hmm, that bothers me the most!
    TPS doesn't change anything inside the "Assets" folder, so I'm tempted to blame Unity ;)
    No, seriously, I think Unity doesn't recognize those changes and uses the old versions.

    Is there any chance you could try it with a newer Unity version, like 2017.2.1?
     
  5. Aurigan

    Aurigan

    Joined:
    Jun 30, 2013
    Posts:
    291
    I'm loathe to upgrade unity versions because it tends to break as many things as it solves ... for now switching build platforms and accepting the slower switch time seems to work fine.
     
  6. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Yeah, you are right!
    But I really wanna create an awesome tool - just for you ;)
    If you find the time, please try it with 2017.2.1, it's much better than the 0-version!

    Unity should never relaese 0-versions, they are mostly buggy!

    However, I'm still convinced it isn't our fault :p
     
  7. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Please make sure you disabled Unity's internal cache:
    Unity_Cache.PNG
     
  8. claudiorodriguescampos

    claudiorodriguescampos

    Joined:
    Jun 23, 2017
    Posts:
    98
    I use TPS PRo 1.8.0. I have a project that has 1.8 gb. Everytime that I change platform using TPS(I work with android, ios, Windows), it takes a long long time to change platforms. More than 4 hours, is it normal? It appears that is not making cache.

    TPS Pro has any way to measure how many time is used to change platforms?
    Is it possible do to something to reduce that platform change time?

    I have a notebook i5 3337u with 2.9ghz turbo boost.
     
  9. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi

    Please make sure you have disabled Unity's own caching mechanism:
    Unity_Cache.PNG

    Does it help?
    Please let me know.
     
  10. claudiorodriguescampos

    claudiorodriguescampos

    Joined:
    Jun 23, 2017
    Posts:
    98
    Unfortunately no, because it is already disabled. Is anything else that I can do to make the change faster?
     
  11. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Ok, this seems strange :(
    Did you switch multiple times?
    The first switch for every platform will take some time.

    Does your "Switch"-tab look similar to this?
    Capture.PNG
     
  12. claudiorodriguescampos

    claudiorodriguescampos

    Joined:
    Jun 23, 2017
    Posts:
    98
    Yes, this is the Switch tab that I use, I don't use Unity switch screen anymore to change platforms. I only use Switch tab from TPS Pro.
     
  13. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    But is it still "slow"?
     
  14. claudiorodriguescampos

    claudiorodriguescampos

    Joined:
    Jun 23, 2017
    Posts:
    98
    Yes, it is still slow.

    I will try to calculate the time that needs to change between platforms tomorrow.

    I have a question, when I change platforms using TPS, is it possible to interrupt the process if I want?
     
  15. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    It's not a good idea to cancel the switch.

    Can you please send me an email - it's easier to discuss.

    Thx!
     
  16. Jochanan

    Jochanan

    Joined:
    Nov 9, 2016
    Posts:
    85
    Hi @Stefan-Laubenberger, In our project, we are building asset bundles using Editor script code:
    Code (CSharp):
    1.  
    2. static void BuildAllAssetBundles ()
    3. {
    4.     _buildArch(BuildTarget.StandaloneLinux, "StandaloneLinux");
    5.     _buildArch(BuildTarget.StandaloneWindows, "StandaloneWindows");
    6.     _buildArch(BuildTarget.Android, "Android");
    7.     _buildArch(BuildTarget.StandaloneOSXUniversal, "StandaloneOSXUniversal");
    8. }
    9.  
    10. private static void _buildArch(BuildTarget target, string arch, List<AssetBundleBuild> assetBundleBuilds = null)
    11. {
    12.     string assetPath = Path.Combine ("AssetBundles", arch);
    13.     Directory.CreateDirectory(assetPath);
    14.     // Build Asset Bundles
    15.     if (assetBundleBuilds == null) {
    16.        BuildPipeline.BuildAssetBundles (assetPath, BuildAssetBundleOptions.None, target);
    17.     } else {
    18.        BuildPipeline.BuildAssetBundles (assetPath, assetBundleBuilds.ToArray(), BuildAssetBundleOptions.None, target);
    19.      }
    20. }
    21.  
    But now, unity converts WHOLE project between builds and it took AGES. It is possible to integrate your asset to speed things up? I checked the documentation and it looked like you have to manually switch the platform using asset settings.
    Thanks for the info!
     
  17. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi Jochanan

    Thank you for your interest in "TPS"!

    Yes, you can call a method after the switch.
    If you want to modify it, please consider the PRO version of the asset.

    We work on a new asset called "Turbo Builder" which will handle exactly your case.
    If you decide to invest in TPS, I'm willing to give you an early version of the new asset ;)


    So long,
    Stefan
     
  18. Jochanan

    Jochanan

    Joined:
    Nov 9, 2016
    Posts:
    85
    Hi Stefan,
    with TPS Pro, i would have to change the editor scripts of TPS to integrate asset build on platform switch to have it working?

    As for the "Turbo Builder" how far with the development are you? I am very interested in solutions, that might save me some time...
     
  19. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi Jochanan

    That depends on your setup. TPS can call a public static method after every platform switch. This means, you have to implement the actions there.

    Our "Turbo Builder" is technically finished - it simply needs some polishing. It lacks some polishing (e.g. some things have to be set inside the script), has no documentation (but is very easy to use) and is not "battle-tested".
    As I said, I'm happy to provide you an early version. If it's not suitable for you, I will assist you with your own solution.


    So long,
    Stefan
     
  20. SweatyChair

    SweatyChair

    Joined:
    Feb 15, 2016
    Posts:
    140
    Hi @stefan,

    I just updated TPS from 1.6.x to 1.8.2, and it introduced a bunch of compile errors due to the conflicted Constant class which also used in our project.

    I am wondering if you can, instead of using Constant, use Util.Constants across all your scripts?

    Tried to change it manually but found that it's being used in many places and that influence all class in Crosstales.TPS.Util...
     
  21. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi

    Do you use a namespace in your own "Constants"-class?
    If not, please add one and the errors should be gone...


    So long,
    Stefan
     
  22. Jribs

    Jribs

    Joined:
    Jun 10, 2014
    Posts:
    154
    @Stefan-Laubenberger

    Hey I've been using TPS Pro for over a year now and havent had too many issues up until now. I just upgraded Unity to 2017.4.1f1 and also made sure I updated TPS to the latest and I have been having issues ever since.

    I cleared my caches when I first updated to make sure everything saved properly with the new Unity version. After the initial saving/switching, it seems like TPS isnt recognizing that it has platforms saved. Ive spent the past few days just changing from windows -> android and then back to windows then back to android. Everytime I switch platforms it says it's saving the platform it is leaving, takes a few hours, then reimports everything as if I was changing platforms normally. This is even after the initial saving of the platform being switched into.

    This started happening the past couple days, last week I was having a different issue. It seemed like it was saving things and the switches were pretty fast, but when I went to make a build in the platform I was in, THEN unity decided it needed to re-import, making that single build take hours. Its like it just moved the re-import process.

    Are these known issues? I'm not really in a position to test these things out, I need to have a solution for switching platforms yesterday.
     
  23. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi

    This sounds strange...
    Can you please make sure, that Unity's own cache server is disabled:
    upload_2018-4-26_8-37-28.png

    Is that the case?
     
  24. Rajmahal

    Rajmahal

    Joined:
    Apr 20, 2011
    Posts:
    2,101
    I switched from android to PC and the events in my animation clips were deleted. This will take a couple days to redo so I'm trying to recover my project from backup and then switch platforms the normal way. Can you please explain a safe way to remove tps from a project and do a normal switch?
     
  25. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi

    Hmm, that's really strange and I'm really sorry for any inconvienence!
    I can't think of a reason why TPS should be the problem, especially since we NEVER modify anything inside the Assets-folder...
    However, you could switch back to Android via TPS and check if all events are still there.

    If you want to remove TPS, just delete "Assets/Plugins/crosstales" and the the folder "TPS_cache".


    Cheers
    Stefan
     
  26. Rajmahal

    Rajmahal

    Joined:
    Apr 20, 2011
    Posts:
    2,101
    No problem, it happens.

    After deleting the TPS folders, do I restart Unity and then switch platforms normally or is there anything else I have to do first? I just want to be extra careful as I'm near the end of my development cycle on this project and don't want to cause anything to mess it up or corrupt the project. It appears my online backup is going to take many more days to restore (Crashplan Pro) so I may just redo the animation events on all the animation clips after all.
     
  27. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    No, you can just use the standard switch from Unity.

    I hope everything turns out well.


    So long,
    Stefan
     
    Rajmahal likes this.
  28. reddo1987

    reddo1987

    Joined:
    Aug 1, 2014
    Posts:
    35
    Hi,
    I have a question. Right now I'm developing only for android and I need to switch Texture Compression (from Adreno to PowerVR etc) very often and it takes a lot of time. Your plugin can be helpful to decrease the waiting time or it only works with platform switch (Android to iOS etc)?
     
    Last edited: May 10, 2018
  29. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi

    Thank you for your interest in TPS!

    It supports multiple texture formats under Android:
    upload_2018-5-10_14-59-11.png

    So yes, it would be helpful :)


    Cheers
    Stefan
     
  30. reddo1987

    reddo1987

    Joined:
    Aug 1, 2014
    Posts:
    35
    Thank you
     
    Stefan-Laubenberger likes this.
  31. RolfBertram_dot_me

    RolfBertram_dot_me

    Joined:
    Mar 1, 2011
    Posts:
    128
    I am getting this error message 8 times (pointing to 8 lines in the code of the script Switcher.cs:
    Assets/Plugins/crosstales/TPS/Editor/Switcher.cs(30,13): error CS0103: The name `Util' does not exist in the current context
    I had to temporarily delete this script, since I don't know how to solve this.
     
  32. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi Rolf

    Hmm, I see the problem... You probably have some other code that uses the "Util"-namespace.
    However, I made a fix for the affected file. Just send me an email and I give you the latest version of TPS.


    Cheers
    Stefan
     
  33. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    I made a comparison between the "Unity Cache Server" and our "Turbo Switch". Our asset is 8-10x faster than Unity's own implementation :p

     
  34. Muckel

    Muckel

    Joined:
    Mar 26, 2009
    Posts:
    471
    hello Stefan,
    well I've had he Problems with TPS on Mac and Unity3d 2018.1.6f1 and other builds...

    here a example what's not working...
    make a new project and import some images...
    now se the images in your gui... build for Android... all is fine...
    now open the images and resize or color correct... what ever... and safe them...
    if you now do a build... the org images from TPS cache are taken...
    if yo switch now to iOS ... also the cached images are taken...
    yo have to delete the TPS cache and rebuild the complete project to make it work...
    so every time you change a image in Unity with double klick you have to rebuild the complete cache :-(
    to find this out took us a complete day... had to delete TPS to get the project work again...
    M.
     
  35. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi Muckel

    Sorry for the inconvenience! You are right, I made an error which in some constellations leads to the problems you mentioned...
    I'm currently working on the next version and it will solve ALL those issues and it's ready to be released soon!
    Do you have the PRO version? If so, please send me your invoice per email and I can give you the fixed version.


    Cheers
    Stefan
     
  36. gxcross

    gxcross

    Joined:
    Dec 21, 2017
    Posts:
    4
    Just downloaded this, and love it! It seems to be working great, except for a couple issues:
    1. Some of the textures when switching to Android seem to be messed up. The normal build setting I have for Android is "don't override". Is there an equivalent setting for Turbo Switch?
    2. The docs say that "git" is supported, but there isn't much other detail. In particular, when I switch platforms, git reports hundreds of file changes (tho there are no content changes). Any way to fix that?

    Other than those two issues, it is great! Thanks for building a great plugin!
    Lyle
     
  37. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi

    I'm glad it's useful for you!

    About the problems, please let me ask some additional questions:
    1. Which version of TPS are you using, 1.9.0?
    2. I suspect those changes are inside the "Library"-folder, aren't they? Have you added the "Library"-folder to your gitignore-file?
    Further, I'd like to know your Unity version and current OS.


    So long,
    Stefan
     
  38. gxcross

    gxcross

    Joined:
    Dec 21, 2017
    Posts:
    4
    Yeah 1.9.0, non-pro

    They are files in Assets. Library is already ignored. I get this problem (no changes, but git thinks it's changed) though on some other files even without TPS though - so this might not be a TPS issue. For instance, some font materials are marked as changed even though they weren't.

    I'm using Unity Pro 2018.1.6f1 and currently testing on Windows 10. Though I also develop on a Macbook Pro when on the road.

    Thanks for the quick reply!

    Edit:

    This is probably also something dumb on my part, but how do I disable Turbo Switch when doing CI builds? I only want to use Turbo Switch locally during development. (We use Jenkins).. Thx!


    +++ 'Unity Cache Server' has been disabled for Turbo Switch! +++
    UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:Log(LogType, Object)
    UnityEngine.Debug:LogWarning(Object)
    Crosstales.TPS.Task.DisableUnityCacheServer:.cctor() (at Assets/Plugins/crosstales/TurboSwitch/Editor/Task/DisableUnityCacheServer.cs:18)
    System.Runtime.CompilerServices.RuntimeHelpers:RunClassConstructor(IntPtr)
    System.Runtime.CompilerServices.RuntimeHelpers:RunClassConstructor(RuntimeTypeHandle) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Runtime.CompilerServices/RuntimeHelpers.cs:101)
    UnityEditor.EditorAssemblies:ProcessEditorInitializeOnLoad(Type) (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorAssemblies.cs:93)
    UnityEditor.EditorAssemblies:ProcessInitializeOnLoadAttributes() (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorAssemblies.cs:131)

    (Filename: Assets/Plugins/crosstales/TurboSwitch/Editor/Task/DisableUnityCacheServer.cs Line: 18)
     
    Last edited: Jul 5, 2018
  39. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Ok, I see you use the latest version...

    Textures on Android:
    What do you mean by the textures are "messed up"? Can you give me an example?
    However, you can enable the textures for Android under "Config":
    upload_2018-7-6_9-54-22.png

    upload_2018-7-6_9-55-16.png

    Changed files:
    TPS does not touch the "Assets"-folder. Therefore, those changes must be from something else...

    Jenkins:
    There are three possibilities:
    1. Delete "DisableUnityCacheServer.cs"
    2. Exclude "Assets\crosstales\" from your git-repo
    3. Use TPS via CLI for your Jenkins build process (which will be very fast)

    We also release our next asset "Turbo Builder" very soon, which, in combination with TPS, will be the fastest solution to create "builds" for all platforms, and it also works with CLI.
     
  40. Muckel

    Muckel

    Joined:
    Mar 26, 2009
    Posts:
    471
    hello stefan,
    just confirm that all works well now for me...
    thx & keep it up
    M.
     
    Stefan-Laubenberger likes this.
  41. gxcross

    gxcross

    Joined:
    Dec 21, 2017
    Posts:
    4
    Ah, great thx.. will just add a #IF directive around that..

    Okay, thank u
     
    Stefan-Laubenberger likes this.
  42. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Important notice for all "standard" customers:

    We constantly try to push our assets to the next level by adding new features and deliver the best support for our customers. In the past we've kept updating the asset in a 2-month cycle. However, after careful consideration, we feel like this needs to happen at a faster pace. We've received numerous input from the community that a faster pace would help out a lot. Because Unity is ever evolving and we want to keep our assets relevant we need to be able to keep up the fast pace that is Unity's second nature. Packaging and maintaining a separate DLL-version poses a problem in regards to this goal.

    With this in mind, we decided to phase out the DLL-version by the end of August 2018.
    Besides being able to update the asset more often, we are convinced that phasing out the DLL-version in favor of the PRO version will also bring these improvements for our customers:
    1. More functionalities and supported platforms due the source code (e.g. Linux)
    2. Less frictions with different Unity versions within the same company
    3. Fast hotfixes and high priority support

    We understand that this may impact you negatively. However we hope with the upgrade-path we offer to you - our loyal DLL-customers - can alleviate your concerns and win you over once more:
    Turbo Platform Switch PRO

    Please rest assured we will continue to support and improve the PRO version over the years to come.

    I hope you understand our decision.


    Cheers
    Stefan
     
  43. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Update regarding the deprecation of the standard package:

    The standard package is planned to be available (but no longer maintained) until December 2018. This will allow the transition to PRO with a 50% reduced upgrade-price for our existing customers.
    Afterwards, the package will vanish from the store and the upgrade path will become inaccessible.


    Edit:
    We managed to create an upgrade path for the standard version which will last forever.
    Therefore, customers of the DLL version can still upgrade to PRO for 50% of the full price.
     
    Last edited: Jan 22, 2019
  44. v_James_v

    v_James_v

    Joined:
    Feb 13, 2016
    Posts:
    40
    It looks like the overall asset price is discounted 50%. But the upgrade prices still seem to be the same for this asset, turbo backup and online check.
     
  45. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Yes, that's right.
    In the end, you would pay the same amount as if you've gotten the PRO in the first place. Our existing PRO-users would feel treated unfairly if we give a bigger discount...

    Therefore it's 50% less compared to no upgrade-path or an instant deprecation, which would lead to 100% increase.
     
  46. v_James_v

    v_James_v

    Joined:
    Feb 13, 2016
    Posts:
    40
    Thanks Stefan. So there was no upgrade path previously?
     
  47. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    The upgrade-path was always available and it will hopefully stay that way until December 2018.
    Unity does unfortunately not support upgrade-paths from deprecated packages which is why we decided to have this transition period for our customers.
     
  48. v_James_v

    v_James_v

    Joined:
    Feb 13, 2016
    Posts:
    40
    Ok cool, yeah I understand the time frame for users like me to upgrade, but there's no actual discount on the upgrade. I initially read it as 50% off the upgrade price. Anyway, I've only recently bought three of your dll assets, and am very impressed. Very happy customer here, cheers :)
     
    Stefan-Laubenberger likes this.
  49. JohnnyFactor

    JohnnyFactor

    Joined:
    May 18, 2018
    Posts:
    343
    I use Collab but it's not clear what needs to be done. It's not a choice on the vcs dropdown and I'm afraid of messing something up. Could you clarify what I should do, and also update the documentation with that info.
     
  50. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,976
    Hi Johnny

    The latest version (see post above) supports Collab.
    If you send me your invoice, I will give you the newest version.


    Cheers
    Stefan