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

[RELEASED] The Launcher - Patcher, Launcher and Updater

Discussion in 'Assets and Asset Store' started by Flamacore, Dec 29, 2017.

  1. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    The Launcher is a helper application like any patcher but with one difference; It’s completely coded and designed in Unity. It basically allows the user to download your game, keeps your game updated at all times and checks file integrity.

    With only one editor window, you can upload your build to your server. Compressing, version checking, file integrity control all handled by the window.

    With only one single inspector script, you can configure the client completely. Checking out the demo scene will provide lots of useful information on both configuration and structure of the client.

    Assetstore link: https://www.assetstore.unity3d.com/#!/content/105782




    -Easily localizable
    -Easily configurable
    -Open source
    -Well documented

    Documentation: https://goo.gl/PSQVxo

    TODO in the next update:
    -Binary diff checking
    -Partial Patch download
    -Launch Arguments support.
     
    Last edited: Dec 29, 2017
  2. Jayme65

    Jayme65

    Joined:
    Dec 11, 2016
    Posts:
    94
    Seems really promising! I wish you success with this project!

    One question please: if the user wasn't connected for a while and "missed" let's say 3 versions update...how will 'The Launcher' react? Will it apply all patches in cascade or will it ďownload the full new version?

    Thanks!
     
  3. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Thanks a whole lot! :) The answer to your question is that it will download the game anew but this is currently the case for any new version. The Launcher for now downloads the entire folder again if it detects a change unfortunately but it was on my to-do list and now I'm developing a new update which will be sent to the Asset Store Team in 2 days tops.

    After the update, The Launcher will detect any binary changes and will update the files accordingly. It will download new files which do not exist in the folder structure and detect any changes to any file and download only the required/changed files.

    Hope that answers your question! :)
     
  4. Jayme65

    Jayme65

    Joined:
    Dec 11, 2016
    Posts:
    94
    Great! Thanks for the reply! :)
     
  5. Zante

    Zante

    Joined:
    Mar 29, 2008
    Posts:
    429
    Not sure what "upload_.flamacore" is, the documentation isn't clear. Is that the file list or the version file?

    Edit: Initially no version file was uploaded. I had to set it in the string, recompress and upload for it to appear.

    Sadly all the launcher does is say "downloading version file" - when attempting to access my version.flamacore

    url seems to work fine, any ideas?

    Edit #2: Log file says it's a 403 error so that could be due to crossdomain settings. Suggestions so far involve using UnityWebRequest rather than www for increase compatibility.

    Edit#3: It may actually be a Unity related issue - information in this thread: https://forum.unity.com/threads/unity-2017-www-403-forbidden-error-bug.485108/

    Edit#4: I've compiled the launcher in unity 5.6.6f2 to load a game build compiled in unity 2017. I can confirm this works and bypasses the 403 errors I was getting as, after speaking with my webhosts, their security rules don't play well with the Unity 2017 libcurl usage.

    Edit#5: This is absolutely amazing. Any chance of allowing peeps to download multiple builds? My software has a version meant for the desktop as well as VR : ]

    Edit#6: If anyone is trying to create a launcher with a custom resolution and is unable to see it take effect, see the following thread. Turns out that if you build the executable and run it, the registry key it creates fouls things up - https://forum.unity.com/threads/cant-change-resolution-for-standalone-build.323931/#post-3502437

    Edit#6: I couldn't get this working on Amazon S3 bucket hosting until I disabled SSL in the start(){} of download.cs using the following script:

    Code (CSharp):
    1. System.Net.ServicePointManager.ServerCertificateValidationCallback
    2.         = (a, b, c, d) => { return true; };
     
    Last edited: May 31, 2018
  6. RealAspireGames

    RealAspireGames

    Joined:
    Dec 24, 2013
    Posts:
    265
    Hello
    I just bought this asset and it seems the game is not launching when I download the patch and press play. It says The file specified could not be found. I made sure my game name matched the .exe file and still the same error.
     
  7. RealAspireGames

    RealAspireGames

    Joined:
    Dec 24, 2013
    Posts:
    265
    Ignore my last post, I was actually selecting the data folder for the build. Which is why it wasn't including the .exe file. Everything is resolved now. :D
     
  8. RealAspireGames

    RealAspireGames

    Joined:
    Dec 24, 2013
    Posts:
    265
    One more thing actually, how do I create my own news/patch notes in the php file? This asset doesn't seem to include the php file for an example.
    -Thank you
     
  9. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Ok, ignored :)

    While it's just using a simple echo to print out what's needed, the contents of the original php is below;
    Code (CSharp):
    1. <?php
    2. echo'
    3. <color="orange"><b>Patch Notes:</b></color>
    4.  
    5. -Check out Chief Games at Play Store and App Store!
    6. -The launcher was created by Çağlayan Karagözler who also has a great fx pack called <color="orange"><i><b>Awesome Effects - Complete Bundle</b></i></color> at Asset Store!
    7. -The Launcher works using FTP credentials.
    8. -Awesome Effects - Complete bundle has 80 awesome effects prefabs with optimized AAA quality!
    9. --------------------
    10. ';
    11. ?>
    Also, now that someone actually used this post; An update is in order. recently, a user has bought the asset and realised that it does not work on Unity 2018.2 or 3. So a need for fixing things has risen. This is probably due to Unity obsoleting the www class and minor ignorable bugs or changes in UnityWebRequest flow and WebClient flow. The Launcher mainly uses the .NET classes of WebClient and FtpWebRequest since it's designed to work on desktop platforms but with the new changes that came with 2018 (probably this includes the .NET 3.5 and 4.5 library support), these guys are probably out of date or simply don't work.

    I'm planning to release the update (at least send it to the store for inspection) in 6-7 work days at most. Keep in touch and if anybody needs the update immediately, it will be sent via e-mail upon invoice confirmation :)
     
    RealAspireGames likes this.
  10. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Never realised that this post was here, my mistake, truly sorry. A bit of a late-comer to the party but I gotta say I had no intentions to allow multiple builds but come to think of it, it's a good idea and a good addition to polish the launcher a bit more. So it may not be included in this next update, probably will be added after that :)
     
  11. RealAspireGames

    RealAspireGames

    Joined:
    Dec 24, 2013
    Posts:
    265
    For some reason the update is not working when I create and upload a new version. It just says everything is okay? Is this part of the bug you were talking about? I am using Unity 2017
     
  12. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Well with the new version, file checking and version checking are fixed as well.

    Progress to update; About 90% complete. I've implemented a completely new approach to how upload thread works and how download process goes. File integrity check now includes a byte size check as well so it should be able to check even the slightest changes in codes/files. Also the system properly works on Unity 2018.2

    There were numerous errors and problematic approaches on the editor side and those are fixed as well. One example would be that when testing inside the editor, the launcher would download the files into the assets folder which would result in importing erroneous dlls into the editor and causing a mess. That is now fixed by moving the default folder to the upper folder.

    Another example would be that when decompressing finishes, the launcher would tell that the game is ready to launch but it would crash due to files bytes not being written perfectly. Probably caused by file checks performed by windows & mac. Could be also related to catalog files and etc. In any case, this is fixed by waiting for the files to be written correctly before allowing to press the play button.

    More fixes are there but I'll make a list when the update arrives :) Probably will be done by Friday if not tomorrow.
     
  13. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    So the update is done. Please contact me at chaglayan.k@gmail.com with your invoice number to receive the update in advance before it arrives to the store!

    Changelog:
    • Upload flow and download flow are now using coroutines with a singleton pattern; This ensures that all the process take up less memory, cpu and it also became more reliable.
    • File integrity check now is additionally calculated with byte size. This should allow any kind of update to be rolled out easily enough
    • When testing in the editor, the application downloaded the files inside the assets folder causing a lot of dll mess. This is now fixed.
    • After the download, the decompressor did not close and flush itself correctly thus it caused the "Failed to Load Mono" / "Unity Crashed" error since it did not write out the contents of the "unity default resources" file. This is also now fixed.
    • Unity 2018 is now supported with the new flow changes.
    • Numerous text fixes. Logging options.
     
  14. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Another update is on the way: 1.2.1

    This is a minor update which contains 2 specific fixes for the compression part.
    -Compression now properly works on all Windows 10-8 versions.
    -Compression froze at the first step. This is now fixed.
    -Compression required Unity to be focused to continue working, this is also fixed.

    Just sent it to the Asset Store team. Please contact if you need it now
     
  15. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    526
    Sounds really interesting, will try this for my project and have bough it.
    Any bugs i need to know before start?
     
  16. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Hey, certainly glad that you like it and gave it a try :) Please do not hesitate to write any problems you may encounter here.

    Currently no bugs should be present. Just as a side note; SFTP is not supported currently and still working hard on binary diffing for the launcher to update only partially. Other than that, nothing to my knowledge :) And also please kindly ignore the one 3-star and one 1-star review on the page as the errors they mention are long gone now but I have no way of truly contacting them so...

    Enjoy :)
     
    Andreas12345 likes this.
  17. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    526
    Looks like there is something wrong?
    Code (CSharp):
    1. --FTP Client Created
    2. UnityEngine.Debug:Log(Object)
    3. <UploadThread>c__Iterator0:<>m__0() (at Assets/The Launcher/Scripts/Editor/Uploader.cs:105)
    Compress works
    What to do?
     

    Attached Files:

  18. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Is that what happens when you click the Upload button? From the file line, it uses System.IO.FileInfo fi = new System.IO.FileInfo(FilePath); which makes me think of a permission issue. Running Unity in administrator mode could work. Also, I see from the screenshot that you are running the project under your username folder in C: drive. It would be safe to say carrying it outside those folders might also fix the issue since they are generally problematic when it comes to permissions :)

    Let me know how it goes.
     
  19. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    526
    It happens when i click the upload button, yes. (Also as an Administrator)
    I need to stay in this folder.
    can i do manual upload? And when yes, how is the folder structure?

    I have copied to another hdd and there also the files are not uploading.
    I use win7 with latest sp.

    - Manual Upload:
    When i do a Manual Upload and start the Launcher/patcher it extract in Patcher_Data folder.
    When i start again i get an File Integrity problem
    From output.log:
    Code (CSharp):
    1.  
    2. (Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)
    3.  
    4. decompress started2
    5. (Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)
    6.  
    7. Compression finished
    8. (Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)
    9.  
    10. System.IO.IOException: Sharing violation on path E:/Patcher/Patcher_Data/upload_.thln
    11.   at System.IO.File.Delete (System.String path) [0x00000] in <filename unknown>:0
    12.   at Decompressor.DecompressFile (System.String sDir, System.IO.Compression.GZipStream zipStream) [0x00000] in <filename unknown>:0
     

    Attached Files:

    Last edited: Dec 19, 2018
  20. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Hmm ok let me try understand and reproduce the issue on my end. I'll get back as soon as I can reproduce it here.
     
  21. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    526
    .NET 2.0 Subset and the Upload works.
    Now i try it with the Launcher to update my game or install it.
    So i can download and i can play.
    But after Exit and start the game again i get an:
    File integrity problem or Update Required. Needs redownload

    If you get the "File integrity problem or Update Required" problem fixed then the asset is better then the BIG ones, because your asset is really easy to setup!
    Fix it and i ll give you a 5 Star Review for sure.
     

    Attached Files:

    Last edited: Dec 20, 2018
  22. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Hi again, well please rest assured that this will be fixed easily :) Just was hardcore busy yesterday so I couldn't hook up my pc. Now I'm on it. This was an error someone had before as well and we fixed it together. Just let me crawl through my e-mails to find the fix back again and post it here.

    Thanks greatly for your patience! :)
     
    Andreas12345 likes this.
  23. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    While I do that, could you please post the contents of v.thln and vT.thln to a site like https://codeshare.io/ ? That would help me diagnose.
     
    Andreas12345 likes this.
  24. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    526
    I try it out after work, and send you the files via mail.
    Thanks for your support.
     
  25. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Please check your e-mail as well, I've sent the fix (or at least, a supposed fix :p ).
     
    Andreas12345 likes this.
  26. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    526
    Looks good!
    1 suggest during the workflow: It would be nice to use strg+v and strg+c in the "Launcher" Window for paste the hosting data.
    Ok, i can now work with it :) Very Great asset!

    Do you plan patches workflow, too?
     
  27. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    For those who encounter the error; You may replace the lines from 249-253 in the Download.cs with the ones provided below; specifically the "if" inside the "for" so it includes the unity files when creating the comparable list. This was introduced in 2018 as builds may also include Unity files as well to your choice. This fix should cover that :)

    Code (CSharp):
    1.  
    2.                 if (Files[i].Substring(filePath.Length).Contains(GameName) || Files[i].Substring(filePath.Length).Contains("Unity") || Files[i].Substring(filePath.Length).Contains("Mono"))
    3.                     writer.WriteLine(Encrypt.EncryptRJ256(Files[i].Substring(filePath.Length) + ":" + bts[i].Length), true);
    4.             }
    That's a definite yes. I'm currently working on implementing the binary diffing algorithm so it would enable partial patches :) Would appreciate a review if the asset actually works for you.
     
    Last edited: Dec 21, 2018
    Andreas12345 likes this.
  28. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    526
    Done. And thank you for the help!
     
  29. MarioBA

    MarioBA

    Joined:
    Dec 17, 2015
    Posts:
    6
    Im not able to upload the version to my local ftp...

    You can check at the screenshot that it starts the upload, but the files never get copied to the folder...
    Am i doing something wrong?
     

    Attached Files:

  30. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    hmm ok to be completely honest, I've never tested with local ftp and it would most definitely cause problems since the launcher uses UnityWebRequest. Do you have a chance to try that with an online server?
     
    MarioBA likes this.
  31. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    On a second thought, using 127.0.0.1 could work as well. Can you please try that?
     
    MarioBA likes this.
  32. MarioBA

    MarioBA

    Joined:
    Dec 17, 2015
    Posts:
    6
    lol, using 127... did it, but now it yields this error:
    ArgumentException: Getting control 4's position in a group with only 4 controls when doing Repaint
    Aborting
    UnityEngine.GUILayoutGroup.GetNext () (at /Users/builduser/buildslave/unity/build/Runtime/IMGUI/Managed/LayoutGroup.cs:115)
    UnityEngine.GUILayoutUtility.DoGetRect (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at /Users/builduser/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayoutUtility.cs:413)
    UnityEngine.GUILayoutUtility.GetRect (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at /Users/builduser/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayoutUtility.cs:373)
    UnityEngine.GUILayout.DoToggle (Boolean value, UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at /Users/builduser/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayout.cs:143)
    UnityEngine.GUILayout.Toggle (Boolean value, UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at /Users/builduser/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayout.cs:139)
    UnityEditor.SceneView.DoToolbarGUI () (at /Users/builduser/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:574)
    UnityEditor.SceneView.OnGUI () (at /Users/builduser/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1597)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at /Users/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:295)
    UnityEditor.HostView.Invoke (System.String methodName) (at /Users/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:288)
    UnityEditor.HostView.InvokeOnGUI (Rect onGUIPosition) (at /Users/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:255)

    But I can tell that the files were correctly uploaded. Thanks for the fast support

    Also, my local ftp needs user/pass to download the file, is there any way to give the client the credentials? If it's not possible I can for sure remove the user/pass thing, but I would like to leave it there
     
  33. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    That error seems not related with The Launcher directly but something happening behing GUI repainting that the editor does and it's probably harmless :) Well normally the download happens through direct http:// request so if your http requires authentication, I'm afraid It wouldn't be easy to pass that unless it can be passed via a POST method.

    If the auth data actually can be passed via POST, then you can simply add form fields to the webrequest in Uplaoder.cs

    Goes like this:
    WWWForm form = new WWWForm();
    form.AddField("myField", "myData");
    UnityWebRequest www = UnityWebRequest.Post("http://www.my-server.com/myform", form)
     
  34. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Also, if it's not much of a trouble, a review on the asset page would mean worlds to me if you enjoy using it :) Thanks from me as well.
     
  35. MarioBA

    MarioBA

    Joined:
    Dec 17, 2015
    Posts:
    6
    I thought it was already reviewed using the business account with we bought your asset. Consider it done tomorrow and thanks for your help. Really good support
     
  36. MarioBA

    MarioBA

    Joined:
    Dec 17, 2015
    Posts:
    6
    Is there any plan to support files with size more than 2,147Gb?...
     
  37. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Ah yesi sorry didn't reply earlier but I'm looking into it. Surely I should be able to fix it :) Just give me a little time.
     
  38. MarioBA

    MarioBA

    Joined:
    Dec 17, 2015
    Posts:
    6
    Hello there,

    I'm trying to update the launcher asset to compress and decompress large files. Is there any way i can help you with that?.
    I already modified the file EditorLogGenerator, where you generate the V file with names and size of each file. With my version, it works faster since it's not necessary to readallbytes, and just use theBytest.Add (new System.IO.FileInfo (fil).Length); theBytes is a List<long> theBytes instead of a list of bytes, that's because we only use the list of bytes to perform a Length later on, so we don't really need to read.

    Now I think the steps to continue are at the compresshelper.cs and decompressor. Since its not possible to avoid readallfiles. I think we should use seek+read to read incrementally...

    Can I help you in some way to achieve the large files support?
     
  39. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Thanks for the suggestion :)
    Well I'm close to completing it actually and I hope that it'll be done in max 2 days due to my work-life being heavy right now. So the method I'm using is reading bytes in chunks rather than reading them all at once corresponding with your suggestion as well. The only problem I need to solve is wrapping this whole job under a thread so that the launcher avoids blocking the editor/player while doing compression/decompression. Did not have huge time to test comprehensively but it seems like reading bytes with buffer does not play really well with threads. Will have to come up with a solution to that but there are also mothods to work around this as well. It really takes a tiny bit R&D to fix it.

    While I definitely could use some help, I would never ask of someone to give support for an asset that I make money of :)) But it should prove an easy fix to do so please just give me a bit more time and we should be good to go.

    Ref: https://docs.microsoft.com/en-us/do...Read_System_Byte___System_Int32_System_Int32_
     
  40. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    And yes, the compression happens in compresshelper and decompress happens in decompressor obviously if you wish to do your own modifications :)
     
  41. cailloux21

    cailloux21

    Joined:
    Jun 15, 2018
    Posts:
    2
    Hello, I don't understand your method, for upload you use FtpWebRequest to upload to a Ftp server, that's works. But to dowload you use HttpWebRequest. Why it's not the same for upload and download ? Now I can't download my game data because it's in my ftp server, which need credentials. It's not possible to use FtpWebRequest for Upload and Download ? ( sorry for my bad english ;) )
     
  42. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    That's true. I use ftp for upload and http for download. Http download is quite easy and harmless but using ftp for download using credentials is considered to be an insecure method for downloading your game. Thinking about it, you would be giving out the same credentials to many people who will have access to your ftp server. That might be secure for large systems which have a completely separate server directly dedicated to ftp downloads but instead of going through all these security flaws and possible auth problems, I just work with http download which also allows browser download as well and is the most secure method for now provided that you have a domain name or can server files from your server ip :)

    So no, it's not possible to use ftp for download since the client is an entirely different story than a simple upload in a controlled environment.

    BTW, for large file support, I'm going to release it in a few days for anyone interested. Will come with an update.
     
    Last edited: Jan 25, 2019
  43. cailloux21

    cailloux21

    Joined:
    Jun 15, 2018
    Posts:
    2
    Thank you for fast answer ;) For the download, I don't need more security, because it's only my friend who can use it ;) I will waiting your update ;)
     
  44. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Umm well I'm sorry to say this but ftp download support unfortunately won't come at least in the coming days. It'll probably be a month even if I consider including it. Personally I think it would not prove worthy for the effort but since a user asks for it, I'll try my best to bring it :)
     
  45. MarioBA

    MarioBA

    Joined:
    Dec 17, 2015
    Posts:
    6
    i made a workaround but "official" support for large files would be awesome indeed ... any ETA? :) thanks for your awesome support!
     
  46. MysterieCatGames

    MysterieCatGames

    Joined:
    Oct 8, 2012
    Posts:
    5
    When I extract and run the patcher on a machine that didn't previously have it, once the game is downloaded and decompressed, clicking play results in the following error: "Failed to load mono."

    However, once the download/decompress is finished, if I close and reopen the patcher, the Play button works.

    Is there a fix for this issue?

     
  47. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Hey, this should've been fixed with the 1.2.1 update. Could you please make sure that you have the latest version? If the issue persists, could you contact me at chaglayan.k@gmail.com please? so that we can further investigate it? :)

    Also for all who are interested, the official large file support is here! I just sent it to the store for review. If you need it immediately, feel free to contact me from the e-mail above.
     
    digiross likes this.
  48. Sunriser

    Sunriser

    Joined:
    Oct 22, 2012
    Posts:
    11
    I am having a problem with the Decompression when a Download is performed on the Launcher Client window.

    I am using Unity 2018.3.6f1

    Everything seems to work OK on The Launcher window to Compress and Upload the build, but when I launch my game, the Launcher prompts me to download (even though it shouldn't since they're both the same version). The download works normally but, when it goes to decompress, it gets one file completed (my game .exe file), then gives me an error:

    ArgumentException: Illegal characters in path.
    System.IO.Path.Combine (System.String path1, System.String path2) (at<d7ac571ca2d04b2f981d0d886fa067cf>:0)

    I used my VS2017 debugger and found that the file it is trying to decompress it a bunch of random characters (see attached):
    DecompressError.png
     
  49. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Well I believe the answer should be obvious :) The Line "ArgumentException: Illegal characters in path." means that the file name or path name contains characters that are not easily readable by the c# language or the computer in general. I'm seeing heavily problematic characters in the filename so that's your issue.

    Some characters to check: "ı,İ,ş,Ş,ö,Ö,ç,Ç,ğ,Ğ,ü,Ü". These are from my Turkish Q keyboard and I'm sure there may be others as well.

    These kind of strings I'm afraid will always cause issues when it comes to System.File and IO libraries of C#. Windows just isn't happy to see these. So please use only alpha-numeric / english characters in your file names and paths and it should be fixed right away.

    You can test this yourself. Try to create a folder with that exact name in the error and you'll get an error from the windows explorer as well.

    Thanks for pointing out though :)
     
    Last edited: Feb 16, 2019
  50. Sunriser

    Sunriser

    Joined:
    Oct 22, 2012
    Posts:
    11
    OK, a few things:

    1. I am only using English names on all of my file names. No weird characters even close to what you see in the screenshot.
    2. The screenshot I posted above only shows a small portion of the supposed "filename". It is actually thousands of characters long! I wasn't even able to copy paste the whole thing into notepad!
    3. I loaded up another very simple project and compressed, FTPed, and downloaded. The exact same thing happened after it tried to decompress the .exe. file. One slight difference was the error this time was NOT an illegal file name issue, but an Overflowexception:
    OverflowException
    Decompressor.DecompressFile (System.String sDir, System.IO.Compression.GZipStream zipStream) (at Assets/The Launcher/Scripts/Decompressor.cs:68)
    Decompressor+<DecompressToDirectory>d__3.MoveNext () (at Assets/The Launcher/Scripts/Decompressor.cs:102)
    UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)

    4. One interesting thing I've noticed, when I went to look a the resulting .exe file in both scenarios, they BOTH have a file size of exactly 500KB. This can't be a coincidence!
     
    ru_azot likes this.