Search Unity

  1. Unity 2018.3 is now released.
    Dismiss Notice
  2. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  3. Want more efficiency in your development work? Sign up to receive weekly tech and creative know-how from Unity experts.
    Dismiss Notice
  4. Build games and experiences that can load instantly and without install. Explore the Project Tiny Preview today!
    Dismiss Notice
  5. Nominations have been announced for this years Unity Awards. Celebrate the wonderful projects made by your peers this year and get voting! Vote here!
    Dismiss Notice
  6. Want to provide direct feedback to the Unity team? Join the Unity Advisory Panel.
    Dismiss Notice
  7. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice

Turbo Switch - 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,150
    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.

    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!
    • Support for various VCS like Unity Collaborate, git, svn & Mercurial!
    • Select your custom cache target external HDD/SSD or NAS!
    • Manage the cache per platform
    • See the total/per cache space usage

    Documentation & control

    Compatibility
    • Supports all build platforms!
    • All Android texture formats are supported
    • Works with Windows, Mac and Linux editors!
    • Compatible with Unity 5.6 – Unity 2018
    • Works with SVNTools


    Benchmarks:
    Turbo Switch can be up to 100x faster than traditional platform switching. 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 Platform Switch PRO

    Our other assets


    Any constructive comments are very welcome!



    So long,
    Stefan
     
    Last edited: Oct 19, 2018
    theANMATOR2b likes this.
  2. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,150
    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,781
    Hey Stefan - all videos are set to private. o_O
     
  4. Stefan-Laubenberger

    Stefan-Laubenberger

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

    ilmario

    Joined:
    Feb 16, 2015
    Posts:
    69
    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,150
    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:
    326
    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,150
    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:
    504
    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,150
    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:
    504
    Sounds good! Will keep an eye out.
     
  12. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,150
    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:
    504
    Great news, I'm personally fine with that :)
     
  14. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,150
    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:
    69
    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,150
    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,150
    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:
    1,810
    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,150
    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,150

    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:
    1,810
    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,150
    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:
    326
    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,150
    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:
    326
    I should've checked, sorry. Thank you very much
     
  26. Stefan-Laubenberger

    Stefan-Laubenberger

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

    breban1

    Joined:
    Jun 7, 2016
    Posts:
    82
    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,150
    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,150
    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:
    82
    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:
    1,810
    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,150
    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:
    154
    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,150
    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:
    154
    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,150
    Ok, please let me know if it worked.


    So long,
    Stefan
     
  37. DanjelRicci

    DanjelRicci

    Joined:
    Mar 8, 2010
    Posts:
    154
    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,150
    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,150
    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,150
    That's great, touch wood ;)


    So long,
    Stefan
     
    SimteractiveDev likes this.
  44. matthewdominey

    matthewdominey

    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,150
    Hi Matthew

    I wrote you an email.


    So long,
    Stefan
     
  46. Justin-Wasilenko

    Justin-Wasilenko

    Joined:
    Mar 10, 2015
    Posts:
    72
    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,150
    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:
    72
  49. Stefan-Laubenberger

    Stefan-Laubenberger

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


    Cheers
    Stefan
     
    Justin-Wasilenko likes this.
  50. snoozinsquatch

    snoozinsquatch

    Joined:
    Apr 10, 2016
    Posts:
    4
    Does this work with the Facebook platform option?