Announcement

Collapse
No announcement yet.

Game Launcher / Patcher Recommendations

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Game Launcher / Patcher Recommendations

    For large Games as a Service not distributed on Steam or Epic stores a patcher and launcher is necessary and I am looking for recommendations. Currently for a project we are using a modified version of DQ Patcher but we're not 100% satisfied with how it is working so any suggestions would be greatly appreciated

    Thanks
    Ironbelly Studios- Your External UE4 Development Partner: AAA Quality Services at Indie Prices
    Request a quote today:
    https://ironbellystudios.com
    Follow us on Facebook: www.facebook.com/ironbellystudios

    #2
    Will follow up on this to share some of the things I've found.
    Last edited by Ironbelly; 06-11-2019, 10:18 AM.
    Ironbelly Studios- Your External UE4 Development Partner: AAA Quality Services at Indie Prices
    Request a quote today:
    https://ironbellystudios.com
    Follow us on Facebook: www.facebook.com/ironbellystudios

    Comment


      #3
      Hello.

      You didn't specify what are the issues with DQ patcher you are unsatisfied with So i'm going to make an assumption it is perhaps an issue with large memory use and excessive disk operations. Since the rather simple and intelligent way DQ patcher will handle this operation i think it's not actually issue of the patcher. You can choose whatever patcher you find comfortable to working with, the problem will still boils down to the PAK files. If the project in question is using one single PAK file for all contents, the patching will always yield in bad results unfortunately. PAK files are literally the nemesis of any patcher tools. Here is why.

      Since the modifications introduced to the PAK file can happen in random locations, offsetting will be required for the patcher to inject / reject certain parts of it, however it cannot be done on the disk because there is no hardware support for such actions.
       
      Spoiler


      A preferred solution would be to not using PAKs at all. The reason is because it will allow the patcher to only modify those affected files which are actually being modified, and not the entire PAK file. This is a huge improvement, if not the ultimate one. The down side of not using PAKs it will result in large content folders because unreal will only Compress / Encode PAK files, and not individual files. A modification to the engine code to use compression on individual files could be a potential middleway solution here that keeps the content size small (and encrypted if neccessary), while allowing the files to be individual contents. I'd expect no differences in performance, compared to a single pak file being compressed, but maybe i'm wrong on that. Tests!

      Doing this may rise some security concerns, however i find those are rather negligible since the unreal packaging system is open source, so anybody can write exploit tools to modify PAKs - therefore defeating the advantage of having the content stuffed in a single PAK. Without being open source it also cannot guarantee proper security.

      Some patchers you have mentioned implements BSDIFF which is originally designed for executables (according to the original author at least ) so despite it's common use it may not yield in good results at all. Not much better when comparing to the DQ patcher method at least. ZPatcher is a rather unfinished project and props to the author for making it, it is very promising indeed, but it lacks of many features which makes it a difficult to choose. Butler, Karazeh comes without UI as it would seem, so that's up to the deveoloper to extend these projects with such features. Finding deveopers with understanding of Go lang can be another challenge on it's own JunoPatcher may seem open source, however the core (GRF.dll) appears to be closed source so modifications to the way it works can be rather difficult if not impossible (thinking of reverse engineering which is illegal).

      I think the best bet would be for you to stick to DQ patcher and try using unPAK-ed contents, hopefully it will resolve all troubles for the longer run, especially if the project in question is huge.

      Some references:

      bsdiff - http://www.daemonology.net/bsdiff/
      dq patcher doc - https://docs.google.com/document/d/1...fqTlaQCRw/edit
      Articles
      * Sharp and responsive Temporal Anti-Aliasing tips and tricks
      * Pitch-shift source effect (DSP) over the network (VOIP)

      Portfolio
      * My Portfolio and Developer Blog

      Comment

      Working...
      X