Search Unity

ECS & Application / Content Patching

Discussion in 'Data Oriented Technology Stack' started by recursive, Mar 26, 2019.

  1. recursive

    recursive

    Joined:
    Jul 12, 2012
    Posts:
    583
    So something that's been mulling around in my head as newer ECS features such as sub-scenes and Asset Blobs have come out, is this:

    Is there a plan to build support for patching both a built player and or contents with ECS to account for version changes (like enough refactoring to alter scene data)? On previous projects we wound up using a 3rd-party binary patcher (P.A.T.C.H on the asset store) and while it was a good tool for our needs (binary deltas for delivering client application patches), there's still some issues with the lack of direct integration/support for this sort traditionally with Unity.

    One of the issues that things like protobuf and other nearly-memory-mapped formats have to deal with is putting deprecation/addition features straight into the protocol itself, how would that be handled?

    It looks like with Addressable Assets, there's already a move away from the "large, incomprehensible, baked YAML blob", which is a good step. Is the move to DOTS facilitating the backend changes to replace AssetBundles with something better?

    One last thought/question: How would this tie into improved modding support for games? I can imaging having a consistent, organized dataset could be potentially huge for modding.
     
    Creepgin likes this.
  2. Joachim_Ante

    Joachim_Ante

    Unity Technologies

    Joined:
    Mar 16, 2005
    Posts:
    4,640
    We have a plan for supporting migration of runtime data. Unity.Properties has some initial tech in this direction but it has not been fully integrated into the binary format.
     
    Draveler, recursive and FROS7 like this.
  3. recursive

    recursive

    Joined:
    Jul 12, 2012
    Posts:
    583
    Thanks, will there be spec documents for the binary format at some point in future?
     
  4. starikcetin

    starikcetin

    Joined:
    Dec 7, 2017
    Posts:
    225
    Can you elaborate a little on what you missed while using a binary patcher?
     
  5. recursive

    recursive

    Joined:
    Jul 12, 2012
    Posts:
    583
    @starikcetin - Nothing, I'd prefer that honestly.

    Its more I'm hoping with this focus on "fast binary format", eventually for everything, Unity could at least have the toolkit for binary content patching built in.

    Patch install sizes for a lot of AAA games have kinda gotten nuts in the last few years, with the lack of compression and the "just replace everything" mentality of sending content down the wire. Even with the advent of streaming tech, there's likely to be costs in how much overhead the streaming instance runs, to say nothing of download caps in the US and other parts of the world (which given the current trajectory are going to get worse, even with 5G on the horizon).

    Aside from the above rambliness, I want to keep any install or update of my game(s) as snappy as possible, and clients like it when the software you deliver them can go live faster and for less storage/bandwidth cost.

    Making a well-defined format for content and data also allows for easy modding, as the PC gaming scene proved way back when.
     
    frarf and starikcetin like this.
  6. Creepgin

    Creepgin

    Joined:
    Dec 14, 2010
    Posts:
    249
    The addressable team is working with the ECS team on integration of these two. Not sure what they'll bring in the end. Have to wait and see.

    But speaking of binary patching, I've had great experience with the open source UnitySimplePatchTool

    https://github.com/yasirkula/UnitySimplePatchTool
     
    frarf and recursive like this.