Search Unity

PATCH - Updating System

Discussion in 'Assets and Asset Store' started by ManHunterITA, Jul 20, 2015.

  1. Twanner

    Twanner

    Joined:
    Dec 6, 2014
    Posts:
    33
    We are working on a large project and a planning to implement a launcher / updater. Can you point out the difference between P.A.T.C.H and P.A.T.C.H [full]?
     
    ManHunterITA likes this.
  2. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
    Just the core source code. The cheap version comes with a DLL for the core code, the full version comes with the core source code.
     
    Twanner likes this.
  3. Twanner

    Twanner

    Joined:
    Dec 6, 2014
    Posts:
    33
    Excellent!, Thanks for your response. We should be pulling the trigger on it today or tomorrow.
     
    ManHunterITA likes this.
  4. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    526
    Works better after the last Update :)

    I miss how i can bring mac and windows build together. I find no workflow.

    I have loaded my build for windows to my server with the patch tool.
    the launcher do all right on windows, its installing and patching fine.

    How i load with your tool from my windows a mac version to my server.
    I can build a Standalone osX.
    it named current.app

    But i find no process that the launcher grab the right files etc.
    When i want to Start a new Build it says no current build, i think its because its in current.app

    anybody have a workflow?
     
    Colin_MacLeod likes this.
  5. xxShana

    xxShana

    Joined:
    Jul 4, 2019
    Posts:
    23
    The launcher stuck when no internet connections.

    I have done this. Is this ok? Or ..... what i need to do if i have no internet, but want to start app?
     
  6. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
    Just create a function to check for connectivity (pick the method you prefer: you can check network interfaces or just send an HTTP request to your web server and check if it raises an exception). If no connectivity, just skip the patch process.
     
  7. Rave-TZ

    Rave-TZ

    Joined:
    Jul 21, 2013
    Posts:
    77
    Can I get a version of patch designed for 2017.4? I purchased it an imported the result to my project without script errors but the prefabs don't work.

    This is due to changes in Unity on how serialization functions on 2018.3 with prefabs
    The error unity spits out is "Unable to instantiate prefab. Prefab may be broken."

    This happens on the progress bar prefab and maybe others.
     
  8. Cecrit

    Cecrit

    Joined:
    May 18, 2015
    Posts:
    18
    Hey,
    after I created a patch for my new version I got a problem with my launcher. I'm using the windows forms launcher and the compiled version crashes upon launch. While debugging in Visual Studio I get the error message "System.ArgumentException: 'Version string isn't valid'". I did not edit the versions file and tried rebuilding the patch multiple times but the problem still occurs. There was one other guy in this thread with such an error, but I was unable to find a solution..

    The content of the versions file looks like this:
    0.0.0.0>0.0.0.1>Ea96o2qdfqd0Ra/6nCAL2Telwu0>ZIP


    Edit:
    The problem came from some testing around I did. I don't know what exactly caused it but removing all builds and starting with a fresh build solved the issue. Now patching works like it is supposed to
     
    Last edited: Jul 29, 2019
  9. toctoccontato

    toctoccontato

    Joined:
    Jan 14, 2019
    Posts:
    11
    it is possible to create patch for linux server
     
  10. richard80

    richard80

    Joined:
    Oct 5, 2017
    Posts:
    4
    Hi manhunter,

    We are also getting when appliing a patch,
    System.NullReferenceException: Object reference not set to an instance of an object
    at MHLab.PATCH.Downloader.DownloadData.GetRequest (System.String url) [0x0004e] in <713d76d90fb5430cbe7f0454a6114f60>:0
    at MHLab.PATCH.Downloader.DownloadData.GetFileSize (System.String url) [0x00005] in <713d76d90fb5430cbe7f0454a6114f60>:0
    at MHLab.PATCH.Downloader.DownloadData.Create (System.String url, System.String destFolder, System.Net.IWebProxy proxy) [0x0000d] in <713d76d90fb5430cbe7f0454a6114f60>:0
    at MHLab.PATCH.Downloader.FileDownloader.Download (System.String url, System.String destFolder) [0x00009] in <713d76d90fb5430cbe7f0454a6114f60>:0
    at MHLab.PATCH.PatchApplier.DownloadPatchArchiveFile (MHLab.PATCH.Patch p) [0x000e7] in <713d76d90fb5430cbe7f0454a6114f60>:0
    at MHLab.PATCH.PatchApplier.PerformUpdate (MHLab.PATCH.Patch p) [0x00000] in <713d76d90fb5430cbe7f0454a6114f60>:0
    at MHLab.PATCH.PatchApplier.CheckForUpdates () [0x000d0] in <713d76d90fb5430cbe7f0454a6114f60>:0
    at MHLab.PATCH.LauncherManager.CheckForUpdates () [0x00000] in <713d76d90fb5430cbe7f0454a6114f60>:0

    We use unity 2019.2.1 and have set .NET 4 .

    We tried rebuilding/creating patches in many different ways, but keeps this Nullpointer. it seems downloading the data and after it it gives the nullpointer.
    Do you have any ideas?.
     
  11. Magasenakwa

    Magasenakwa

    Joined:
    Oct 13, 2018
    Posts:
    91
    I am trying to build the Installer WinForms vresion but whenever I hit Play it throws an exception on this line:
    Code (csharp):
    1. installStatus = m_installer.Install();
    Clearly the problem is that the config.xmll file is not loaded and I confirmed this by adding abreakpoint there and checking the contetns of m_installer.

    I can't seem to find any documentation on how to get the app to work inside of Visual Studio. I tried adding the XML files via the "Add new" menu on Resources so the project now contains both the encrypted and plain text versions of the file but it still doesn't load it.

    Do I first need to build then copy the file along with the folder structure into the build folder after every build then run the app from the filesystem and never from within Visual Studio? ...or how do I get the launcher to run inside of Visual Studio?

    Thanks
     
  12. toctoccontato

    toctoccontato

    Joined:
    Jan 14, 2019
    Posts:
    11
    Is there any free place where I can build the builds and patcher will work?
     
  13. Crossway

    Crossway

    Joined:
    May 24, 2016
    Posts:
    509
    Hi. Can I import a 3d model inside my game when game is running?
     
  14. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    Any word on version 3? It has been over a year now since I first heard it was coming Soon™.
     
  15. Robintj

    Robintj

    Joined:
    Jan 10, 2016
    Posts:
    9
    use Unity2019.2 ,click the build patch button, the following error appears. Please help me to solve it, thank you.~:
    GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced.
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)
    upload_2019-10-23_22-37-9.png
     
  16. Lordmin

    Lordmin

    Joined:
    Mar 9, 2017
    Posts:
    62
    We will ask you questions before purchasing the asset.

    1.P.A.T.C.H. Perfect Patch System [FULL]

    2. P.A.T.C.H. Ultimate patch system

    The difference between the two assets is whether you provided a key source.

    What I'm trying to do is add a feature that 'autoruns' after downloading the game from the server.

    Do I have to buy 1 to change the source slightly?
     
  17. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    The standard version comes with the source code for the client side launcher, but not the source for the actual patch creation side of things within Unity. Because you get the source of the client side launcher, you should be able to just add in some code to start the game automatically when the patch finishes. You would only need the full source if you wanted to change how the patches were created on the Unity side of things, or how they get uploaded and things like that.
     
  18. Lordmin

    Lordmin

    Joined:
    Mar 9, 2017
    Posts:
    62
    1. Azure Web Hosting FTP Server
    -> Fail

    2. https://www.gabia.com/ Web Hosting FTP Server
    -> Success

    What is the difference between the above two hosting results?
     
  19. CommunityUS

    CommunityUS

    Joined:
    Sep 2, 2011
    Posts:
    240
    Are there Linux / Mac examples I didn't think WPF / WinForms was available on mono?
     
    Colin_MacLeod likes this.
  20. Shortay91

    Shortay91

    Joined:
    Nov 15, 2012
    Posts:
    29
    upload_2020-3-30_1-16-44.png
    I'm getting all these errors when trying to build bought the full version with the source code...

    Can you help please?

    Unity Version 2019.3.0f6
     
  21. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
    Remove those namespaces in those files, the error goes away.
     
  22. ArtomMalinouski

    ArtomMalinouski

    Joined:
    Feb 27, 2019
    Posts:
    2
    Hello everyone!
    Did someone try to do the silent update feature?
    Currently I have the issue that the application will crash after the update is done. I think I need to make some cache folder initially and then move all the files after the update is done. Does someone have any ideas on how to do that?
     
  23. conan1987

    conan1987

    Joined:
    Apr 8, 2016
    Posts:
    32
    Hi
    I am trying to use PATCH but it gives me "Something goes wrong, restored previous version! Try to reopen the launcher! " here is the log file

    [P.A.T.C.H. - 11/04/2020 10:37:54 م] Checking... - Checking for remote service!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Downloading file... - Downloading index file for repair process!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking current version... -
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for test patch.exe...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for UnityCrashHandler32.exe...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for UnityPlayer.dll...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Skipping... - Skipping version file...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\EmbedRuntime\mono-2.0-bdwgc.dll...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\EmbedRuntime\MonoPosixHelper.dll...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\browscap.ini...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\config...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\2.0\DefaultWsdlHelpGenerator.aspx...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\2.0\machine.config...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\2.0\settings.map...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\2.0\web.config...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\2.0\Browsers\Compat.browser...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\4.0\DefaultWsdlHelpGenerator.aspx...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\4.0\machine.config...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\4.0\settings.map...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\4.0\web.config...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\4.0\Browsers\Compat.browser...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\4.5\DefaultWsdlHelpGenerator.aspx...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\4.5\machine.config...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\4.5\settings.map...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\4.5\web.config...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\4.5\Browsers\Compat.browser...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for MonoBleedingEdge\etc\mono\mconfig\config.xml...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for test patch_Data\app.info...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for test patch_Data\boot.config...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Hash checking for test patch_Data\globalgamemanagers...
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Downloading file... - Downloading file globalgamemanagers from remote server!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Build 1.0.0.6 skipped! - Sharing violation on path C:\Users\Mohamed\Documents\test patch\PATCH\PATCH\test patch_Data\globalgamemanagers
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Patching process is started!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Cleaning! - Cleaning P.A.T.C.H. workspace!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking version... - Found version 1.0.0.6
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking... - Checking for remote service!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Cleaning! - Cleaning P.A.T.C.H. workspace!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Checking directories... - Checking directories and workspace creation!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Downloading file... - Downloading patch 1.0.0.6_1.0.0.7 indexer from remote server!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Downloaded file! - Downloaded patch 1.0.0.6_1.0.0.7 indexer from remote server!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Downloading file... - Downloading patch 1.0.0.6_1.0.0.7 archive from remote server!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Downloaded file! - Downloaded patch 1.0.0.6_1.0.0.7 archive from remote server!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Hash checking! - Comparing hashes for 1.0.0.6_1.0.0.7.archive
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Patch decompression! - Unzipping pack 1.0.0.6_1.0.0.7.archive
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Processing index! - Computing indexer for 1.0.0.6_1.0.0.7.archive
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] File processing - Patching - Patching \version file
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Computed hash: 6I086B5kDA8OGu31aTQbM48u0rg - Expected hash: 6I086B5kDA8OGu31aTQbM48u0rg
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] File processing - Hash checking - Hash checking \version file
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] File processed - Patched - Patched \version file
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] File processing - Patching - Patching \test patch_Data\globalgamemanagers file
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Patch failed! - Sharing violation on path C:\Users\Mohamed\Documents\test patch\PATCH\PATCH\test patch_Data\globalgamemanagers
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Rollback! - Rollingback to previous version!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Cleaning! - Cleaning P.A.T.C.H. workspace!
    [P.A.T.C.H. - 11/04/2020 10:37:55 م] Something goes wrong, restored previous version! Try to reopen the launcher!
     
    ManHunterITA likes this.
  24. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
  25. ruiyl

    ruiyl

    Joined:
    Aug 4, 2019
    Posts:
    20
    Hi, I'm trying to build the integrated patcher into the game (By adding the patcher scene to number 0 and tick "integrated patcher"). When I build and run the game (By putting it in "current" and build a version), the patcher gets a "local version error". I assume that it could not find the version file because the running program is inside the "Game" folder instead of the root folder (the patcher moved it after the version building). So, should I move the game+inegrated patcher out of the "Game" folder into the root folder? Would the patching break? Or is there another solution?
     
  26. ruiyl

    ruiyl

    Joined:
    Aug 4, 2019
    Posts:
    20
    Ok, I solved the problem by moving everything inside "Game" folder to the root folder (There was nothing except the version file and "Game" folder anyway). However, when the game finishes patching and trying to start another process, there was an error "Same instance is running". How do I solve this? Allowing multiple instances of the game?
     
  27. ruiyl

    ruiyl

    Joined:
    Aug 4, 2019
    Posts:
    20
    Seems like I did not solve the problem at all. When the installer try to download the game that has been moved out of "Game" folder, the installer get an error "There's no version installed".
    [P.A.T.C.H. - 4/29/2020 9:49:33 PM] Build 0.0.0.0 skipped! - Server returned an error: 550 File not found
    I think it was because the files have been moved. But, if I do not move them, then the patcher breaks instead. How can I get out of this dilemma?
     
  28. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
    Hi,

    the new 2.2.0 version is out on the Asset Store right now. Drop the old 2.1.7 and update to the newest one: it should be simpler to set!
    Let me know!

    Best regards,
    Emanuele - MHLab
     
  29. Spacetalk

    Spacetalk

    Joined:
    May 7, 2020
    Posts:
    1
    Can I patch games built on different Unity versions in one patcher?
     
  30. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
    Yeah, you can. You can also patch games not built on Unity at all.
     
  31. devikaworks

    devikaworks

    Joined:
    May 29, 2017
    Posts:
    5
    Hi,

    Does this package support multiple Unity applications from 1 single launcher?

    For example, using a Launcher.exe you can download/update and run Game1.exe or Game2.exe etc.

    Thanks
     
    ManHunterITA likes this.
  32. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
    Hi, the sample contained in the package manages a single app, but the API allows you to write your own service that manages multiple applications.
     
  33. DropNodes

    DropNodes

    Joined:
    Jun 11, 2019
    Posts:
    39
    does it work with IL2CPP builds? ETA on 3.0?
     
  34. Blunnyn

    Blunnyn

    Joined:
    Nov 27, 2016
    Posts:
    2
    pls upload a video explaining how use it
     
    jensen_305 likes this.
  35. luxertPxscope

    luxertPxscope

    Joined:
    Jun 2, 2020
    Posts:
    1
    When launching the launcher, log files are not created in the Logs folder.
    But,, In UNITY Editor mode, log files are created well.

    Using UNITY 2019.4.4.

    What should I do?
     
  36. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    Could rent a small VPS or web host with however much storage you need and then use your own domain, then you can have the file names as whatever you wish http://mydomain.com/files/myfile.ext
     
  37. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
    Something cool you can try if you can't find a decent host is GitHub (you can read it in the manual here: https://github.com/manhunterita/PATCH/wiki/Hosting).
    I don't know if all my customers are aware of it, but you can use your repositories on GitHub to host builds and patches for free.
    Let's make an example.
    My files are hosted at https://github.com/manhunterita/PATCH. In this repo I have the classic PATCH folder structure:
    In the Launcher's settings I can simply set as remote URL the raw GitHub address: https://raw.githubusercontent.com/manhunterita/PATCH/master/

    Here we go: you now set your Launcher for downloading from your GitHub repositories.
     
    Last edited: Aug 24, 2020
    hopeful likes this.
  38. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    Hi! Is there a way I can display current version downloaded, and that there is a new patch (version number) available to download?
     
  39. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
    Yes. The
    UpdatingContext
    class contains:
    • CurrentVersion
      property. It is self-explanatory.
    • PatchesPath
      property that represents all patches that needs to be applied to have the latest version
    • BuildsIndex
      and
      PatchesIndex
      properties that contain the metadata for all builds and patches on your server
    You can find more info here: https://github.com/manhunterita/PATCH/wiki/API-and-customizations#inspecting-updatingcontext
     
    Last edited: Aug 26, 2020
    julianr likes this.
  40. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    While this is definitely also a good option, you do have to be careful and learn to use Github properly first though before you just go uploading your code to a public repo. If you don't setup your .ignore file first, you will just be uploading any of your purchased assets up there illegally, and it's also just not a cool thing to do to the devs who put in all the time to make them.

    There are tons of good beginner tutorials on youtube on how to get things setup, though, and it doesn't take much.

    (Not as much of a concern if you are simply uploading the built game, but there are still things you will probably want to setup, so need to learn the basics first either way.)
     
  41. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
    Yeah, that's definitely correct. That's why in my doc I suggest to only upload build artifacts from the PATCH Worspace. The repository with the source code, plugins, etc should live to another private location.
     
    MostHated likes this.
  42. Ultroman

    Ultroman

    Joined:
    Mar 10, 2014
    Posts:
    110
    You're also mooching off of Githubs servers. If your game gets big, they're bound to notice. I don't think they accept that sort of thing, but if they do, that's incredible...free file hosting for patches which could be getting downloaded by thousands of people.
     
    ManHunterITA likes this.
  43. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
    Yeah, that's of course intended for testing and small scale distribution. For sure GitHub has some sort of traffic/file size limitations. If you plan to get big, you need a proper hosting setup.
    But if you plan to get big, I don't think that the cost of the hosting solution will stop you... :p
     
    Ultroman likes this.
  44. Ultroman

    Ultroman

    Joined:
    Mar 10, 2014
    Posts:
    110
    Exactly. I just felt like this needed to be said in this conversation for completeness and posterity :p
     
  45. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
    The new 2.3.1 is live on Asset Store!

    This release brings to the table some new interesting features: multithreaded downloader, retry-based strategy for downloads, Dropbox support, ecc.

    Also, this release comes with a naming change: [INDIE] becomes [BASIC] and [FULL] becomes [PRO]. This should be more clear and straightforward.

    The whole changelog:
    • feat(Downloader): added a delay-based retry strategy for all downloaders
    • feat(Downloader): added Dropbox multithreaded downloader
    • feat(IO): added file locking workaround
    • feat(Downloader): improved the functionality of the sequential downloader
    • feat(Downloader): added smart, multithreaded downloader
    • fix(Downloader): removed DownloadsManager, it just carried duplicated functionalities
    • fix(Admin): exposed the compression level setting and the launcher archive name setting
    • fix(PreGame): fixed a regression on IVersion comparison
    • feat(Downloader): added credentials management for indexers downloader
    • feat(Downloader): added credentials management for NetworkChecker
    • fix(Downloader): removed readonly modifier from IDownloader field in UpdatingContext, Repairer, Updater, PatcherUpdater

    A new landing page is live, you can find more information about PATCH and a comparison between versions: https://patch.mhlab.tech/
     
    Last edited: Oct 10, 2020
    julianr, hopeful and Ony like this.
  46. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    I like the way this asset is heading, keep at it! esp.. Pro and Enterprise features.
     
    ManHunterITA likes this.
  47. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
    Hotfix 2.3.1f1 is live on Asset Store right now!

    • fix(SelfUpdate): fixed an edge case that leads to FileNotFoundException
     
    julianr likes this.
  48. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    Hi! How does non-sequential patches processing work? Can I request a specific patch to be downloaded?

    So say I have the core program, these updates to the core interface can be updated via a specified patch name or id, and I restrict a certain patch download for specific people by calling it by name, everyone else doesn't get this patch just those that have access to it from their login credentials which then allows that update. for example a patch update for members only, or a patch update for another type of user. This way it doesn't make the core program too large, with dead stuff that people do not have access to. No point downloading stuff that is not needed, or shouldn't have access to for added security.
     
    Last edited: Oct 24, 2020
  49. ManHunterITA

    ManHunterITA

    Joined:
    Sep 3, 2013
    Posts:
    341
    The non-sequential patches processing means that the software can calculate the shortest path to deliver the latest version.
    Let's make an example.
    Locally you have the version 1.0 and online you have three patches: 1.0_1.1, 1.1_1.2 and 1.0_1.2.
    PATCH will just download 1.0_1.2.
    So you can generate and apply non-sequential patches.

    About the other question: PATCH does not come with a way to deliver updates selectively to some specific users, since it does not come with any account system.
    So that's something you should build yourself, on top of PATCH API.
     
  50. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    Thanks. I already have the account system. I just need to work out how to use PATCH API for selectively providing certain patches and not others. Such as applying art packs as upgrades that have been purchased, so the next time they go into the app it then updates them. If it can't be done this way then I'll just stick to the core application for patch and use a downloader with installer for the add-on packs..

    If it can be done easily, then I'll upgrade to the source code version, but if it requires a major rewrite it get it to work that way, then I'll stick to the easy option for now (time wise).

    If source code version is required I could do it so that 1.x.x.x releases are the core app, and anything above that point release 2.x.x.x / 3.x.x.x is upgrade patches. Hopefully without mucking things up. I can't imagine there being more than 999 updates for the core app. So it would check for 1.0.0.1, 1.0.0.2 and as a separate process check for 2.0.0.1, 2.0.0.2 and so on. Would this actually work, or is there a brick wall in the way how things are structured when applying patches? Each will have their own paths so it will only add or overwrite to what's already there.
     
    Last edited: Oct 25, 2020