Asset store dependencies handling

Hi,

I’m not sure in which sub-forum to place this question. So if any moderator could point me to the right direction, that would be great. My initial thought was the asset store sub-forum, but I don’t promote a product yet.

Things is, that we’d like to put some stuff on the asset store which depends on other assets. We have some scripts that depend i.e. on SteamVR and others that use DoTween (and which work with the free version). We don’t really want to include the entire SteamVR stuff (nor do we want to duplicate SteamVR scripts) and the same goes with DoTween.

So what would be the best approach to this?

Thanks for your tips.

1 Like

Take a look at some of the assets designed to work with Playmaker or NGUI. The description of the product will generally say that it requires asset X to work. (A hyperlink in your store page is a good addition there.)

Some asset authors may allow you to distribute the free version with your code. You would have to contact the asset author directly.

While I can understand wanting to do that, both to prevent your asset from failing due to the other free asset not being there or to ensure that there’s a copy of the free asset included that you know your code works with, I personally dislike having one asset include another because I can end up with multiple copies of the asset fighting it out or just cluttering up my project.

3 Likes

Thanks. That’s how we thought do handle this. We regularly run into the same issue that people include 3rd party stuff in their distributions.

I thought (I’m near certain) it is against asset store TOS to include other assets in your asset package.

I wonder if it’s possible to open the asset store window to a particular asset from an editor script. That way one could just scan the project for dependencies, and then open a dialogue directing the player to download the appropriate asset.

1 Like

That’s actually a great idea, im interested to know if thats possible too or not

Maybe I’m missing something simple, but how would you package code that includes api calls to an asset you can’t include? Unity would surely send it back if it opened with errors.

Compiler defines. You can include an editor script that adds them to the project.

Or include the dependent code in a sub-package and import it with an editor script.

2 Likes

I don’t think that’s correct. I can think of a few examples:

  1. Tons of packages use free art and assets that Unity make (free packages yes).
  2. Playmaker comes with iTween and has for eternity (don’t know why though since it’s soooooo slow compared to others).
  3. I’ve seen other packages come with tweening libraries that the author didn’t make.

I include the optional packages and just let the user double-click them.

1 Like

Me too. But a neat trick I’ve seen in some newer assets is an editor window with buttons that do the unpacking for you.

3 Likes

I wish you could just define dependencies in AS tools and make Unity resolve it (kinda like dependencies in Linux software packages, very good indeed). You’d specify package needed and its version number and Unity would take care of the rest (auto dl free dependencies and inform user about needing paid ones if user didn’t already bought them).

6 Likes

You can upload code that is under an open source style license that does not prohibit commercial use, provided that it is not the sole content in your asset. You can also freely distribute any of unity’s free assets, UT has publicly stated that. You can upload images from places like cgtextures as long as you have a license to redistribute them, but they cannot be the sole content of your asset.

I don’t know about playmaker/itween. I just installed playmaker and it did not install itween as far as I can tell. iTween is a free asset though and the playmaker folks may have gotten a redistribution license from the itween author.

I’ve seen several posts from UT about this and I’m near positive that you can’t include another asset from the asset store. I couldn’t find anything specific in the publisher guidelines though.

You will definitely want to check with CGTextures.com to confirm this. I know when Gaia was still in beta, Adam checked with cgtextures.com and they told him no. That is why he worked out an arrangement with gametextures.com. There are certain conditions where they may be redistributed, but it is always best to check with them to ensure what you are doing falls within their guidelines before actually doing it. :slight_smile:

1 Like

Well yes I’d assume that any sane person would ask the author of a free plugin if they could include it in another plugin, such as iTween with Playmaker, and not just include it without asking permission. But that still means that flat out stating “it isn’t allowed” isn’t entirely true, which is what I way saying. Yes, it still comes with iTween, as seen below, after you install one of the 1-2 Playmaker install packages.

2652846--186938--upload_2016-5-27_20-32-57.png

Heck, our Master Audio and Core GameKit come with the free version of RelationsInspector, since the author built stuff for us to make the product better and get some exposure for his full version. I saw that one of the audio plugins (forget which one) comes with either LeanTween or Hotween as well.

I was mainly talking about including free assets with other plugins as I don’t know of any instance of paid plugins coming with other plugins.

See, that’s the thing though, ITween isn’t included with playmaker, it is installed after the fact using an installer. The asset is most likely not included in the asset that was uploaded to the store. It is probably downloaded and installed via the installer, from the asset store.

UT has publicly stated in these forums that you cannot include other assets with your asset. I’m too lazy to link the multitude of posts, but I guarantee that it was said. Obviously if the author has given you permission to redistribute something then you are allowed to, but you can’t randomly pull a free asset off of the asset store and include it in your package. Free does not mean “Anyone can distribute it”.

I’m not arguing with you. I just want people to understand that they can’t grab other people’s work, even if its marked free, and include it in their asset. UT has been granted an explicit license to distribute said content, “Joe asset store publisher” has not been granted any such right.

I wouldn’t want anyone doing that with anything I wrote, even if its free. If I found code of mine in someone else’s asset and I didn’t give them permission to distribute it, then I would work very hard on getting that user banned from the store, and I think most people would probably feel the same way. Code is hard work, free code is still hard work, and many people only get recognition from publishing free code. If you take away the recognition, then you’ve taken away all compensation that the original dev could receive.

Yeah, I meant that you can only upload things that you have the license to redistribute. If CGTextures license prohibits it then you can’t do it. I wasn’t necessarily saying it was ok to upload cgtextures stuff, just that you can only upload things license permitting.

Most of that I agree with, especially the ask permission part - which my last post did in fact say. iTween however is in the “install playmaker” package that comes with Playmaker from the Asset Store. It’s not a separate download. I installed Playmaker yesterday to confirm before responding. That’s not the only package in the Asset Store to includes things like that, but it’s ok because they all asked permission (I assume).

Hi,

just to give a feedback on my own thread:

Our package CarouselPro has been accepted to the Asset Store. It has a dependency on DoTween (free version) and does not include the DoTween package. What it does though is to reference to the DoTween asset package in the asset store.

1 Like

Actually, it is not just Linux package management, it is rather many modern programming languages, like PyPi and pip for Python, or npm for node.js, or CTAN for Latex, or Julias’s package manager and so on.
https://en.wikipedia.org/wiki/List_of_software_package_management_systems#Application-level_package_managers
Being a programmer who is new to the Unity world, I am quite astonished this does not yet exist!

2 Likes

It’s true that it would be cool to have such a package dependency manager…

1 Like