Search Unity

MG Patcher

Discussion in 'Assets and Asset Store' started by mihanocho, Mar 21, 2015.

?

Do you like MGPatcherTools,?

  1. Yes

  2. No

Multiple votes are allowed.
Results are only viewable after voting.
  1. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    MGPAtcherToolsForum.png

    MG Patcher is patching for unity games. This system will help your users save time, as the system only updates parts of the game files, not the entire game.Your users can quickly apply important updates, it will make your product even more stable. You will be able to use the product for a huge number of your customers. MG Patcher has a convenient interface, speed, and open source code with comments. Patcher can update inside the game and outside(launcher). You can customize the patcher’s look and function with your own designs. Patcher works perfectly with unity UI. Also i added client solution for VisualStudio. OPEN SOURCE CODE

    Working with protocols:HTTP,HTTPS. Patcher works on:
    -Windows (all bits)
    -Macintosh (all bits)
    -Linux (all bits)


    MG Patcher - Price - $25

    MG Patcher: AssetStore[/URL]']AssetStore[/URL]

    Screenshot_1.png
    Screenshot_2.png
    Screenshot_3.png
    Screenshot_4.png

     
    Last edited: May 24, 2019
  2. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    Tell me what to add or change?
     
  3. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    Does this create binary patches?
     
  4. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    Of course, the patcher builder compares the version of the game and creates binary files. To append to update it in the game files missing bytes.
     
    julianr likes this.
  5. pushingpandas

    pushingpandas

    Joined:
    Jan 12, 2013
    Posts:
    1,419
    Cant the patcher skip 2-5 and patch version 1 directly to version 6? That could save a lot of bandwidth if the game is massively GB in sizes.
     
  6. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    There will be a choice between direct and incremental upgrade.
     
  7. pushingpandas

    pushingpandas

    Joined:
    Jan 12, 2013
    Posts:
    1,419
    ah great. Where can I buy? :D
     
    mihanocho likes this.
  8. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    Release 28 March. Will be available in the Asset Store
     
  9. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    I think the choice between options patching must be removed. Since the rate is the same in two patching embodiments. In an embodiment of "1-5" in the process of updating the game you want to create 7 patches, and in the form "1,2,3,4,5" only 4. So I think the first option is impractical. What do you think is needed whether the choice between the options, or leave only option 2?
    Scheme:
     
  10. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,212
    Generally what I do is create a full build (for new people/customers), then a patch build covering updates between the last full build and the current full build. So including all updates in one patch. There's no real point in having individual patches out there, unless you are only planning on having one full build, and 20-30-100 patches to download. Ok, if you want a small client and the rest are downloadable updates.
     
    mihanocho likes this.
  11. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    Thank you for your response !!! Who will do the tests and publish the results.
     
  12. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    The test was conducted on a free hosting.
    ----------------------------Game Versions---------------------------------------------

    1- 112.2Mb
    2- 187.3Mb
    3- 192.8Mb
    4- 201.6Mb
    5- 248.7Mb
    6- 305.1Mb
    7- 315.4Mb
    8- 332.5Mb
    9- 375.3Mb
    10- 389.1Mb

    ----------------------------Speed Build Option 1--------------------------------------
    Number of patches - 9:
    [1_2, 2_3, 3_4, 5_6, 6_7, 7_8, 8_9, 9_10]

    Time to create patches - 6min.
    ----------------------------Speed Build Option 2---------------------------------------
    Number of patches - 45:
    [1_2, 2_3, 3_4, 5_6, 6_7, 7_8, 8_9, 9_10, 1_3, 1_4, 2_4, 1_5, 2_5,
    3_5, 1_6, 2_6, 3_6, 4_6, 1_7, 2_7, 3_7, 4_7, 5_7, 1_8, 2_8, 3_8,
    4_8, 5_8, 6_8, 1_9, 2_9, 3_9, 4_9, 5_9, 6_9, 7_9, 1_10, 2_10,
    3_10, 4_10, 5_10, 6_10, 7_10, 8_10]

    Time to create patches - 30min.
    ----------------------------Speed Patch Option 1 [1->10]----------------------------
    Number of patches - 9:
    [1_2, 2_3, 3_4, 5_6, 6_7, 7_8, 8_9, 9_10]

    Time game updates - 4min.
    ----------------------------Speed Patch Option 2 [1->10]----------------------------
    Number of patches - 1:
    [1_10]

    Time game updates - 2 min.
     
    Last edited: Aug 1, 2016
    julianr likes this.
  13. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    If you purchase MGPatcherTools until April 5, you get a 25% discount on our next package - MGCarPhysics and MGRealisticCarDamage.
     
  14. fastgamer

    fastgamer

    Joined:
    Mar 31, 2015
    Posts:
    1
    I bought it. Generally pleased. Patching fast and really liked the freedom in the design of patcher. Creating a new version comes really pressing one button.
     
    Yash987654321 and mihanocho like this.
  15. Zubba

    Zubba

    Joined:
    Mar 6, 2010
    Posts:
    67
    Is it Unity 5 only?
     
    mihanocho likes this.
  16. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    No, smaller version works fine.
     
    Last edited: Apr 1, 2015
  17. siliwangi

    siliwangi

    Joined:
    Sep 25, 2009
    Posts:
    303
    Great asset, recommended!
     
    mihanocho likes this.
  18. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    Discount will end in a week
     
  19. Ghosthowl

    Ghosthowl

    Joined:
    Feb 2, 2014
    Posts:
    228
    I have been heavily considering your asset, but I find your marketing strategy of deleting and re-creating the same post over and over to bump your thread very distasteful.

    Also I am fairly confused on the discount aspect. The plugin is on discount for 65% off but with the new mobile update the price will go to 40$ which will still be on discount of the $95 price tag but this was suppose to happen 1 week during the 2 week 65% discount? Which discount is ending in a week and what exactly does that mean? That it will go back to full price or it will raise to $40? Also the mention of this seems to have vanished. It is very confusing.
     
    mihanocho likes this.
  20. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    I delete because I think that buyers do not understand me so. A week later, the package will cost $ 40 discount that is not already be composes 65% and 50%
     
  21. Ghosthowl

    Ghosthowl

    Joined:
    Feb 2, 2014
    Posts:
    228
    Ah well, if what I see and understand is correct, there is no need because the asset looks very nice indeed and the quality of that and customer service will more than sell your product :)

    I was just about to grab it but I see there is two versions on the store, one which is $25 and the other which is $75. The one for $75 is more recent. Does that mean the discount is now over?
     
  22. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    We improved in the patcher, buy and enjoy.
     
  23. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    The discount will expire in a few days.
     
  24. hwills

    hwills

    Joined:
    Feb 28, 2015
    Posts:
    11
    Hi, I'm having a couple of problems when trying to get the patcher to work, and was hoping you could help!

    1. The version.txt that outputs with the content build has a different host ftp than the one I typed in. I typed: ftp.xxx.xxx.com, and it shows http://xxx.xxx.com. When I try to use the updater, it says it can't connect, so I changed the version.txt to have the right host ftp and it was able to connect.

    2. Then I get a different error, which says Error: Can not find the configuration file.

    Thanks!
     
  25. hwills

    hwills

    Joined:
    Feb 28, 2015
    Posts:
    11
    Hi, I just wanted to update my question. I realized I had something wrong with my paths that was causing the last error, but now I'm getting one after the patch downloads. I can't read it because it closes too fast, but I think it's say the patch is incorrect. I've only made one though, so I'm not sure why that's the case. Sorry for so many questions, thanks for the help!
     
  26. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    You patcher program he named "patcher"?
     
  27. hwills

    hwills

    Joined:
    Feb 28, 2015
    Posts:
    11
    Thanks for getting back to me! I did name it "patcher" like in the video example. The error I get is this:
    Error: Patch file is incorrect ICSharpCode.SharpZipLibZipZipException. Wrong Central Directory signature at ICSharpCode.SharpZipLibZipZipFile.ReadEntries()0x00000() in <filenmae unknown>:0
     
  28. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    manually download the patch and update again poprobute
     
  29. hwills

    hwills

    Joined:
    Feb 28, 2015
    Posts:
    11
    I deleted all my old builds and patches and tried again, as well as manually putting the patch in the directory, but I still got the same issue. Something is going wrong with the ApplyPatch function I think, but I'm not sure what I'm doing wrong when making the patch to cause this. Thanks for your help!
     
  30. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    Check the size of the patches on the local computer and the server. Take a screenshot of your settings.
     
  31. hwills

    hwills

    Joined:
    Feb 28, 2015
    Posts:
    11
    It looks like the problem was that I had spaces in the title of the game. I edited the version.txt file to use "%20" instead of a space and the patch worked correctly. This isn't really ideal though because it changes the name of the updated version.txt file back to the one with spaces. Is there any way I can get around this? Or something I can change in the script?
     
  32. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    Thanks for waiting. The problem is the name of the patch. The update we fix it. To fix now, open the script "MGPatcherToolsScript". The function "copyToSource" add the line "string patchName = arrayPlatform [countArray] .game_name.Replace ('', '_');" after "_MGBP = new MGBuilderProgram ();" to replace all occurrences of "arrayPlatform [countArray] .game_name" on patchName in "_MGBP.LoadInformation (" and "StartWriteConfiguration (". Sorry for these difficulties.
     
  33. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    If you like the package, please leave feedback to us AssetStore. Thank you!
     
  34. hwills

    hwills

    Joined:
    Feb 28, 2015
    Posts:
    11
    Thanks! That caused a few errors to output, but I was able to get it figured out. Appreciate your help, I really like the way the patching system works.
     
    mihanocho likes this.
  35. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    There is an excessive amount of bumping (daily bumps) while deleting your old posts. I don't mind when people do it, but daily (and sometimes more than once per 24 hour period) is unfair to other asset authors on the forum, so it's not allowed. Specially as you've bumped and deleted old posts more than 60 times in this thread alone. Don't.

    Please add content or news if you are bumping, and allow sufficient amount of time between bumps.
     
  36. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    This is on the 24-hour sale today. Anyone using this have a comment on it? With only one review and one page of forum, it's hard to make an evaluation.
     
  37. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    Hi. The package documentation is submitted. There are videos on our channel youtube. We can answer your questions as sdes and on facebook.
     
  38. Lohrion

    Lohrion

    Joined:
    Aug 16, 2013
    Posts:
    107
    Does this work with HTTP, FTP, SFTP or either of them?

    And what happened to the topic of incremental patches vs. patches to the latest version? I think one big patch is more customer friendly than downloading 10 little patches, whereafter each one the customer thinks "woohoo, I can play now!", but is let down. What settings do we have to make to accomplish either of these two options?

    On a side note, your source code is really messy, and therefore hard to read. I really like the C# coding guidelines, maybe you want to try them too:

    https://msdn.microsoft.com/en-us/library/Ff926074.aspx

    Also, when adding two scenes in the Scene Settings, I can only check one of the two. Is this intended behaviour?

    And how about versioning? Are we limited to whole numbers, or are versions like 0.2.5a possible? It seems like it can only take whole numbers at the moment :-/

    Edit: It seems your path building logic still needs some improvements. While initially playing around with it, I encountered this error:

    InvalidCastException: Cannot cast from source type to destination type.
    MGPatcherScript.Update () (at Assets/MGPatcherTools/MGPatcher/MGPatcherScript.cs:119)

    The Exception thrown is an ArgumentNullException, but is trying to be cast into a WebException:

    System.ArgumentNullException: Argument cannot be null.
    Parameter name: uriString
    at System.Uri.Parse (UriKind kind, System.String uriString) [0x00000]
    <snip>

    This ArgumentNullException seems to happen because you are looking for a version.txt in the method StartReadConfiguration(). Yet, at least while running from the editor, the path is utterly wrong for me. It looks in C:\MySuperAwesomeGame, but this is actually the very top of my SVN repository, where I start splitting into trunk and branches, and there is no version.txt.

    So, long story short: If running from the editor, on line 51 of MGPatcherScript.cs you are building the patch via Application.dataPath, which is in my case C:/MySuperAwesomeGame/trunk/Assets - the result of this operation is "C:/MySuperAwesomeGame/t", to which a "version.txt" is concatenated - resulting for it to look for a tversion.txt in the wrong folder. I don't think this is correct ;-)

    Thank you very much!
     
    Last edited: Aug 18, 2015
  39. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    1) Upload patches to the server takes place via FTP.
    2)Option_1_2_3_4_5(10 little patches). Option_1_5(one big patch).
    2.png
    3)Сode fix in the next version.
    4)You put a check mark next stage which will start after patching.
    5)Fractional versions will be available in the next version.
    6)MGPatcherTools not support patching within the engine.
    Thank you for the comment! Sincerely, Michael A.
     
  40. Lohrion

    Lohrion

    Joined:
    Aug 16, 2013
    Posts:
    107
    Thank you for the reply :) I'm looking forward to the fractional versions :)

    Maybe you could add a workaround for this, so that the process of patching (without the actual patching) can be tested within the editor?
     
  41. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    How do you imagine fix games that has not yet compiled?
     
  42. Lohrion

    Lohrion

    Joined:
    Aug 16, 2013
    Posts:
    107
    Well, as I said, without the actual patching. I'd try a workflow like this:

    - Give the developer the opportunity to set an imaginary version for their game and/or an imaginary new version on server for their game, with the standard setting being the current version for both
    - The developer starts the game in the editor and is notified like in a standalone build if a newer version is available.
    - If one is available and the developer begins the patching process, MGPatcher connects to the server, either does or does not download the patch, depending on another setting. After that, it skips the installation process (maybe with a log message to make this clear to the developer).

    Imagine it as a test for everything being set up correctly, like the patching UI and the FTP server.
     
  43. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    Thank you, add!
     
  44. Lohrion

    Lohrion

    Joined:
    Aug 16, 2013
    Posts:
    107
    Great, I'm sure this will be of use for your new customers :)
     
  45. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    What would you like to see more? Безымянный.png
     
  46. Bumblefuck

    Bumblefuck

    Joined:
    Jul 23, 2014
    Posts:
    28
    InvalidCastException: Cannot cast from source type to destination type.
    MGPatcherScript.Update () (at Assets/MGPatcherTools/MGPatcher/MGPatcherScript.cs:116)

    Even after making changes you suggested.
     
  47. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    Recently, the change was only superficial. The new update will be next week. Offers suggestions to make improvements here Patcher better. Thanks
     
  48. Lohrion

    Lohrion

    Joined:
    Aug 16, 2013
    Posts:
    107
    Nice to see some work going into this! :)

    I think that one review the MGPatcher received in the Asset Store nailed it pretty much.

    (Quote):

    - Housekeeping: Every time you build a patch, the system will also create a new, full build. This is fine, because you don't want to provide a new customer a state of your game that he has to patch right out of the box. But there is no option to have the old versions cleaned up. There is also no option to publish your full game build to the same server as the patches - while doing this, compression would be nice.
    - Events or hooks to retrieve the state of the patching. Something along the lines of: No new patch, Patch available, Downloading, Applying, Patching Finished, Error.
    - Getting the current version and the newest available version

    (End of quote)

    I think the events / hooks and better exception / error handling are rather important to make this a solid solution :)
     
  49. Lohrion

    Lohrion

    Joined:
    Aug 16, 2013
    Posts:
    107
    Well, that line 116 is exactly what I was saying before regarding to the error handling. What were you trying to do?
    You can maybe get more information by inserting the following into line 116, prior to the cast to WebException:

    UnityEngine.Debug.Log(ex.Message);

    Or maybe the developer already knows what's going on.
     
  50. mihanocho

    mihanocho

    Joined:
    Mar 10, 2015
    Posts:
    296
    We changed the system save the settings. Now MG Patcher Tools works with .asset.