Unity Community

Register or Sign In:

+ Reply to Thread
Page 1 of 3 1 2 3 LastLast
Results 1 to 20 of 56

  1. Location
    The Netherlands
    Posts
    805

    M2HPatcher - The Unity patching solution

    What is M2HPatcher?
    A multi platform (Mac + Windows) patch solution for Unity. It allows Unity developers to launch
    updates of their games in a single mouse click. Just sit back and wait for the automated
    building, zipping, patch creation and uploading of the game files!

    Features
    ● The creation tool is fully integrated in the Unity editor (Mac and Win)
    ● Supports any Mac and Windows standalone games (plus additional files)
    ● Full source code included for both the editor scripts and the patch client
    ● Updates can be enforced&started from inside your game
    ● Fully automated: just click “Publish” to distribute the latest version to your users:
    - increases the build version number
    - builds a full [Windows, Mac, Webplayer] version of your product
    - creates patches with earlier standalone builds
    - zips the full builds and patch files
    - upload the full builds and patch files
    - publish the latest version number online

    Links
    Download it from the asset store
    Video showcase
    Documentation




    Version history
    1.03:
    Important bugfixes, please update your webserver and force patch clients to update.
    - Bugfix: webserver could serve wrong patch files.
    - Bugfix: patch client would set it's version always to the latest game version when applying an older patch (skipping any optional newer ones)
    - Improved: The patchclient will now run multiple updates instead of starting the game after applying only the first update in a row.
    - Improved some error messages for better error detection.

    1.02:
    - New option "Upload patches only". Helps to speed up the publish process.
    - Bugfix for Mac patch application.
    - The patch appliaction will nowonly ignore executable that contain "Patcher" instead of "Patch" when it's looking for your game executable to start. The defautl patcher is called Patcher (.app/.exe).
    Thanks to existing_name for feedback in the forum topic.

    1.01:
    - More error checking.
    - Support FTP absolute upload urls.
    http://forum.unity3d.com/threads/111...267#post756267

    1.00: Initial release.
    Last edited by Leepo; 03-04-2012 at 07:00 AM.
    Mike Hergaarden - M2H Game Studio - http://twitter.com/M2Hgames

    Unity 3D game portal: Wooglie.com
    Free Unity resources/projects M2HCulling, Networking tutorial and more


  2. Location
    Ratingen, Germany
    Posts
    262
    Will it still be free?
    Updates about my upcoming Game "VESS Online" can be found here.


  3. Location
    Melbourne, Australia
    Posts
    1,371
    Looks awesome dude! Well done :-)
    Seon :: Main Code Monkey
    3 Sprockets :: http://www.3sprockets.com :: @3sprockets
    http://cubementd.com :: TD meets RTS in a whole new way!


  4. Posts
    16
    fantastic ! Good job



  5. Location
    The Netherlands
    Posts
    805
    It has just been pushed live on the asset store!
    Mike Hergaarden - M2H Game Studio - http://twitter.com/M2Hgames

    Unity 3D game portal: Wooglie.com
    Free Unity resources/projects M2HCulling, Networking tutorial and more


  6. Location
    Perth. Australia
    Posts
    102
    I've paid (a premium price on the asset store) for this, hoping for a plug and play solution. I've had to make a few changes to get things working, and I'm still getting issues.


    Some suggestions:

    1. When errors occur, the progress bar is sometimes not cleared, which means a Force Quit of an otherwise running Unity instance.

    2. At line 15 in uploadEditorData.php, this line needs to be added before the script works in Ubuntu or similarly configured PHP.

    $action = $_REQUEST['action'];

    3. The ftp code won't upload to an absolute folder. Using /var/www/downloads for instance, tries to upload to /home/simon/var/www/downloads. I solved this with a symlink.

    4. When the publish command bombs out, please restore the original player settings.

    Finally, my current problem involves this exception:

    Code:  
    1. Win32Exception: ApplicationName='/Users/simon/Unity/DB/SkoolboMobile/Assets/M2HPatcher/PatchClient/bsdiff', CommandLine='"/Users/simon/Unity/DB/SkoolboMobile/builds/000001/StandaloneOSXIntel/Skoolbo.app/Contents/Data/level0" "/Users/simon/Unity/DB/SkoolboMobile/builds/000002/StandaloneOSXIntel/Skoolbo.app/Contents/Data/level0" "/var/folders/FY/FYynE0B7FSKk6pjqIh4E1++++TI/-Tmp-/M2HPatcherTMP/StandaloneOSXIntel_1_2__11850/Skoolbo.app/Contents/Data/level0"', CurrentDirectory=''
    2.   at System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>:0
    3.   at System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>:0
    4.   at System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) [0x00000] in <filename unknown>:0
    5.   at M2HPatcher_CreatePatch.CreatePatches (System.String[] filesFrom, System.String[] filesTo, System.String[] fileOutput) [0x0018d] in /Users/simon/Unity/DB/SkoolboMobile/Assets/M2HPatcher/Editor/M2HPatcher_CreatePatch.cs:369
    6.   at M2HPatcher_CreatePatch.MakePatchForDir (System.String from, System.String to, System.String outputFolder, System.String patchTitle) [0x0019d] in /Users/simon/Unity/DB/SkoolboMobile/Assets/M2HPatcher/Editor/M2HPatcher_CreatePatch.cs:134
    7.   at M2HPatcher_CreatePatch.MakePatches (Int32 oldVersion, Int32 newVersion) [0x0017c] in /Users/simon/Unity/DB/SkoolboMobile/Assets/M2HPatcher/Editor/M2HPatcher_CreatePatch.cs:77
    8.   at M2HPatcher.Publish () [0x0006b] in /Users/simon/Unity/DB/SkoolboMobile/Assets/M2HPatcher/Editor/M2HPatcher.cs:84
    9.   at M2HPatcherGUI.Publish () [0x00005] in /Users/simon/Unity/DB/SkoolboMobile/Assets/M2HPatcher/Editor/M2HPatcherGUI.cs:226
    10.  
    11. (Filename: Assets/M2HPatcher/Editor/M2HPatcher_CreatePatch.cs Line: 369)

    I'll post a suggested fix when I solve it.

    Update: The above exception seems to be a permissions related problem. chmod +x on the included bsdiff and bspatch binaries is needed.
    Last edited by simonwittber; 11-29-2011 at 07:41 PM.
    :: Simon Wittber :: www.differentmethods.com ::


  7. Location
    The Netherlands
    Posts
    805
    First of all, thank you for purchasing the package. I'm sorry it did not work out of the box for you.

    Quote Originally Posted by simonwittber View Post
    1. When errors occur, the progress bar is sometimes not cleared, which means a Force Quit of an otherwise running Unity instance.
    I've added a few more ClearProgress bars in the code where required.

    The weird thing is that I never required a force-quit to fix a hanging progress bar, the progress bar will indeed remain visible but it does not hang the application. I could always simply ignore the progress bar or quit and re-open Unity to clear it. Maybe worth a Unity bug report?

    Quote Originally Posted by simonwittber View Post
    2. At line 15 in uploadEditorData.php, this line needs to be added before the script works in Ubuntu or similarly configured PHP.
    $action = $_REQUEST['action'];
    Added to the packages default webserver.zip

    Quote Originally Posted by simonwittber View Post
    3. The ftp code won't upload to an absolute folder. Using /var/www/downloads for instance, tries to upload to /home/simon/var/www/downloads. I solved this with a symlink.
    Added support for absolute paths (when the first character of the ftp_folder is a "/".

    Quote Originally Posted by simonwittber View Post
    4. When the publish command bombs out, please restore the original player settings.
    I haven't been able to narrow this down. PlayerSettings are only changed when rebuilding the patch clients ( RebuildPatchers(); ). What error did you experience to have RebuildPatchers fail?

    I've added a few checks on the patchclients to detect when a chmod +x is required.
    I take it that you only need to call the chmod +x once after downloading the package from the asset store? Maybe the asset store packaging emsses up execution rights, I do not remember I had to call chmod after testing on my Mac (via assetserver).

    I hope it's now all working as desired for you. If not; I'd gladly offer support.

    Update 1.01 has been submitted to the asset store and should be live +-friday
    Last edited by Leepo; 11-30-2011 at 02:09 AM.
    Mike Hergaarden - M2H Game Studio - http://twitter.com/M2Hgames

    Unity 3D game portal: Wooglie.com
    Free Unity resources/projects M2HCulling, Networking tutorial and more


  8. Location
    Perth. Australia
    Posts
    102
    Wow thanks, thats great, overnight bug fixes! :-)

    I have it all working now, and performed my first publish end to end last night. It's really going to save on my bandwidth, and my client will be much happier too. I'm going to investigate creating an option to upload patches only, which will be handy for me.

    Thanks for a much needed product!
    :: Simon Wittber :: www.differentmethods.com ::


  9. Location
    Zürich, Switzerland
    Posts
    18
    I purchased the package yesterday for using it in our upcoming game Krautscape (http://krautscape.net/). Unfortunately, it also didn't work out of the box for me (Unity 3.4.2, OSX 10.7).

    Bugs:
    • The Patch Application was missing the patchsettings.txt. After some debugging, I found that there is a slash too much when generating the path for patchsettings.txt which prevents the script from generating the file (without any error message). removing the leading slash before "Patcher.app" solves this for me, at line 330 / M2HPatcher.cs. Don't know if this is a Mac-only problem.
    • If the Game name contains "Patch" (in my case it was PatchTestApplication), it is not possible to launch the game from the patcher, because GetMacApp() / PatchClientGUI.cs filters everything with the word "Patch" in it.

    Suggestions:
    • It would be nice to have a checkbox to upload patches only, as simonwittber mentioned. Especially for testing, it would be great to have this option. Maybe there could be a dialog after pressing on the "Publish" button with checkboxes like "Upload current version", "Increase version number on webserver" etc..
    • Would it be possible to upload the files in the background?
    • I'm thinking about moving the Patcher.app to another unity project, because I want no unused resources to be included (we're using the Resources directory for some assets).
    • Did you ever think of moving the gameversion info into the game directory, so we could reuse the patcher for different versions of a game without rebuilding or changing any contents/settings?

    But anyway, thanks for building this, it's a good product, even though it needs a bit more polish to be great!
    Last edited by existing_name; 12-31-2011 at 07:19 AM.


  10. Location
    The Netherlands
    Posts
    805
    Hi Existing_name,

    Thanks for the constructive feedback, I indeed need to do some more polishing on Mac.
    All suggestions and bugreports make sense and I'll look into them.

    "Would it be possible to upload the files in the background?"
    No I'm afraid not, it's impossible to 'yield' in editor scripting AFAIK. Maybe there are workarounds I don't know of though?

    "I'm thinking about moving the Patcher.app to another unity project, because I want no unused resources to be included (we're using the Resources directory for some assets)."
    Right, I could rename the Resources folder for the patcher just before and after building the patcher. Then you wouldn't need to move it to another project.

    "Did you ever think of moving the gameversion info into the game directory, so we could reuse the patcher for different versions of a game without rebuilding or changing any contents/settings?"
    I'll need to have a look at this.
    Mike Hergaarden - M2H Game Studio - http://twitter.com/M2Hgames

    Unity 3D game portal: Wooglie.com
    Free Unity resources/projects M2HCulling, Networking tutorial and more


  11. Location
    Málaga (Spain)
    Posts
    386
    Quote Originally Posted by Leepo View Post
    "Would it be possible to upload the files in the background?"
    No I'm afraid not, it's impossible to 'yield' in editor scripting AFAIK. Maybe there are workarounds I don't know of though?
    In the development version of Pro Racing AI, I'm using Threads instead of yield statements to update a progress bar while I'm doing some heavy calculations. This solution has some quirks (even if the thread continues running in the background, if the Unity Editor doesn't have the focus, the progress bar is not updated), but at least it works.

    I'm still trying to find out how to improve the progress bar behaviour, but I think using real Threads instead of yield statements could be a good starting point for you.
    Last edited by davidgutierrezpalma; 01-03-2012 at 09:00 AM.
    Do you need a really fast racing AI for Unity?
    Pro Racing AI


  12. Posts
    322
    Hi,

    This system sounds really good. However, I have a few questions here:

    My project relies heavily on external files on the game folder, that are loaded at runtime. These files will need updating every now and then too. How well does M2H cope with these external assets? Or more specifically, how can you set those files to be uploaded along with the latest patch?

    Also, since the project here is going to be pay-to-download, I want the patcher to require the player to first login to his webstore account before allowing it to start the update. How possible would that be?

    One more thing, since the project is commercial, we also need to be able to host the game downloadables in a secure location (probably encrypted). Is that ok with M2H?

    Oh, and one last thing... we here already have our own version numbering scheme, which we would like to keep. Can M2H use custom numbering systems, or will it be necessary to somehow sync up the build id with our own versioning scheme?

    All in all, it looks like a VERY good option, and being able to publish patches straight from the editor would literally save us an entire day of work whenever we do update releases.

    Cheers
    Last edited by HarvesteR; 01-03-2012 at 02:04 PM.
    The limit of the willing suspension of disbelief for a given element is directly proportional to the element's coolness.


  13. Posts
    15
    Quote Originally Posted by davidgutierrezpalma View Post
    I'm still trying to find out how to improve the progress bar behaviour, but I think using real Threads instead of yield statements could be a good starting point for you.
    or use EditorApplication.update


  14. Location
    Málaga (Spain)
    Posts
    386
    Quote Originally Posted by romeo_ftv View Post
    or use EditorApplication.update
    I didn't know about that property, I'll give it a try... but I've checked the Scripting Reference and there isn't any sample code. Do you know if it can be use as a replacement of yield statements (and real Threads) to distribute a long process over several seconds without blocking the Unity Editor? How is it supposed to be used?
    Do you need a really fast racing AI for Unity?
    Pro Racing AI


  15. Location
    The Netherlands
    Posts
    805
    My project relies heavily on external files on the game folder, that are loaded at runtime. These files will need updating every now and then too. How well does M2H cope with these external assets? Or more specifically, how can you set those files to be uploaded along with the latest patch?
    Also, since the project here is going to be pay-to-download, I want the patcher to require the player to first login to his webstore account before allowing it to start the update. How possible would that be?
    This is something I won't support in the package itself as it should remain a general purpose solution. However all source code is available so you can customize it to your needs.
    You could edit the default patch client and add a login scene. Then only proceed to the current, patch, scene after logging in. To make it even more secure you'd also need to secure the download URL on the server side.

    One more thing, since the project is commercial, we also need to be able to host the game downloadables in a secure location (probably encrypted). Is that ok with M2H?
    I wouldn't mind :P. Note that we don't host any of the patches/projects you make: You need to host them on your own servers.

    Oh, and one last thing... we here already have our own version numbering scheme, which we would like to keep. Can M2H use custom numbering systems, or will it be necessary to somehow sync up the build id with our own versioning scheme?
    Hm, you can modify the patchers verson number any time, but it always uses an int and increments it by 1 for every publish. You could choose to simply keep the M2H versioning but use it as build number only, next to your own versioning.
    Mike Hergaarden - M2H Game Studio - http://twitter.com/M2Hgames

    Unity 3D game portal: Wooglie.com
    Free Unity resources/projects M2HCulling, Networking tutorial and more


  16. Location
    The Netherlands
    Posts
    805
    This feedback is still on my todo list:

    Bugs:
    The Patch Application was missing the patchsettings.txt. After some debugging, I found that there is a slash too much when generating the path for patchsettings.txt which prevents the script from generating the file (without any error message). removing the leading slash before "Patcher.app" solves this for me, at line 330 / M2HPatcher.cs. Don't know if this is a Mac-only problem.
    If the Game name contains "Patch" (in my case it was PatchTestApplication), it is not possible to launch the game from the patcher, because GetMacApp() / PatchClientGUI.cs filters everything with the word "Patch" in it.

    Suggestions:
    It would be nice to have a checkbox to upload patches only, as simonwittber mentioned. Especially for testing, it would be great to have this option. Maybe there could be a dialog after pressing on the "Publish" button with checkboxes like "Upload current version", "Increase version number on webserver" etc..
    Would it be possible to upload the files in the background?
    I'm thinking about moving the Patcher.app to another unity project, because I want no unused resources to be included (we're using the Resources directory for some assets).
    Did you ever think of moving the gameversion info into the game directory, so we could reuse the patcher for different versions of a game without rebuilding or changing any contents/settings?

    But anyway, thanks for building this, it's a good product, even though it needs a bit more polish to be great!
    Mike Hergaarden - M2H Game Studio - http://twitter.com/M2Hgames

    Unity 3D game portal: Wooglie.com
    Free Unity resources/projects M2HCulling, Networking tutorial and more


  17. Location
    The Netherlands
    Posts
    805
    I just submitted 1.02 to the asset store:

    1.02:
    - New option "Upload patches only". Helps to speed up the publish process.
    - Bugfix for Mac patch application.
    - The patch appliaction will nowonly ignore executable that contain "Patcher" instead of "Patch" when it's looking for your game executable to start. The defautl patcher is called Patcher (.app/.exe).

    Thanks for the feedback so far .
    Mike Hergaarden - M2H Game Studio - http://twitter.com/M2Hgames

    Unity 3D game portal: Wooglie.com
    Free Unity resources/projects M2HCulling, Networking tutorial and more


  18. Location
    Ames, IA
    Posts
    3
    @HarvesteR : I recently modified the patcher to include external files that are kept in a specified folder. Unfortunately, this path is currently hard coded, but I could message you on how to do it if you wanted. It's a really easy modification.


  19. Location
    Mexico City
    Posts
    25
    Hi,

    I'm having troubles with applying the patch to the game.

    I configured the server and Editor as it should be. It builds the patch and uploads it fine and when I update the game, it starts downloading. But at some point, the most of the times at 87%, the download stops, Patcher application closes and the game opens. This makes you think that the game has been updated, but surprise! It hasn't!

    Although the patchsettings.txt was overwritten, the game did not update. I'm using the Demo that the M2HPatcher has.

    Any help would be appreciated!

    Thanks