Search Unity

[Asset]Unity Game Patcher[Pro Not Needed]

Discussion in 'Works In Progress - Archive' started by laakerules, Oct 22, 2013.

  1. laakerules

    laakerules

    Joined:
    Aug 29, 2012
    Posts:
    153
    UGP
    Unity Game Patcher



    Hello, i guess ill start at the beginning. A few weeks ago I was sitting in Chem 1E (General Chemistry for Engineers) and i got a push notification on my iPhone telling me that there was an IOS update, it was the bug fixes for IOS 7. Then i started to wonder how patches and updates are made and applied. Luckily there was only 5 minutes left in class and i already finished the problem that the Professor was going over. When i got back to the dorms i decided to look it up and see how Unity handled patches, little to my surprise they have Zilch support for it unless you have pro and do asset bundles or buy the expensive M2H patcher which looks good but requires pro also. Then I started to work on a whole patch creating system for the fun of it, after creating a whole simple comparison of files and past revision system along with a binary serializer and deserializer to generate the patch file and the old revision data. But then i realized that it was very inefficient since it just replaced files rather than small changes, so I googled how to find changes in binary data. I found several solutions and theories on it, the main one is LCS (Longest Common Subsequence or Longest Common Substring) and almost none other than that. So after reading through the wikepedia and understanding it thoroughly, I started on my own form of it. Although for a 19mb picture file it was taking quite a while to find a single line that i changed on the picture. But it worked, so i decided again to google different ways to do it and there are none, except for a few college exit papers on other theories so i decided to work off a few PDF's that i read and there thought on it. So I Started to work on a pumped up version of the LCS and made it around 8 times faster. Then with another PDF i read about a system called O(ND) Difference Algorithm I wrote a even faster improvement to the LCS and ended up ramping the speed to 23 times faster than the basic LCS system!!!!!!!!

    That is how I started on this, and now im touching it up and working on it to still make it faster and make the smallest patch possible that still patches everything and can patch as many platforms as possible. So here is the WIP Thread! :)



    Completed:
    • Difference Finding Algorithm
    • Patch Creation System
    • Old Version Creation
    • Patch Applying


    Working On:
    • More ability to customize the patch the way you want. Include files or Exclude Files, use Algorithm or fully replace Etc...
    • Easy Patch Installing for client
    • Http Parser to find patches on webserver directory
    • Faster Patch Creation
    • Anything Else I Think of


    Requirements:
    • A Computer
    • Unity
    • Ability to Move and Click Mouse
    • Have to Build application for target platform (Windows,Mac,Linux)


    P.S. Will be going on the Asset Store, my current thought on price is $20-25 maybe less not sure yet.



    PDF of O(ND) Algorithm (Caution: Proceed at your own risk, its not something simple and is extremely hard to complete successfully and make it run fast) : PDF on O(ND)

    Then just google Wikepedia LCS algorithm :)
     
  2. Sphelps

    Sphelps

    Joined:
    Jun 9, 2013
    Posts:
    243
    hope to see this
     
  3. Lemo76

    Lemo76

    Joined:
    Aug 7, 2012
    Posts:
    174
    I'm looking out for a cheap and easy patcher so I keep up the good work!
     
  4. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,315
    what about ios and android platform?
     
  5. Zeblote

    Zeblote

    Joined:
    Feb 8, 2013
    Posts:
    1,102
    How should that even work?