About releasing the source code of your asset

Hi,

I am currently trying to build a sustainable income from developing assets on the asset store. So far so good, things are slowly ramping up but as I progress I have more and more Unity users asking me if I could release my source code, which I did not intend to do. The last mail I got was from someone saying that they don’t usually buy assets with enclosed source code so it got me thinking.

My asset is Room Architect , and basically I have made a dll with a set of public methods that, in my opinion should be all my customers need to take full advantage of the asset (here is the documentation if you want to take a look). The reason for not releasing the source is that It took me a lot of work and I feel like my source code is valuable, especially for future projects related to this one.

What I wanted to know is: Tool designers for Unity and other platforms, what are your stand on this? Is a “pro version with source code release” a good option, and would you be worried to release a year of work in nature?

Thank you

At one point I was asking:
Do you prefer editor plugins with source code over plugins without?

According to this poll (Jan 2018):

  • 43.8% - I only buy plugins with source code

  • 40% - I prefer plugins with source code

  • 16.3% - I don’t care, I pick whatever is cheaper

My sales number say something different though. According to my sales, most people pick whatever is cheaper.

3 Likes

Most hobbyists won’t care. People working at real studios on real games care a lot more. The only way I’ll use an asset in a real game without source is if I know the author is going to be around for the life of the game. Otherwise it’s just too big of a risk. So I don’t have a problem with the Amplify stuff for example. But if some new asset came out that I wanted by an unknown without source, I would live without it.

Also, your type of asset is one people will want to customize. Most assets that do something in game, people will want to customize. Not being able to do so devalues your product way more then what you will potentially lose via piracy.

Which is the correct way to think about it. Not how much you think the software is worth.

1 Like

Just do it, include the source, don’t look back.

Have you looked at your competition? Dungeon Architect provides full source code.

https://www.assetstore.unity3d.com/en/#!/content/53895

What happens when a customer needs functionality that cannot be implemented without the source? Are you willing to implement it and provide support for it for the life of their project?

Just at a glance I don’t see any reason why I would need the source of your asset, but there have been times when I’ve purchased an editor asset and wished I had the source code.

2 Likes

Programmers, which is a lot of developers, generally want to access the sourcecode, because pretty much every time, there is something your asset does or doesn’t do that is a problem, and they want to be able to change it. Customizing assets is very important and popular. There is probably not a single asset I ever bought that did everything exactly how I wanted it, so I had to go into the source and make changes. The whole ‘put it in a dll’ in case someone steals the code or something, is paranoid. There’s no reason NOT to release the source code. It’s good for business.

The small bunch of assets I know that used to do a cheap version without source code and a pro version with source code tended to eventually drop that strategy and just have one version with complete code.

It is very rare for me to buy an asset that hides parts of itself inside a dll.

I will never buy anything without source from asset store. Why would I be that stupid? If it is a service or a product like Unity without source, I check the financial state of it best I can before proceeding to take a risk.

Source is one less risk for many.

5 Likes

Has any of you asset producing peeps experienced any plagiarism, “theft” or other fallout due to including source code?

Have not noticed any real issue with it, beyond a few cases, and is that really a good reason to give people who pay a worse product?

Also pre-compiling to dll is not really a effective way to stop people from ripping it off, they will just rip it off verbatim, or they will use ilSpy or dotPeek to decompile the dll.

1 Like

The overlap between active forum participants and active assetstore participants might not be as big as one might think. If that’s true your data suggests it might be potentially pointless or even missleading to make any polls here at all as assetauthor.

2 Likes

I don’t know. :smile: It’s the same reasoning for draconian DRM in games, so I wondered whether the same was the issue here, the product being of different scope and all.

DLLs can be decompiled very easily these days and there are tons of free options out there (such as ILSpy).

So regardless if your asset is compiled or decompiled, persistent users will get their hands on source code. If you’re afraid that your asset source code could be repurposed and resold as a different asset then again, DLLs does not guarantee your code from being safe and you can always report an asset to the Asset Store Team (they take theft seriously).

One way I see benefit in using compiled DLLs is to reduce clutter, useful especially for less experienced developers. You can zip up the source code separetely if someone decides to see the code. For example, “Odin Inspector and Serializer” asset does just that!

1 Like

As a moderator I had to investigate an issue with a networking library with user complaints. It’s funny because the author of the networking lib was lashing out at people accusing him of poor service, which of course made me investigate deeper. It turns out that he was using compiled dlls to hide stolen source code from an open source networking library.

We soon sorted all that out and was bye-bye-bandit.

So closed source on the asset store is not just an excuse given to prevent theft, but also an excuse given to hide theft. Put it this way, if you are using dlls for obfuscation you definitely have something to hide, good or bad.

3 Likes

I haven’t seen it on any of my assets (though I’m not exactly looking) but I have seen some activity along those lines on the forum between two asset publishers.

Personally I prefer the asset to be open source in the event that I have to maintain it. If it’s a dll, there better be good support.

If there is any copying of source code between asset authors, it should be immediately reported so it can be removed from the asset store. There is no mercy for illegal activity.

(TBH I’ve a sneaky feeling most if not all copying like this is done by artists or non programmers, and thus the code quality probably sucks anyway).

Purchases != people. It’s quite possible that more people care about source code, but people who don’t care make more purchases.

Interpretations aside, though, that’s still darn useful information for someone looking to increase their income.

How often do you buy assets? I believe I recall you saying that you’re only using two 3rd party assets in your current project?

It could potentially also reduce compile time.

1 Like

I have bought enough to make this a historically accurate statement. Even if I do buy in future, it will need to have source. This is because most of asset store is populated by individuals and it’s not a matter of if, only when it will be depreciated.

1 Like

I hate asset store items that don’t include source.

At least half the value of asset store stuff is being able to edit the hell out of it.

I think that in the near future, the next gen of asset store stuff will probably be aimed at modifying asset store stuff. Like tools specifically designed for hacking art, animation, etc. I want better tools for remapping uvs and textures for example. I want to be able to prebake ik based modifications to a full set of animations for another example (create ‘wounded’ or limping variations without the cost of ik at runtime and without the skill to do it by hand).

So like take an fbx with 100 animations, dump some scripts on a model with ik, auto record each animation exactly, rename and repack.