Asset Store Pains


Hello,

A Silly Disclaimer: I include asset store links only for interest not because I get anything from anyone clicking on them. 

I have been aiming to update my blog once a week, but it looks like I have missed a week. I have had trouble relaxing after all the busy preparation and excitement at AVCon. Though that wasn’t the real reason why I missed last week. It is in part because I started a blog entry about “Dandori” from Pikmin 4 but I ended up just gushing over how good Pikmin is. Since I was working on it over the week, it isn’t the real culprit. The real culprit was… The Asset store. On my reserved Illic day I spent all my time looking for new fonts and assets. My search for a new font went well, but it made me look at the asset store (though I ended up finding the font in Google Fonts). There I saw “The Dev Days of Summer” sale. A sale for assets recommended by Unity Affiliates. For the first three years of development of Illic I only bought one Asset from the store: MagicaVoxel Toolbox (which sounded too good to be true, but somehow wasn’t - I should write a whole blog entry about that one). I avoided assets because of bad experiences I had during my time at studying with assets other team members had imported into projects. I remember spending hours getting a loading screen asset to kind of work with our project. Otherwise I had a desire to learn as much as I could. Finally even when an asset is on sale due the conversation rate from USD it ends up being expensive anyway. Since during that time I was broke, spending money I didn’t have for time I had too much of was a silly trade. Recently though this equation has flipped around. I can afford to buy assets but time is a super valuable resource. Especially when I want to get back into novel writing… and improve my drawing and… So I have been looking out for sales for good assets that improve Illic efficiently.

There is however a problem. Despite what the developers of the assets want you to think - sorry if that sounds like clickbait - there are actually a number of hidden costs to using assets from the asset store.

Hidden Cost 1: Time spent reading reviews and comparing assets. 

You can easily spend hours looking at assets and demos to figure out what you want to buy. It is also easy to get distracted and start looking into assets that are cool such as Gaia Pro 2021 - Terrain & Scene Generator which looks cool but it is not going to do anything for Illic.

Hidden Cost 2: Misunderstanding costs due to the conversation rate and hidden tax. 

This one actually goes deeper than just the unexpectedly large bill. It is also that you feel resistance to handing over your hard earned cash. This can be doubly so when you know it will be more expensive than it looks. If you are a professional developer (or at least have a job and money you can spend) like I am, you need to compare how much time it would cost you (helpfully your employer provides that metric as a salary) against how much the asset costs. You can be a bit generous with this as well, if you are spending your valuable free time when you could be doing anything (like playing Pikmin 4) then saving that time will be more valuable than you expect. The hidden cost of not buying an asset because it seems expensive. Either that or the time you spend convincing yourself that even with the USD conversion a $10 asset isn’t going to break the bank.

Hidden Cost 3: Losing the asset. 

Imagine you buy yourself a big asset bundle from Humble Bundle (I did a few weeks ago). You might feel really clever to get all those assets. Then you go to use those assets and… What did you buy again? The other day I saw I had an asset which was some AI assistant. When did I get that? To make it worse I picked up a bunch of free assets recently. I only have 114 assets but it is already difficult to find one if I can’t quite remember the name.

Hidden Cost 4: Learning the asset. 

A while ago I picked up an asset called Feel, I imported it into my project intending to replace the free Surge Tweening library I was using at the time. Yesterday I deleted it from my project to stop visual studio warning me about the number of meta files in my repository. I'm pretty sure it is a great asset but… I never feel like I have enough time to learn how to use it.

Hidden Cost 5: The demo is broken.

Every time I buy an asset I am excited to check out the demo for it only to open the demo to a beautiful magenta scene which produces endless errors when played. Why? I use the new input system and URP in my project and so if I want to use the demo scene I have to then rewrite the sloppy demo scripts and fix the textures. Annoyingly, even if the asset is compatible with URP, the conversion tools never fix the throwaway materials on cubes in the demo scene.

Hidden Cost 6: Dependencies

Assets sometimes try to install additional packages. One of the ones I used forced a version of the jobs package which was incompatible with my unity version. So I had to remove it from my project.

Hidden Cost 7: The assets themselves become dependencies.

A lot of the assets I see on the asset store are designed to be easy to use, by which they mean easy for a novice to hook up through the inspector. I have also found some assets that have convenient static calls you can make to get things done. This does indeed speed up using the APIs but there is a cost here as well. If you plan to work on a game for a long time like I have, an asset you bought might go out of support, unity might include a better inbuilt solution or a better asset is released. The best way to do this is to use the Ports and Adaptors pattern. That is you write a wrapper around the 3rd party code to hide it from the rest of your game. For example I used to move everything around in my game using Surge’s tweening library, but one day I updated unity and it broke. Not the tweening part of the library, but even so it made me feel uneasy. Originally I had used it to tween the UI around the screen but since I had replaced that with a quick fade in the library it was overkill. I had tried to be careful to not rely too heavily on it, but well… I failed. It was both painful and time consuming to try to fix the rat’s nest of scripts which tried to hide the tweening code. I could say more, but that would end up being another whole blog entry. My suggestion is to be careful when integrating an asset into your game.

Hidden Cost 8: Having to prepare the prefabs or worse fix them.

You will have to spend time integrating any asset into your project. The best case is an afternoon testing and assigning prefabs. The splash effects I got from the humble bundle were this easy. Sometimes though these assets will rely on sloppy scripts or have a terrible naming convention. So to use the assets you will have to adjust the contents and rework them. This is tedious and will prevent your assets from being updated if the developer updates the package. You are best to avoid packages with poor naming conventions, they are probably not worth the effort.

To continue the story, one thing that has been bothering me is how “bows” look in Illic. The effects I have for the bows don’t look remotely like a bow. Ideally I would like the character to have actual bows that fire actual arrows at some point, but that might be a bit difficult. Having some arrow-ish effects is a good middle ground I feel. So when I looked through the sale asset packs and I saw Hovl Studio’s AAA projectile pack, I said “ah!”. I figured even with “AAA” in the name it would be fine with the URP, besides the cartoon version didn’t have what I wanted. So I bought it and this is when the pain began.

First off the assets were all for the base render pipeline with no conversion tool included. I double checked the asset and it supported my render pipeline, but the converter tool was a free asset on the store I had to find. Next I looked at the prefabs and sighed. Anyone who gives you three folders with variations of “Projectile 1” is not someone I want to work with (to be polite). Next I found all but their textures, shaders, models - everything except their prefabs - was in a resources folder! (EDIT: They released a patch which fixed this soon after I imported the asset) I do not want all that included in the build by default. I tried to rename the folder but I can’t without closing unity. Next visual studio starts to complain that my project is too big now. So next I remove some unused assets to try to reduce project size but it doesn’t help. I give up on that for the moment and just decide not to push until I sort it out. Next I try to use the effects but they just come out as puffs of particles. That is because I am spawning them inside my characters. I tried to remove the colliders, but the script to move the projectiles started to throw null references so I have to mess around with that. At this point I realise that my effect spawning scripts have a bunch of problems (which is to be expected since I haven't touched them for years). At that point the day is over. I’ve wrestled with it a couple times this week but I am still not happy to push the changes. For reference I don't dislike the asset - I love the effects - if I don't include them in Illic it won't be the asset's fault.


So what can we learn from this? A few things - mostly things I should already know. As these are the rules I use when buying anything I want.

  1. Can you afford it? If you can’t buy it now, don’t buy it. Pay in 4 is a recipe for trouble.
  2. Do you actually need it? It might look cool but if you don’t need it you won’t use it and you will lose it.
  3. Is it worth it? Don’t buy something because it is a good deal.
  4. If it’s in a Humble Bundle or similar 99% chance you will forget about it. You are usually better off buying the one thing you want and donating to charity separately.
  5. Will you use it right now? If you won’t or don’t have time to use it right now you will probably forget about it. It is better to add it to your wishlist and come back to it when you have time.

Before you think I am against asset store purchase I will finish by saying I have bought two utility assets which are great. Rainbow folders 2 which allows you to change the colours and add icons to folders in your project. It gave me great value as soon as I added it to my project. Similarly Better Build Info - Report Tool which creates reports of what is included in my builds has helped me remove a lot of assets which were unused. Which helped me get rid of that pesky warning in Visual Studio.

So be careful when buying assets, games or even movies for that matter. Online platforms are a great way to forget about expensive content you’ve bought. Whatever it is that you buy, if you don’t use it, it will end up being a waste of money.

See you next time.

Get Lords of Illic

Comments

Log in with itch.io to leave a comment.

These are all good things to think about when using the asset store.  I have come across all these problems when making quick games for testing.