Search Unity

Turbo Switch PRO - Fast and save platform switches

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

  1. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Turbo Switch (TPS)

    Why use Turbo Switch?

    When working on a multi-platform project in Unity, you often have to switch between platforms to test compatibility, see if things work as intended, and tweak things on each and every platform.

    The larger your project gets, the longer the switch time becomes. It can become a serious setback in your development process.

    Turbo Switch aims at reducing the time taken switching platforms by caching all data that has already been imported and does not need to be re-imported. In an ideal scenario where your platforms are cached and you haven’t changed anything, you can see an improvement of up to 100x faster platform switching time (with AssetDatabase V1).

    Turbo Switch does not modify or interfere with the asset import pipeline. Therefore, it doesn’t have any effect on the time it takes to import new or modified assets.

    It does, however, cache assets that have already been imported so you don’t have to re-import them if you haven’t modified them. Concretely, the first time you switch to a new platform, you won’t see any benefit. Only subsequent switches will use cache.


    Features:
    Fast & efficient

    • Up to hundred times (100x) faster than the default Unity platform switch
    • Up to ten times (10x) faster than Unitys cached platform switch
    • Support for various VCS like Unity Collaborate, git, svn, Mercurial & PlasticSCM
    • Select your custom cache target external HDD/SSD or NAS
    • Manage the cache per platform
    • See the total/per cache space usage

    Supported platforms

    Turbo Switch works with ALL platforms, but supports those out-of-the box:
    • Android
    • iOS
    • Linux
    • macOS
    • PS4
    • Switch
    • tvOS
    • WebGL
    • Windows
    • (UWP (WSA)
    • XboxOne

    Documentation & control
    • Powerful API for maximum control
    • Comprehensive documentation and support
    • Full C# source code

    Compatibility
    • All Android texture formats are supported
    • Works with Windows, Mac and Linux editors
    • Compatible with Unity 2019.4 – 2023
    • C# delegates

    Integrations


    Important note

    AssetDatabase V2 (Unity 2019 and newer) switches the platforms as fast as this asset.


    Benchmarks
    Turbo Switch can be up to 100x faster than traditional platform switching with AssetDatabase V1. You’ll hit that mark when switching to iOS using „hot“ cache. By hot we mean that everything is cached and nothing has changed. Switching with a „cold“ cache (equals to no cache at all) results in zero benefits except for the fact that you’re initializing your cache for subsequent benefits. On average, with a „warm“ cache you should see improvement between 30-50x on platform switches which is still a considerable gain in terms of time.

    We’ve compiled a few benchmarks below which do not hold any scientific value. They aren’t meant to be exact or precise but rather to give a general trend of what to expect in terms of maximum benefits when switching platforms in various environments.

    So your mileage may vary!

    NEW:
    TPS vs Unity Cache without info.png

    VikingVillage.PNG

    Courtyard.PNG

    Specs
    Processor: Intel Core i7-4700HQ
    RAM: 32GB
    GPU: nVidia GeForce GTX 780M, 4GB
    HDD: Hitachi HTS72757


    Some impressions:

    PrefWindow - 01_Switch.PNG

    ConfigWindow - 02_Config.PNG


    AssetStore:
    Turbo Switch PRO
    Turbo Suite Bundle
    All Tools Bundle

    Our other assets


    Changes


    Any constructive comments are very welcome!



    So long,
    Stefan
     
    Last edited: Jan 27, 2023
    theANMATOR2b likes this.
  2. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    We made some videos:

    ***NEW*** Performance "Book of the Dead":



    Tutorial:



    Performance "Viking Village":



    Performance "The Courtyard":



    Cheers
    Stefan
     
    Last edited: Jun 24, 2018
  3. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Hey Stefan - all videos are set to private. o_O
     
  4. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Thank you for mention this! They are now all public :)
     
    theANMATOR2b likes this.
  5. ilmario

    ilmario

    Joined:
    Feb 16, 2015
    Posts:
    71
    Bought it -> loving it -> make it compatible with Advanced builder and I'll love it even more!
     
  6. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Hi ilmario

    Thank you for buying TPS and the kind words!
    I'm already in contact with Yohan (the guy from AB) and we try to figure something out!


    So long,
    Stefan
     
    ilmario likes this.
  7. hakankaraduman

    hakankaraduman

    Joined:
    Aug 27, 2012
    Posts:
    354
    I had purchased another asset and it was deprecated. It was an instant buy when I see this. Thanks
     
    Stefan-Laubenberger likes this.
  8. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Hi hakankaraduman

    Thank you for buying TPS!
    If you have any questions or suggestions just let me know.


    Cheers
    Stefan

    P.S: if you like the asset, please rate it ;)
     
  9. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi Stefan,

    Any chance this works on Unity 4.7.2? Would be great for maintaining older projects!

    Thanks

    - Mel
     
  10. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Hi Mel

    Thank you for your suggestion!
    We created TPS wit version Unity 5.3+ in mind but since we've got various requests regarding this feature, we consider an update for older Unity-versions... But I can't promise anything right now :cool:


    So long,
    Stefan
     
  11. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Sounds good! Will keep an eye out.
     
  12. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Ok, I made a decision :)
    TPS will soon support Unity 4.6 - 5.5, but I don't plan to add the following platforms from 4.6:
    • BlackBerry
    • FlashPlayer
    • PSM
    • WP8Player

    I hope this is fine for you or does anybody really need those platforms?
     
  13. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Great news, I'm personally fine with that :)
     
  14. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    It's done, TPS is now fully compatible with all versions from 4.6 -5.5!

    If you like the updated version, send me an email with the invoice and the desired Unity-version(s) and I send you the new package(s).

    As soon as we added WebPlayer, N3DS and WiiU we will submit the final version to the store.


    So long,
    Stefan
     
    Last edited: Oct 30, 2016
  15. ilmario

    ilmario

    Joined:
    Feb 16, 2015
    Posts:
    71
    Nice, I'll hope to see it soon in the store.

    What about the Advanced builder co-operation, is that likely going to happen?
    Another note about the TPS file-structure. Why are those little icons in a "Resources" folder? That will mean they will be added to any builds, which AFAIK is totally unnecessary.
     
  16. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Hi ilmario

    I wrote to Yohan many times (incl. reminders) but he seems to be very busy atm.
    Unfortunately, I can't implement this feature without his help so we have to wait...

    To read the icons from every location inside your project, they have to be in a "Resources"-folder. If I don't handle it this way, I have to scan the structure of the project every time, which isn't very performance friendly. The icons add less than 20KB to your build - imho that should not be a problem. ;)
    If you're really annoyed by them, just delete the "Resources" folder inside TPS.

    So long,
    Stefan
     
  17. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Good news! I found a solution to get rid of the images. :)
    I will add this in the upcoming release. If you like it sooner, just drop me an email.

    About AB - probably it's motivating for Yohan if you (as a customer) ask him about this feature. :rolleyes:


    Cheers
    Stefan
     
    Last edited: Nov 15, 2016
    ilmario likes this.
  18. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    Just got this and imported it into a project on Unity 5.4.3 on Mac, and I get several compiler errors:

    Assets/crosstales/TPS/Plugins/Editor/Helper.cs(130,50): error CS0117: `Path' does not contain a definition for `GetTempPath'

    Assets/crosstales/TPS/Plugins/Editor/Helper.cs(138,50): error CS0117: `Path' does not contain a definition for `GetTempPath'

    What to do?
     
  19. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Hi gecko

    I just verified TPS with Unity 5.4.3 on macOS - no errors!
    But since the Mono-compiler is buggy, I suspect that you have another "Path"-class in your project, correct?

    You can solve this issue by prefixing the Path-class with the namespace "System.IO", like:

    Code (CSharp):
    1. string scriptfile = System.IO.Path.GetTempPath() + "TPS-" + Constants.ASSET_ID + "-" + Guid.NewGuid() + ".sh";
    I will add this in a future update to prevent this problem.

    The other solution is to find the other Path-class and use a namespace...


    Let me know if this solved the issues.

    So long,
    Stefan
     
  20. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980

    I made a fix for this issue. Just send me an email with the invoice and I send the new version :)
     
  21. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    Thanks, that fixed it!

    And just a general request: It would be nice to have the word "turbo" in one of the folder or filenames. I imported it, then searched the project for "turbo" but didn't find anything, so had to go back to the Asset Store and find it there to see what the folder was called :/
     
  22. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    I'm glad it's working now!
    You are right, I will change the name in the upcoming weeks :)

    I hope you're happy with the product/support. If so, please rate us at the store.


    Cheers
    Stefan
     
  23. hakankaraduman

    hakankaraduman

    Joined:
    Aug 27, 2012
    Posts:
    354
    Hi, I use git/bitbucket and cloud build. I want to use this also to sometimes take builds from my pc.

    I'm not comfortable with git so I don't want to break it. Do you have any instructions on how to use this with git?
     
  24. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Hi Hakan

    You don't need any special "knowledge" in git to use our tool - git-integration is activated by default and handles everything right for you:

    upload_2017-1-18_21-7-38.png

    I hope this helps!

    Cheers
    Stefan
     
    hakankaraduman likes this.
  25. hakankaraduman

    hakankaraduman

    Joined:
    Aug 27, 2012
    Posts:
    354
    I should've checked, sorry. Thank you very much
     
  26. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    You're welcome! :)
     
  27. breban1

    breban1

    Joined:
    Jun 7, 2016
    Posts:
    194
    I purchased your asset and am having issues... mainly that it's not working at all. I emailed you, hope you receive them so we can figure this out.

    I imported the asset, open Window->TPS, select iOS, it prompts me if I want to switch, I press YES.

    After that, I see a cmd.exe window pop up for a second, then everything disappears. I don't see the Unity crash dialog, so maybe it's not a crash?

    Anyways, I see nothing running, not sure what to look for in Task Manager to see if TPS is running (I don't see an obvious entry).

    Any ideas?
     
  28. Stefan-Laubenberger

    Stefan-Laubenberger

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

    I've just wrote you an email.
    We will find a solution, no worries :)


    So long,
    Stefan
     
  29. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    We found a solution :)

    For Windows 7 users, please change line 156 in "Helper.cs" to:

    process.StartInfo.UseShellExecute = true;


    Cheers
    Stefan


    Edit:
    This is fixed since 1.3.1
     
    Last edited: Mar 13, 2017
  30. breban1

    breban1

    Joined:
    Jun 7, 2016
    Posts:
    194
    Thanks again for your help in getting it resolved, it's working like a charm so far!
     
  31. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    Finally got around to writing a review on the Asset Store, and might as well paste it here too:

    We've got a big project that takes 4-10 hours to switch platforms, so it normally takes several days to roll out patches to all platforms...but now, with TPS, switches take just a minute or two. Fantastic! Super simple to use. A lifesaver.
     
    Stefan-Laubenberger likes this.
  32. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Hi gecko

    I'm happy that TPS is useful for you! :)

    Thank you for the kind words and have a nice weekend!


    Cheers
    Stefan
     
  33. DanjelRicci

    DanjelRicci

    Joined:
    Mar 8, 2010
    Posts:
    310
    Hello, I bought TPS some days ago but it looks like it's not working as expected, or maybe I am missing some points. Whenever I switch to another platform using the plugin, Unity closes and nothing more happens. I am on OSX 10.12.3, using Unity 5.5.0p4.
    Also, with the last update, the interface is broken:

     
  34. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Hi Danjel

    On OSX, there is "nothing to see"...
    When you hit "Switch", Unity will close and it looks like nothing happens, but our script is working in the background and stores all your files. This will take some time, please be patient - it could take some minutes to store all files for the first time. When the script is finished, Unity should restart with the new platform.
    Could you please try it again and wait a few minutes?

    About the "broken" interface - did you delete the folder "Assets/crosstales/TPS" before importing the new version?
    If not, please do it and import the package again.

    I hope this helps.


    Cheers
    Stefan
     
  35. DanjelRicci

    DanjelRicci

    Joined:
    Mar 8, 2010
    Posts:
    310
    Thanks for the fast reply! I will try to wait some more and let you know. :)
    About the interface, yes, I already deleted the previous version before importing the new one.

    EDIT: for some reason, deleting and reimporting the plugin once again did work fine, this time the interface is ok! Go figure...
     
  36. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Ok, please let me know if it worked.


    So long,
    Stefan
     
  37. DanjelRicci

    DanjelRicci

    Joined:
    Mar 8, 2010
    Posts:
    310
    Looks like the problem was due to a couple of big, compressed textures, which were hanging the whole process. Once I set them to no compression, the platform switch worked fine and fast.

    Thanks for the help!
     
  38. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    You're welcome! ;)

    Have a nice weekend!


    So long,
    Stefan
     
    Last edited: Nov 14, 2017
  39. SimteractiveDev

    SimteractiveDev

    Joined:
    Jul 9, 2014
    Posts:
    97
    Hey, is there a way to update the current cache without having to delete it and have everything reimport again? Also, is there a way to exclude files from been cached?

    Here is an example as to why this would be useful. While my platform set to the Mac platform, I've updated the settings for one my textures, overriding the default compression settings for iOS. When I switch to the iOS platform, it now loads the cached settings for that texture file, which are now out of date.

    In this instance, I don't want the import settings file to be cached (the .meta file), as it's settings should be the same regardless of the platform. Since the file is cached, to get it to be consistent across all platforms, I now have to delete the old caches and regenerate them, which is quite time-consuming for a very small change.
     
  40. Stefan-Laubenberger

    Stefan-Laubenberger

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

    Probably I don't understand the problem.
    I tried it my self like this:
    1. Added a texture under "Windows"
    2. Switched to "Android" with TPS
    3. Changed the settings for Android for this texture
    4. Switched back to "Windows" with TPS
    5. All settings were there... I did this multiple times and it worked.
    When you always use TPS to switch, it should work like a charm:


    upload_2017-4-20_13-34-59.png

    upload_2017-4-20_13-35-17.png

    You don't have to delete the caches - it should work.
    If not, please provide me more details.

    I don't think it's useful to exclude files (especially the .meta) - imho a Unity project should contain the same stuff for all builds.


    Cheers
    Stefan
     
  41. SimteractiveDev

    SimteractiveDev

    Joined:
    Jul 9, 2014
    Posts:
    97
    That's interesting, it's definitely not happening for me. I've deleted the cache and I will see if the problem persists after that.

    When I mentioned exclude files, I meant excluding the files from the cache, not the unity project. But I don't know how TPS works so maybe that is not possible. I will see if deleting and rebuilding the cache fixes the issue anyway.

    Thanks.
     
  42. SimteractiveDev

    SimteractiveDev

    Joined:
    Jul 9, 2014
    Posts:
    97
    It appears to be working correctly now after deleting the cache and recreating it.
     
  43. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    That's great, touch wood ;)


    So long,
    Stefan
     
    SimteractiveDev likes this.
  44. matthew_carnegie

    matthew_carnegie

    Joined:
    Jan 15, 2013
    Posts:
    1
    Hi. I am using this on PC, windows 10 in the latest version of Unity.

    When I press the button to switch platform, cmd.exe comes up, and unity closes, however the message "Waiting for Unity to close ..." appears over and over and it seems to never get past this despite unity being closed.

    Thanks for any help
     
  45. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Hi Matthew

    I wrote you an email.


    So long,
    Stefan
     
  46. Justin-Wasilenko

    Justin-Wasilenko

    Joined:
    Mar 10, 2015
    Posts:
    104
    Hi Stefan,
    Since the latest update to 1.5.2 I am getting this error:

    Code (CSharp):
    1. Could not move all files: System.IO.IOException: Win32 IO returned ERROR_ALREADY_EXISTS. Path:
    2.   at System.IO.File.Move (System.String sourceFileName, System.String destFileName) [0x00123] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/File.cs:337
    3.   at System.IO.FileInfo.MoveTo (System.String destFileName) [0x0004a] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/FileInfo.cs:238
    4.   at (wrapper remoting-invoke-with-check) System.IO.FileInfo:MoveTo (string)
    5.   at Crosstales.TPS.SetupResources..cctor () [0x000b4] in C:\End Space\Assets\crosstales\TPS\Plugins\Editor\SetupResources.cs:41
    Before the update worked great. Also this is such a great asset. I can't believe Unity doesn't do this by default. It really is a muss buy for anyone doing cross platform development!
     
  47. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    Hi Justin

    If found a solution for the problem - please replace the "SetupResources.cs" under "Assets/crosstales/TPS/Plugins/Editor" with the attached class.

    Please let me know if it worked.


    So long,
    Stefan
     

    Attached Files:

  48. Justin-Wasilenko

    Justin-Wasilenko

    Joined:
    Mar 10, 2015
    Posts:
    104
  49. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,980
    I'm happy it's working!
    Have a nice day!


    Cheers
    Stefan
     
    Justin-Wasilenko likes this.
  50. Deleted User

    Deleted User

    Guest

    Does this work with the Facebook platform option?