Download

We need a package manager for Unreal Engine marketplace assets

Title sums it up.

The UE4 marketplace is great. Besides from some filtering and other minor issues, I can purchase and download assets and add them to my project.

The problem with this though is adding them and organizing them within your own project. When a marketplace creator has many assets within the same family (just for example, Brushify, MAWI packs, and many, many others), they often use the same global master materials or other shared project files. When you purchase and add multiple of these packages to your project, you then can have duplicates of the shared assets. Additionally, everything is added to your top level content folder, which can very easily become a complete mess. With both of these issues, a developer can easily spend hours or days fixing the assets to meet an organized and professional structure for continued development - especially important in projects with many team members.

My proposition: an asset manager built in the editor itself.

  • Load up the editor and use the asset manager to add purchased packages similar to that of how you might install node modules or python packages.
  • Assets should be allowed to contain multiple top level directories. For example if I have a line of packages available on the marketplace, I should be able to have a “shared assets” folder for that line of products - perhaps containing things like a player character for demo maps, master materials, blueprints, etc. When a user purchases & downloads one pack, they download the pack contents and the required shared assets for that pack. If they end up purchasing another pack, they can just download the pack and continue using the shared assets for that line of assets, since they already meet the additional requirements.

The organizational structure should be to provide a folder other than ‘content’ for asset packages, e.g ‘asset_packages’. If a user makes a local project, they should be able to additionally bundle it and add it to another projects ‘asset_packages’ folder, rather than muddy up their content folder. The ‘asset_packages’ folder would still be accessible in the Content browser similar to that of how the Engine content is, allowing the user to still open and edit these files.

This is obviously a huge change from the current way things are done, but I think it would be extremely beneficial to project structure, efficiency, the marketplace ecosystem and overall enabling more rapid development of projects. The plugins system is already somewhat similar to this, and works fairly well too.

For my current project, I’ve been spending a considerable amount of time trying to reorganize and refactor marketplace assets that fall to this issue for fear of my own organizational sanity and that future team members need to be able to be brought on to a well organized and documented project. This sort of feature is incredibly common in other programming languages like previously mentioned, so I’m unsure why it couldn’t be adapted here.